×

签到

分享到微信

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

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

MLU220 请教yolov5s6 多batchsize推理速度问题 已解决 dao0272022-06-21 18:39:49 回复 8 查看 使用求助
MLU220 请教yolov5s6 多batchsize推理速度问题
分享到:

请教各位大佬,在cambricon pytorch的docker中转换了yolov5s的离线模型(batchsize=4,ct.set_core_number(4)),生成的twins文件如下:

微信图片_20220621113141.png

在MLU220的板子上使用c++推理的时候发现,batchsize=4的速度仅仅是batchsize=1时候的1.3倍不到(单张图片44ms,batchsize=4大约144ms),感觉有点问题。。。请问这个速度是不是不正常?

  • c++推理代码参考git repo:https://github.com/CambriconECO/Pytorch_Yolov5_Inference/tree/eb36b68e5a4ee3fe23c45ec545bef68dced452bb/offline/yolov5_offline_simple_demo/src

  • 其中读取一个batch四张图片预处理后送入模型采用的方式如下(ptr指向图片输入数据,四张图片依次顺序放入):

  • Params detInitParam;
    //......
    //......省略操作:初始化模型函数及参数
    //......
    unsigned char *ptr=(unsigned char *)detInitParam.inputCpuPtrS[0];
    for(int i=0; i<detInitParam.batch_size; i++) 
    {
        //......预处理:letterbox等
        img_data = cv::Mat(detInitParam.input_height, detInitParam.input_width, CV_32FC3, ptr);
        ptr += (detInitParam.input_height * detInitParam.input_width * 3 * 4);
    }
    //......对detInitParam操作进行batch推理


PS: 通过测试发现主要是以下这步耗时较多,这个同步队列有办法快一点吗?

cnrtSyncQueue(detInitParam->queue)


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