求助!!!多线程开启om模型推理的疑问
收藏回复举报
求助!!!多线程开启om模型推理的疑问
t('forum.solved') 已解决
发表于2024-05-31 11:40:26
0 查看

项目使用的是mindsdk api方式对om模型进行推理,使用了concurrent.futures.ThreadPoolExecutor()创建了多个线程进行推理,om模型加载进ascend芯片和mx_init()显卡推理资源初始化都在开启多线程推理之前做好了,每一个线程的任务包括前处理、图片转Tensor加载进芯片、om模型推理、后处理。其中前处理和后处理都是在cpu上,om模型推理在芯片上执行(device id全部指定为0 )。结果我发现,多线程批量预测图片的执行结果,每次都不一样是随机的(但推理的结果至少还是有一个是正确的),直观上感觉明显是没加锁造成的,我不确定是由于哪个变量共享造成的,于是乎将项目改为onnx cpu推理(前、后处理都没有修改,仅修改模型推理的代码),我发现onnx cpu多线程推理的结果是正确的没有像om推理那样出现了随机性。我初步判断,问题是出在了芯片推理上,请问一下mindsdk的om模型推理,多线程推理要注意什么问题?是否有相关的技术文档或者案例可以借鉴?

本帖最后由 匿名用户2024/12/05 17:27:47 编辑

我要发帖子