前言
在模型推理时,需要使用GPU加速,相关的CUDA和CUDNN安装好后,通过onnxruntime-gpu实现。
直接运行python程序是正常使用GPU的,如果使用PyInstaller将.py文件打包为.exe,发现只能使用CPU推理了。
本文分析这个问题和提供解决方案,供大家参考。
问题分析——找不到ONNX Runtime GPU 动态库
首先直接运行python程序是正常使用GPU的,说明CUDA和cuDNN版本和安装都没问题,程序能找到相关CUDA库。
使用PyInstaller将.py文件打包为.exe后,只能用CPU推理了,因为它检测不到 GPU 加速所需的库。
这通常是因为打包时没有正确包含 onnxruntime 所需的 CUDA 库:
- onnxruntime_providers_cuda.dll
- onnxruntime_providers_shared.dll
解决方案
在使用PyInstaller命令打包时,通过--add-binary 添加