54#define STM_API __attribute__((visibility("default")))
59#include <cuda_runtime.h>
64#if VIBRANTE_PDK_DECIMAL < 6000400
65#include <nvmedia_dla.h>
67#if VIBRANTE_PDK_DECIMAL >= 6000000
68#include <cupva_host_wrapper.h>
69#if VIBRANTE_PDK_DECIMAL >= 6000400
71#if VIBRANTE_PDK_DECIMAL >= 6000500
72#include <VulkanSC/vulkan/vulkan_sc.h>
73#if VIBRANTE_PDK_DECIMAL >= 6000600
74#include <nvmedia_6x/nvmedia_ldc.h>
75#include <nvmedia_6x/nvmedia_2d.h>
184#if VIBRANTE_PDK_DECIMAL >= 6000500
192#if VIBRANTE_PDK_DECIMAL < 6000400
203typedef void (*stmDlaSubmitter_t)(
void* userdata, NvMediaDla* dla);
206#if VIBRANTE_PDK_DECIMAL >= 6000200
221#if VIBRANTE_PDK_DECIMAL >= 6000600
236typedef void (*stmLdcSubmitter_t)(
void* userdata, NvMediaLdc* ldc, NvSciSyncFence
const ldcPrefenceList[],
size_t ldcPrefenceCount, NvSciSyncObj ldcPostfencesyncObj, NvSciSyncFence* ldcPostfence);
252typedef void (*stmNv2DSubmitter_t)(
void* userdata, NvMedia2D* nv2D, NvSciSyncFence
const nv2DPrefenceList[],
size_t nv2DPrefenceCount, NvSciSyncObj nv2DPostfencesyncObj, NvSciSyncFence* nv2DPostfence);
255#if VIBRANTE_PDK_DECIMAL >= 6000400
270#if VIBRANTE_PDK_DECIMAL >= 6000000
285#if VIBRANTE_PDK_DECIMAL < 6000400
300STM_API
stmErrorCode_t stmRegisterDlaResource(
const char* resourceName, NvMediaDla* dla);
303#if VIBRANTE_PDK_DECIMAL >= 6000200
323#if VIBRANTE_PDK_DECIMAL >= 6000600
338STM_API
stmErrorCode_t stmRegisterLdcResource(
const char* resourceName, NvMediaLdc* ldc);
354STM_API
stmErrorCode_t stmRegisterNv2DResource(
const char* resourceName, NvMedia2D* nv2D);
357#if VIBRANTE_PDK_DECIMAL >= 6000400
377#if VIBRANTE_PDK_DECIMAL >= 6000000
397#if VIBRANTE_PDK_DECIMAL < 6000400
409STM_API
stmErrorCode_t stmRegisterDlaSubmitter(stmDlaSubmitter_t func,
const char*
const runnableId,
void* userdata);
412#if VIBRANTE_PDK_DECIMAL >= 6000200
429#if VIBRANTE_PDK_DECIMAL >= 6000600
441STM_API
stmErrorCode_t stmRegisterLdcSubmitter(stmLdcSubmitter_t func,
const char*
const runnableId,
void* userdata);
454STM_API
stmErrorCode_t stmRegisterNv2DSubmitter(stmNv2DSubmitter_t func,
const char*
const runnableId,
void* userdata);
457#if VIBRANTE_PDK_DECIMAL >= 6000400
474#if VIBRANTE_PDK_DECIMAL >= 6000000
STM_API stmErrorCode_t stmEnterScheduler(void)
Yield to STM scheduler, which will schedule all registered runnables in the STM schedule periodically...
STM_API stmErrorCode_t stmRegisterVpuSubmitter(stmVpuSubmitter_t func, const char *const runnableId, void *userdata)
Registers an stmVpuSubmitter_t function with the name provided by the user to the STM compiler.
STM_API stmErrorCode_t stmRegisterCallBack(stmScheduleSwitchCallback_t func, void *userdata)
Registers a callback function with a client to be invoked during a schedule switch....
STM_API stmErrorCode_t stmClientInit(const char *clientName)
Initialize STM client context.
void(* stmVulkanSubmitter_t)(void *userdata, VkQueue queue)
STM_API stmErrorCode_t stmRegisterCuDlaStandaloneResource(const char *resourceName, cudlaDevHandle cudla)
Registers a cuDLA standalone resource.
void(* stmRunnable_t)(void *userdata)
Function signature for STM CPU runnable.
STM_API stmErrorCode_t stmRegisterCuDlaResource(const char *resourceName, cudaStream_t cudla)
Registers a cuDLA hybrid resource.
STM_API stmErrorCode_t stmClientInitWithDiscriminator(const char *clientName, int32_t discriminator)
Initialize STM client context with a discriminator.
STM_API stmErrorCode_t stmRegisterVulkanResource(const char *resourceName, VkQueue queue, VkDevice device, VkPhysicalDevice physicalDevice, VkInstance instance)
STM_API stmErrorCode_t stmRegisterVpuResource(const char *resourceName, cupvaStream_t vpu)
Registers a cuPVA resource.
STM_API stmErrorCode_t stmGetRuntimeInfo(stmRunnableInfo_t *info)
Get runtime information about execution.
STM_API stmErrorCode_t stmRegisterVulkanSubmitter(stmVulkanSubmitter_t func, const char *const runnableId, void *userdata)
void(* stmVpuSubmitter_t)(void *userdata, cupvaStream_t vpu)
Function signature for STM VPU submitter runnable.
void(* stmCuDlaSubmitter_t)(void *userdata, cudaStream_t cudla)
Function signature for STM cuDLA hybrid submitter runnable.
STM_API stmErrorCode_t stmRegisterCudaResource(const char *resourceName, cudaStream_t stream)
Registers a CUDA stream resource.
STM_API void stmClientExit(void)
Cleans up STM client context. No STM APIs can be called after this.
STM_API stmErrorCode_t stmRegisterCuDlaStandaloneSubmitter(stmCuDlaStandaloneSubmitter_t func, const char *const runnableId, void *userdata)
Registers an stmCudlaStandaloneSubmitter_t function with the name provided by the user to the STM com...
STM_API stmErrorCode_t stmRegisterCuDlaSubmitter(stmCuDlaSubmitter_t func, const char *const runnableId, void *userdata)
Registers an stmCudlaSubmitter_t function with the name provided by the user to the STM compiler.
STM_API stmErrorCode_t stmRegisterCpuRunnable(stmRunnable_t func, const char *const runnableId, void *userdata)
Registers an stmRunnable_t function with the name provided by the user to the STM compiler.
void(* stmCuDlaStandaloneSubmitter_t)(void *userdata, cudlaDevHandle cudla)
Function signature for STM cuDLA standalone submitter runnable.
STM_API stmErrorCode_t stmRegisterCudaSubmitter(stmCudaSubmitter_t func, const char *const runnableId, void *userdata)
Registers an stmCudaSubmitter_t function with the name provided by the user to the STM compiler.
void(* stmCudaSubmitter_t)(void *userdata, cudaStream_t stream)
Function signature for STM CUDA submitter runnable.
void(* stmScheduleSwitchCallback_t)(uint16_t startScheduleId, uint16_t hyperepochId, void *userdata)
Function signature for STM schedule switch callback.
STM_API stmErrorCode_t stmExitScheduler(void)
Return from stmEnterScheduler().
Information which can be queried by CPU runnables using stmGetRuntimeInfo()
Return/error codes for all STM functions.
stmErrorCode_t
Return/error codes for all STM functions.