ONNX Runtime、CUDA Toolkit 、cuDNN、驱动的安装

ChatGLM3Loader执行时发生错误: Library cudart is not initialized。

文章《Chatglm3部署踩坑记录》里提到是因为没有安装 CUDA Toolkit 引起。

下面内容来自deepseek

关于NVIDIA驱动、CUDA Toolkit版本以及ComfyUI的依赖关系,以下是关键点解析:


1. nvidia-smi 与 nvcc -V 的区别

  • nvidia-smi 显示的CUDA版本(12.8)
    表示当前GPU驱动支持的最高CUDA Toolkit版本。这是驱动层的能力上限,但不意味着系统已安装此版本的CUDA Toolkit。驱动向下兼容,例如支持12.8的驱动可以运行12.x的所有CUDA程序。

  • nvcc -V 显示的CUDA版本(12.4)
    表示当前系统中实际安装的CUDA Toolkit版本(即编译器版本)。这是开发环境实际使用的版本,决定了代码编译时的兼容性。


2. ComfyUI依赖的CUDA版本

ComfyUI的运行主要依赖于以下两个组件:

  • PyTorch的CUDA版本
    PyTorch预编译版本会绑定特定的CUDA Toolkit(如PyTorch 2.3.0可能对应CUDA 12.1)。通过以下命令查看PyTorch实际使用的CUDA版本:

    bash

    复制

    python -c "import torch; print(torch.version.cuda)"

    若输出为12.1,则即使系统安装了CUDA 12.4,PyTorch仍会使用其内置的12.1版本。

  • 系统CUDA Toolkit版本(nvcc -V
    仅在以下情况相关:

    • 需要从源码编译PyTorch或其他CUDA扩展。

    • 使用依赖nvcc的第三方库(如自定义CUDA算子)。


3. 版本兼容性建议

  • 驱动版本 ≥ CUDA Toolkit要求
    确保GPU驱动版本满足PyTorch或CUDA Toolkit的最低要求(例如CUDA 12.4要求驱动≥535.86.01)。

  • PyTorch与CUDA Toolkit解耦
    通常情况下,PyTorch的预编译版本无需系统安装完整CUDA Toolkit即可运行,因其自带必要的CUDA动态库。


4. 解决版本冲突的步骤

  1. 确认PyTorch的CUDA版本

    python -c "import torch; print(torch.__version__); print(torch.version.cuda)"

  2. 检查驱动兼容性
    访问 NVIDIA驱动文档 确认驱动版本是否支持PyTorch所需的CUDA版本。

  3. 必要时更新PyTorch或CUDA Toolkit

    # 安装指定CUDA版本的PyTorch pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121


总结

  • ComfyUI的CUDA依赖以PyTorch版本为准,与nvcc -V的关联仅限于源码编译场景。

  • 只要驱动版本足够(≥12.8支持所有12.x),PyTorch可独立运行,无需强制对齐系统CUDA Toolkit版本。

建议优先通过PyTorch的预编译版本管理CUDA依赖,避免因手动安装多版本CUDA Toolkit导致环境冲突。

1、用 nvidia-smi.exe 命令查看显卡当前驱动程序版本

 用 nvcc -V 命令查看:

2、NVIDIA CUDA 工具包发行说明,每个 CUDA 工具包版本中打包的开发 NVIDIA GPU 驱动程序的版本如下所示。

可以根据上表要求,安装更新的驱动程序:

 3、从 CUDA Toolkit 存档 下载想要安装的版本(选择与所安装的 Pytorch 相同的cuda版本):

不玩游戏,也不需要自动更新驱动,所以不安装 Geforce Experience ,安装驱动是需要的:

  

CUDA Visual Studio Integration
No supported version of Visual Studio was found. Some components of theCUDA Toolkit will not work properly. Please install ivisual Studid first to get the fullfunctionality. 

Installed:
     - Nsight Monitor
Not Installed:
     - Nsight for Visual Studio 2022
       Reason: VS2022 was not found
     - Nsight for Visual Studio 2019
       Reason: VS2019 was not found
     - Nsight for Visual Studio 2017
       Reason: VS2017 was not found
     - Integrated Graphics Frame Debugger and Profiler
       Reason: see https://developer.nvidia.com/nsight-vstools
     - Integrated CUDA Profilers
       Reason: see https://developer.nvidia.com/nsight-vstools

 安装 CUDA Toolkit 后,ChatGLM3Loader加载运行正常。

后来运行InstantID Face Analysis时出错如下:

onnxruntime::python::CreateExecutionProviderInstance CUDA_PATH is set but CUDA wasnt able to be loaded. Please install the correct version of CUDA andcuDNN as mentioned in the GPU requirements page (https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html#requirements), make sure they're in the PATH, and that your GPU is supported.

根据错误信息中提供的网址:https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.htmlCUDA 执行提供程序要求),发现,我还得将  CUDA Toolkit  降回 11.8 。 

所以安装CUDA Toolkit 12.4.0版本是合适的。

安装ORT

 python.exe -m pip install onnxruntime-gpu --extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cuda-12/pypi/simple/

查看cuDNN版本 ,在Windows系统中,可以进入CUDA的安装目录查看文件cudnn.h,例如:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include\cudnn.h

cuDNN支持矩阵: 

cuDNN 8.9 安装指南

 NVIDIA cuDNN 主页----》下载 cuDNN 文库----》以前版本的存档

双击运行:

选精简安装,会连适用cuda11.8的cuDNN也安装了,而是我不需要的,所以选择自定义安装:  

从上面也发现安装目录是: C:\Program Files\NVIDIA\CUDNN\v9.1,从这里也可以知道自己目前安装的是什么版本,而不是网上搜索到的到什么CUDA的目录去查看cuDNN版本(C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vX.X\bin)。

发现安装了2个版本: 

查看已经安装的包
.\python_embeded\python.exe -m pip list

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值