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 推理")
    
    # 创建一个会话,明确指定使用 CUDA
    try:
        # 注意:这里需要一个 .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 subprocess
    try:
        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)

效果是:
在这里插入图片描述

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐