Files
calculet-npu-research-archive/source/repositories-complete/calrt-exact/calrt/hostrt/RuntimeAPI.md
T

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;
}

Back to top


API Reference

  1. Modules
  2. Data Structures
  3. Data Types

Modules

Back to Top


Data Structures

Back to Top


Data Types

Back to Top