在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左右,为什么会出现这种情况呢
麻烦提供一下模型和运行脚本哈,我来复现一下你的问题,可以通过网盘链接提供~
换一个大内存的电脑是可以的
好的,记得填一下问卷哈~