Open xk-dragonfly opened 2 hours ago
大佬们好,我是一个刚开始学习ort的新手,我有一个问题 在所有onnx的头文件中都有个_batchSize 属性,我发现这个初始化的_batch_size属性会极大的影响性能,下面以yolov8_pose_onnx为例 我在一次程序运行中测试了1,2,4,16,32,64,128不同批次下的推理性能,即我修改了OnnxBatchDetect函数,在进入OnnxBatchDetect函数后我主动修改_batchSize 为srcImgs的size,然后仅测试_OrtSession->Run的运行时间,我发现默认设置的_batchSize值总是性能最优的(平均下来单帧推理时间最短) 即如果我在yolov8_pose_onnx.h中设置_batchSize=1,那么测试后就发现批次为1的性能最好(远远好于其他批次); 如果我在yolov8_pose_onnx.h中设置_batchSize=64,那么测试后就发现批次为64的性能最好(也是远远好于其他批次);
这是为什么呢?
大佬们好,我是一个刚开始学习ort的新手,我有一个问题 在所有onnx的头文件中都有个_batchSize 属性,我发现这个初始化的_batch_size属性会极大的影响性能,下面以yolov8_pose_onnx为例 我在一次程序运行中测试了1,2,4,16,32,64,128不同批次下的推理性能,即我修改了OnnxBatchDetect函数,在进入OnnxBatchDetect函数后我主动修改_batchSize 为srcImgs的size,然后仅测试_OrtSession->Run的运行时间,我发现默认设置的_batchSize值总是性能最优的(平均下来单帧推理时间最短) 即如果我在yolov8_pose_onnx.h中设置_batchSize=1,那么测试后就发现批次为1的性能最好(远远好于其他批次); 如果我在yolov8_pose_onnx.h中设置_batchSize=64,那么测试后就发现批次为64的性能最好(也是远远好于其他批次);
这是为什么呢?