打开微信,使用扫一扫进入页面后,点击右上角菜单,
点击“发送给朋友”或“分享到朋友圈”完成分享
您好:
我目前在MLU100-x86 机器上 caffe环境下实现一个目标检测算法的算子,并且集成在caffe框架后编译成功;
MLU逐层模式单核运行:caffe.set_mode_mlu() caffe.set_batch_size(1) caffe.set_simple_flag(1) caffe.set_core_number(1) caffe.set_rt_core("MLU100") 运行不报错, 推理结果也是正确的;
MLU逐层模式多核运行:caffe.set_mode_mlu() caffe.set_batch_size(1) caffe.set_simple_flag(1) caffe.set_core_number(32) caffe.set_rt_core("MLU100") 运行不报错, 推理结果也是正确的;
MLU融合模式单核运行: caffe.set_mode_mfus() caffe.set_batch_size(1) caffe.set_simple_flag(1) caffe.set_core_number(1) caffe.set_rt_core("MLU100") 运行不报错, 推理结果也是正确的;
MLU融合模式多核运行: caffe.set_mode_mfus() caffe.set_batch_size(1) caffe.set_simple_flag(1) caffe.set_core_number(32) caffe.set_rt_core("MLU100") 运行报错,报错信息如下;
[cnrtError] [29632] [Card : 0] MLU unfinished. cnrtStream fail.
[cnrtError] [29632] [Card : 0] barrier sync time out.
[cnrtError] [29632] [Card : 0] for more information, please use core dump analysis tools.
[/home/Cambricon-Test/caffe/src/caffe/src/caffe/mlu/fusion.cpp:300] CNRT error, code: 632025
运行多核离线模型时也是同样的错误,运行离线模型的部分代码如下:
.... cnrtDev_t dev; cnrtGetDeviceHandle(&dev, 0); cnrtSetCurrentDevice(dev); cnrtStream_t stream; cnrtCreateStream(&stream); .... cnrtInitFuncParam_t init_func_param; bool muta = false; u32_t affinity = 0x01; init_func_param.muta = &muta; init_func_param.data_parallelism = &data_parallelism; init_func_param.affinity = &affinity; init_func_param.end = CNRT_PARAM_END; cnrtInitFunctionMemory_V2(function, &init_func_param); .... cnrtDim3_t dim = {1, 1, 1}; cnrtInvokeFuncParam_t invoke_func_param; invoke_func_param.affinity = &affinity; invoke_func_param.data_parallelism = &data_parallelism; invoke_func_param.end = CNRT_PARAM_END; cnrtFunctionType_t func_type = (cnrtFunctionType_t)0; .... cnrtInvokeFunction(function, dim, param, func_type, stream, (void *)&invoke_func_param); cnrtSyncStream(stream);
程序执行cnrtSyncStream(stream)语句是报上述错误。
报错信息显示MLU和CPU同步超时造成的,这个错误我该如何修改呢?
热门帖子
精华帖子