调用GPU问题

在04_inference.sh中调用的match_inference2.py,其中我可以调用GPU吗?cuda是可以使用的。

但是会报错:

请问我该怎么解决?

你好,推荐您使用CPU版本进行精度验证,因为CPU版本是经过全量测试的。

如果您一定要使用GPU来进行加速的话,也是可以的,但必须使用GPU版本的docker,然后设置

sess = HB_ONNXRuntime(model_file=model)

sess.set_dim_param(0, 0, ‘?’)

sess.set_providers([‘CUDAExecutionProvider’])

改为sess.set_providers([‘CPUExecutionProvider’])运行是没有问题的,但是速度很慢,所以我想试试GPU

您好,地平线工具链在持续迭代优化,为了给您提供更好的服务,希望您能抽出3分钟左右的时间,将您在使用工具链期间的感受和建议告诉我们,您的宝贵意见对我们很重要,非常感谢! 问卷链接:地平线算法工具链使用满意度反馈

现在问题是我装的是GPU版本的docker,但是并不能调用GPU:

1.安装过程GPU版本的docker执行的脚本是:

sudo docker run -it --gpus all -d -v /home/lpp/workspace/horizon_xj3_openexplorer_v2.5.2_py38_20230331/horizon_xj3_open_explorer_v2.5.2-py38_20230331/ddk:/data --name horizon_GPU d292bc9ff2d9

这个应该没有什么问题吧-
2.然后启动GPU

3.但是在代码中:sess.set_providers([‘CUDAExecutionProvider’])会报错。

4. 显示这里面并没有CUDAExecutionProvider,这可能是什么原因呢?

猜测你可能没有在docker里安装对应GPU版本的horizon_nn_gpu(对应whl包在ddk/package/host/ai_toolchain目录下),可以使用pip list | grep horizon看一下依赖情况,我的如下图:

是可以正常运行的,如下图:

好的,我装上后:

但是又出现了新的错误,这又是为啥呢:

从报错看,是内存不足,你可以跑个OE包里的例子看一下,保证用法没问题

1.我用04_inference.sh origin加载原始模型,是可以运行的,内存没有报错。

2.但是使用量化模型后,会出现报错的情况

3.两个onnx模型均大约在4M左右,为什么会出现这种情况呢

麻烦提供一下模型和运行脚本哈,我来复现一下你的问题,可以通过网盘链接提供~

换一个大内存的电脑是可以的

好的,记得填一下问卷哈~