×

签到

分享到微信

打开微信,使用扫一扫进入页面后,点击右上角菜单,

点击“发送给朋友”或“分享到朋友圈”完成分享

cnrt接口介绍 Anomalocaris2020-12-21 17:57:21 回复 2 查看
cnrt接口介绍
分享到:

设备管理

ü设备初始化、设备查询、设备指定等

cnrtInit(unsigned int flags)

cnrtDestroy()

cnrtGetDeviceCount(unsigned int *dev_num);

cnrtGetDeviceHandle(cnrtDev_t *pdev, int ordinal);

cnrtSetCurrentDevice(cnrtDev_t dev);

cnrtGetCurrentDevice(cnrtDev_t *pdev);


内存管理

ü内存分配、内存释放、内存拷⻉等

cnrtRet_t cnrtMalloc(void **pPtr, size_t bytes);

cnrtRet_t cnrtFree(void *ptr);

cnrtRet_t cnrtSetLocalMem(unsigned int local_mem_size);

cnrtRet_t cnrtGetLocalMem(unsigned int *pLocalsize);

cnrtRet_t cnrtMemcpy(void *dst, void *src, size_t bytes, cnrtMemTransDir_t dir);

cnrtRet_t cnrtMemcpyAsync(void *dest_addr, void *src_addr,

  size_t bytes, cnrtQueue_t queue, cnrtMemTransDir_t dir)


队列操作

ü创建、任务下发、销毁等

cnrtQueue_t queue;

cnrtRuntimeContextCreateQueue(ctx, &queue);

cnrtInvokeRuntimeContext(ctx, param, queue, NULL);

cnrtSyncQueue(queue);

cnrtDestroyQueue(queue);


• Notifier

ü提供了统计硬件执⾏时间相关接⼝

cnrtNotifier_t notifier_begin;

cnrtPlaceNotifier(notifier_begin, queue);

cnrtInvokeRuntimeContext(ctx, param, queue, NULL);

cnrtPlaceNotifier(notifier_end, queue);

cnrtSyncQueue(queue);

cnrtNotifierDuration(notifier_begin, notifier_end, &time_elapsed);


离线模型管理

ü脱离CNML,基于CNRT 单独运⾏

cnrtLoadModel(cnrtModel_t *pmodel, const char *fname);

cnrtLoadModelFromMem(cnrtModel_t *pmodel, char *ptr);

cnrtExtractFunction(cnrtFunction_t *pfunction, cnrtModel_t model,const char *symbol);

cnrtGetInputDataShape(int **dimValues, int *dimNum, int index,

  cnrtFunction_t function)

cnrtGetInputDataSize(int64_t **sizeArray, int *num, cnrtFunction_t function)


版权所有 © 2024 寒武纪 Cambricon.com 备案/许可证号:京ICP备17003415号-1
关闭