5.3 KiB
5.3 KiB
Calculet Runtime API Documentation
Table of Contents
Quick Start
#include "calrt.hpp"
#include <memory>
#include <thread>
void inference(calrt::VirtualDevice *vDev, calrt::CalbinModel *model, calrt::CalrtInputBuf* inputBuffer, calrt::CalrtOutputBuf* outputBuffer)
{
calrt::infer(vDev, model, inputBuffer, outputBuffer);
outputBuffer->wait();
}
void threadFunc(calrt::VirtualDevice *vDev, calrt::CalbinModel &model)
{
std::unique_ptr<calrt::CalrtInputBuf> pIbuf = calrt::createInputBuf(model);
std::unique_ptr<calrt::CalrtOutputBuf> pObuf = calrt::createOutputBuf(model);
inference(vDev, &model, pIbuf.get(), pObuf.get());
}
int main()
{
auto pCalbin = calrt::Calbin::CreateParser("...");
auto vdevice = calrt::VirtualDevice::CreateVDevice();
calrt::configure(vdevice.get(), pCalbin.get());
calrt::CalbinModel models = pCalbin->GetAllModels();
calrt::CalbinModel modelA = models[0];
std::unique_ptr<std::thread> threads[2];
for(int i = 0; i < 2; i++)
{
threads[i] = std::make_unique<std::thread>(&threadFunc, vdevice.get(), std::ref(modelA));
}
for(int i = 0; i < 2; i++)
{
if(threads[i]->joinable())
{
threads[i]->join();
}
}
return 0;
}
API Reference
Modules
- Configuration
- Device
- Buffer
- Inference
- Infer Model with Device
- Calbin (STILL UNDER DEVELOPMENT)
- Memory Management
- Error Handling