You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET环境下ONNXRuntime GPU版本无法加载cudnn64_9.dll问题求助

.NET环境下ONNXRuntime GPU版本无法加载cudnn64_9.dll问题求助

你遇到的这个加载cudnn64_9.dll失败的问题,我之前帮不少开发者排查过,大概率是CUDA/cuDNN版本和ONNXRuntime GPU版的依赖不匹配导致的,结合你的RTX2060和用的ONNXRuntime 1.20.1版本,给你整理几个排查和解决步骤,一步步来应该能搞定:

  • 先搞清楚版本匹配关系:ONNXRuntime 1.20.x的GPU版本要求的是CUDA 11.8 + cuDNN 8.6.0。你看到的cudnn64_9.dll是很旧的cuDNN 9.x版本的命名,但ONNXRuntime 1.20.1根本不依赖这个版本,出现这个报错要么是你本地装的CUDA版本不对,要么是包的依赖检测出了乱子。

  • 重新安装对应版本的CUDA和cuDNN:

    1. 先卸载掉当前系统里不匹配的CUDA版本,避免冲突;
    2. 下载CUDA Toolkit 11.8(RTX2060是Turing架构,完美支持这个版本);
    3. 再下载对应cuDNN 8.6.0 for CUDA 11.x,解压后把里面bin、include、lib目录下的文件,分别复制到CUDA安装目录(默认是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8)的对应子文件夹里;
    4. 最后检查系统环境变量:确保CUDA_PATH指向的是v11.8的目录,而且Path里已经添加了%CUDA_PATH%\bin。
  • 清理项目的NuGet依赖:

    1. 先确认项目里只装了Microsoft.ML.OnnxRuntime.Gpu 1.20.1,把CPU版本的Microsoft.ML.OnnxRuntime彻底卸载,避免包冲突;
    2. 打开命令行,执行dotnet nuget locals all --clear清理NuGet缓存,然后重新右键项目选择“恢复NuGet包”。
  • 检查代码里的GPU初始化逻辑:
    别用默认的InferenceSession构造函数,一定要显式指定CUDA执行提供者,比如:

    using Microsoft.ML.OnnxRuntime;
    
    var sessionOptions = new SessionOptions();
    // 指定使用第一个GPU设备(你只有RTX2060的话索引0就行)
    sessionOptions.AppendExecutionProvider_CUDA(0);
    // 可以加上图形优化,提升推理速度
    sessionOptions.GraphOptimizationLevel = GraphOptimizationLevel.ORT_ENABLE_EXTENDED;
    
    using var session = new InferenceSession("你的模型文件路径.onnx", sessionOptions);
    
  • 其他排查小技巧:

    1. 确认项目的平台目标是x64:ONNXRuntime GPU版只支持64位环境,别选Any CPU或者x86;
    2. 暂时关闭杀毒软件的实时保护:有些杀毒软件会误拦截NVIDIA的系统dll,导致加载失败;
    3. 手动复制依赖dll:如果还是不行,直接去ONNXRuntime官网下载1.20.1版本的GPU预编译包,把里面的onnxruntime_gpu.dll和相关CUDA依赖dll复制到项目的输出目录(比如bin\Debug\net9.0)再运行试试。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 12:28:16