onnxruntime-gpu与cuda版本对应及是否能调用cuda测试
文章目录
- 1、onnxruntime-gpu与cuda版本对应关系
- 2、验证GPU是否能使用
1、onnxruntime-gpu与cuda版本对应关系
https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html#requirements 上这个网站看就行
当前(20250311)无非用的多的就是cuda11/12,所以截图如下:
我的cuda=11.8 cudnn=8.9
还有一种方法
conda search onnxruntime*
可以看到
从中选择适合适自己版本就行,比如:
conda create -n ort python=3.10
conda activate ort
conda install cudatoolkit=11.8 cudnn
conda install onnxruntime=1.17.1=gpu_cuda118py310h3edffa7_0
需要注意的是,要单独安装cuda
2、验证GPU是否能使用
就是一段python脚本:
import onnxruntime as ort# 打印 onnxruntime 版本(适应不同版本的方式)
try:version = ort.__version__
except AttributeError:try:version = ort.get_version()except AttributeError:version = "未知 (无法获取版本信息)"print(f"ONNXRuntime 版本: {version}")# 获取可用的执行提供程序列表
providers = ort.get_available_providers()
print(f"可用执行提供程序: {providers}")# 检查是否支持 CUDA
if 'CUDAExecutionProvider' in providers:print("✅ GPU 可用于 ONNX Runtime 推理")# 创建一个会话,明确指定使用 CUDAtry:# 注意:这里需要一个 .onnx 模型文件才能完全测试 GPU 是否工作# 对于测试目的,我们尝试获取 CUDA 设备信息而不创建会话cuda_provider_options = {"device_id": 0, # 使用第一个GPU}print("CUDA 配置: ", cuda_provider_options)except Exception as e:print(f"配置 CUDA 选项时出错: {e}")# 获取 GPU 设备信息import subprocesstry:result = subprocess.run(['nvidia-smi'], stdout=subprocess.PIPE)print("\nNVIDIA GPU 信息:")print(result.stdout.decode('utf-8'))except Exception as e:print(f"无法获取 GPU 信息: {e}")
else:print("❌ GPU 不可用于 ONNX Runtime 推理")print("仅可用的提供程序:", providers)
效果是: