onnxruntime-gpu与cuda版本对应及是否能调用cuda测试

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)

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

### ONNX Runtime GPU无法访问 `onnxruntime_providers_cuda.dll` 的解决方案 #### 问题分析 当遇到ONNX Runtime GPU无法加载CUDA提供程序库的情况时,通常是由于缺少必要的依赖项或环境配置正确所致。具体表现为尝试运行基于GPU的推理模型时抛出错误,提示未能找到所需的动态链接库文件。 #### 解决方案概述 为了使ONNX Runtime能够成功调用CUDA加速功能,必须确保安装了适当版本CUDA工具包,并且路径设置无误以便操作系统可以定位到这些DLL文件。此外还需验证所使用的Python包是否匹配目标硬件架构以及相应的驱动器软件版本。 #### 实施步骤详解 ##### 验证并更新CUDA Toolkit版本 确认本地已安装适合当前系统的CUDA Toolkit版本。对于特定版本的PyTorch (如1.9),推荐搭配使用CUDA 10.2来获得最佳兼容性[^3]。如果尚未安装此版本,则应前往NVIDIA官方网站下载相应安装包进行部署。 ##### 安装/升级ONNX Runtime-GPU版 通过pip命令获取官方发布的预编译二进制wheel文件,指定现有CUDA环境相适应的具体标签(例如cu102代表CUDA 10.2)。注意选择正确的Python解释器位数(32-bit vs 64-bit)以防止潜在冲突: ```bash pip install --upgrade onnxruntime-gpu==1.1.0+cu102 -f https://download.pytorch.org/whl/torch_stable.html ``` ##### 设置环境变量PATH 为了让Windows系统识别新加入的CUDA DLLs,在启动任何涉及深度学习框架的应用之前,先临时修改会话级别的PATH环境变量指向CUDA bin目录;或者更持久的方式是在控制面板里永久添加该路径至全局环境变量列表中。假设默认安装位置为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin: ```powershell $env:Path += ";C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin" ``` ##### 测试安装效果 创建简单的测试脚本来检验上述调整措施的效果如何。这段代码试图加载一个预先训练好的神经网络模型并通过它执行一次前向传播操作,以此判断能否顺利利用GPU资源完成计算任务而触发异常状况。 ```python import onnxruntime as ort from pathlib import Path model_path = str(Path.home()) + "/models/resnet50.onnx" session_options = ort.SessionOptions() providers = ['CUDAExecutionProvider', 'CPUExecutionProvider'] sess = ort.InferenceSession(model_path, providers=providers) input_name = sess.get_inputs()[0].name dummy_input = {'data': ...} # Prepare your input data here. result = sess.run(None, dummy_input) print("Inference completed successfully.") ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值