☰
CUDA 与 N 卡驱动安装
2026/10/2 17:33:45 网站建设 项目流程

CUDA 与 N 卡驱动安装

系列第 1 篇。刚拿到 N 卡想本地跑 AI,却不知道驱动、CUDA Toolkit、cuDNN 到底要装哪几个?本篇把"CUDA 安装 / N 卡驱动"这件事一次讲透:先nvidia-smi看家底,再按决策树装驱动,判断 CUDA Toolkit 装与不装,最后用nvcc --version收口。读完你能独立搭好 GPU 底座,并看懂"驱动版本"与"CUDA 版本"那对最容易搞混的关系。

一、为什么需要它

本地 AI 的第一道坎,几乎人人栽在驱动和 CUDA 这一层。后面系列里出现的torch.cuda.is_available()返回False、CUDA driver version is insufficient for CUDA runtime version、CUDA error: no kernel image is available for execution on the device,绝大多数根源都不在框架或模型,而在这篇讲的底座没装对。

我的排错经验是先想清楚一件事:本地 AI 的 GPU 软件栈是三层结构——最底下是 NVIDIA 驱动(让操作系统和显卡对话的接口),中间是 CUDA Toolkit 和 cuDNN(开发工具链,可选),最上面是 PyTorch、Ollama、vLLM 这类框架和应用。三层各管各的事,装之前先分清"哪些必装、哪些可不装",能少走一半弯路。

核心结论先放这儿:驱动必装;CUDA Toolkit 大多数场景可不装——主流框架的预编译包(wheel)已经自带了 CUDA 运行时,纯跑 PyTorch 的人完全可以跳过那 3-5 GB 的安装包;cuDNN 同理,多数时候框架里已经捆绑好了。

所以本篇的路线是:先nvidia-smi查显卡与驱动现状,再装驱动,然后走一遍决策树判断要不要装 Toolkit 和 cuDNN,最后做三步验证。国内用户注意:驱动和 CUDA Toolkit 都是从 NVIDIA 官网直接下载,不走 pip,下载慢的话只能换网络时段,这一点本篇会专门提。

二、环境要求

项目要求说明
GPUNVIDIA 显卡,显存 8 GB 以上(12 GB 以上更舒适)显存是"能跑多大模型"的硬门槛,估算方法详见《AI-05 显存计算与模型选择》
系统Windows 10/11 或主流 Linux(Ubuntu 22.04 等)WSL2 走 Windows 侧驱动,详见《AI-04 WSL2 部署 AI 开发环境》
NVIDIA 驱动新版游戏/专业驱动(550 系及以上建议)550 系驱动约支持 CUDA 12.4,555 系约支持 12.5,560 系约支持 12.6+,具体以 NVIDIA 官网兼容性表为准
CUDA Toolkit纯 PyTorch 场景可不装需要 nvcc 编译自定义代码时才装,约 3-5 GB
cuDNN多数场景不装框架 wheel 已捆绑对应版本
Python3.10 / 3.11 / 3.12(保守选 3.11)本篇不装 Python,环境管理详见《AI-03 Python 环境与虚拟环境》

先说清一个最容易踩的坑:nvidia-smi输出右上角那个 “CUDA Version” 是驱动支持的最高 CUDA 版本,不是你已经装好的 Toolkit 版本。很多人装完 PyTorch 一看这个数字没变,以为装错了——其实它从装完驱动那一刻起就不会自己变。这个概念贯穿本篇,下面反复出现。

三、安装与部署

3.1 第一步:nvidia-smi 看家底

装任何东西之前,先开终端(Windows 的 cmd 或 PowerShell,Linux 的 terminal)跑一条命令:

nvidia-smi

两种结果:

  • 提示'nvidia-smi' 不是内部或外部命令(Linux 上是command not found):说明驱动还没装,直接从 3.2 开始;
  • 看到一张表:说明驱动已经在。表里重点看三处——驱动版本号(如 550 系)、右上角CUDA Version(驱动支持的上限)、显卡型号与显存大小。把这三个数字记下来,后面装 PyTorch 选版本全靠它。

我一般会在装驱动前先重启一次机器,把浏览器硬件加速、游戏、视频渲染这类后台进程清干净,避免装驱动时被 GPU 占用卡住。

3.2 Windows 装驱动:官网安装包

  1. 打开 NVIDIA 官网驱动下载页,按实际卡型选 GeForce(游戏卡)或数据中心卡(专业卡),选对系统和架构;
  2. 下载.exe安装包并运行,按提示走完全过程;安装方式里选“表达式安装”即可,自定义安装只有想剔除个别组件时才用,我一般不折腾;
  3. 装完重启,这一步别省——显卡驱动的核心组件要重启后才完成替换,跳过它偶尔会出“装上了但时灵时不灵”的问题;
  4. 再跑nvidia-smi,看到表格即成功。

我的习惯是:老机器升级驱动时,先在“设备管理器 → 显示适配器 → 卸载设备”里把旧驱动清掉再装新的,省得残留配置在后面出怪问题。装之前顺手把 NVIDIA 控制面板里的实验性选项恢复默认,少一个变量少一类怪问题。

WSL2 用户特别注意:Windows 侧装的是同一套驱动,WSL 内部不需要也不应该再装一遍 NVIDIA 驱动,详见《AI-04 WSL2 部署 AI 开发环境》。

3.3 Linux 装驱动:apt 与 .run 两种方式

方式一,系统仓库(推荐新手,和内核配合更好,升级省心):

sudo apt update sudo apt install nvidia-driver-550

仓库版本号会随发行版更新,这里用 550 举例。选 apt 方式的核心理由:驱动和内核是强耦合关系,系统升级内核时仓库版驱动通常有对应的内核模块同步更新,出“装完能用、系统一升级就黑屏”的概率比 .run 低不少;装完执行:

sudo reboot

重启后跑nvidia-smi验证。

方式二,NVIDIA 官网.run文件(版本更新更快,但要求手动操作):

  1. 官网下载对应的.run文件;
  2. 装驱动前确认没有桌面会话/关闭 X:从图形界面里直接跑很容易中途失败,最稳的做法是先切到纯文本 TTY 登录再执行;
  3. 赋予执行权限并运行:
sudo chmod +x NVIDIA-Linux-x86_64-xxx.run sudo ./NVIDIA-Linux-x86_64-xxx.run
  1. 按向导选项走,遇到提示禁用内核自带显卡模块时按向导勾选,完成后sudo reboot。

两种方式装完都是同一个验证动作:nvidia-smi出表。

3.4 判断 CUDA Toolkit 装与不装

先看需求,再决定下不下那 3-5 GB:

可以不装 Toolkit:你只是用 PyTorch、Ollama、vLLM 这些现成框架跑推理、微调或出图。它们的 wheel 包已经捆绑了编译好的 CUDA 运行时,装上框架就能直接用卡。纯 PyTorch 用户跳过本节直接去下一篇,是这条路线里最省硬盘的正确姿势。

需要装 Toolkit:你要用nvcc编译自己的.cu代码、从源码编译框架、或用 TensorRT 这类独立工具链。判断标准很简单——你的工作流里有没有"编译 CUDA 代码"这个动作,有就装,没有就不装。

需要装时的步骤(Windows 为例):

  1. 到 NVIDIA 官网 CUDA Toolkit 下载页选系统架构,下载本地安装包;
  2. 运行安装包,安装模式选Local(本地);
  3. 组件列表里至少保留 nvcc 工具链,安装前确认驱动已是新版;
  4. 装完重启,跑nvcc --version验证。

Linux 侧官网同样提供 runfile 方式安装,流程和上面一致。

3.5 cuDNN 何时需要

cuDNN 是卷积类算子的加速库。结论:多数场景不用单独装。PyTorch 的 wheel 里已经捆绑了对应版本的 cuDNN,Ollama、vLLM 这类应用也不依赖你单独装 cuDNN。只有两种情况才动它:从源码编译框架时,或应用明确提示找不到 cuDNN 库文件时。需要装的话,到 NVIDIA 官网下载对应 CUDA 大版本的 cuDNN 包,按说明把库路径配进环境即可,装完不需要重启。

3.6 版本对应关系:驱动 550 支持 CUDA 12.4 是什么意思

把两个版本数字的关系钉死:

  • 驱动版本决定系统能跑的 CUDA 上限。常见对应(写"约",以 NVIDIA 官网兼容性表为准):550 系约支持 CUDA 12.4,555 系约支持 12.5,560 系约支持 12.6+;
  • PyTorch 的 cuXXX wheel代表它编译时用的 CUDA 版本。原则只有一条:PyTorch 编译所用的 CUDA 版本 ≤ 驱动支持的 CUDA 版本。

所以:nvidia-smi 显示支持 12.4,你却装了 cu126 的 PyTorch,大概率报CUDA driver version is insufficient for CUDA runtime version——解法是升级驱动,而不是去装 12.6 的 Toolkit。反过来,驱动够新但显卡太老,太新的 CUDA 编译在老架构上会报no kernel image,解法是换与显卡架构匹配的 PyTorch wheel,而不是升驱动。两个方向别搞反。

四、验证

三步收口,一步一层:

nvidia-smi

驱动层。预期:出一张表,含驱动版本、CUDA Version(支持上限)、显卡与显存。到这一步说明"GPU 认"。

nvcc --version

工具链层。预期:打印 Toolkit 版本号。没有 nvcc 命令(提示不是内部或外部命令 / command not found)是正常的——说明你按 3.4 的判断跳过了 Toolkit,对纯 PyTorch 用户完全不影响。

框架层放到下一篇,装完 PyTorch 后跑:

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

预期输出形如2.x.x+cu124 True。三层全绿,GPU 底座就算打完了。

五、进阶技巧

nvidia-smi 看实时占用:开两个终端,一个跑模型,另一个刷nvidia-smi,观察显存和 GPU 利用率是否随任务变化。跑了大模型但显存纹丝不动?基本可以断定模型没上卡,十有八九是 PyTorch 装成了 CPU 版,下一篇的验证环节会专门治这个。

cuXXX 选择口诀:PyTorch 的 cuXXX 不超过 nvidia-smi 显示的 CUDA 上限、且显卡架构被该 CUDA 版本覆盖,两个条件同时满足就稳。具体到每张卡怎么选 wheel,见下一篇的 pytorch.org 选择器用法。

多版本共存靠隔离:不同项目锁不同 torch 版本时,一个项目一个虚拟环境(venv 或 conda),全局环境只放公共工具。混装多版本 CUDA 是 Windows 上Error 126: Unknown error和环境变量污染的高发原因,隔离是最便宜的保险。

国内下载口径:NVIDIA 驱动和 CUDA Toolkit 不走 pip 镜像,只能官网直连,慢就换时段或换网络,别信任何“加速下载站”的驱动包;PyTorch wheel 在官方源(download.pytorch.org),国内直连通常可用但不快,其余依赖配合清华源装会快很多:

pip install <pkg> -i https://pypi.tuna.tsinghua.edu.cn/simple

六、故障排查

按分层定位法从下往上排:网络层 → 驱动层 → 框架层 → 显存层 → 应用层。下面每条都标了层,先看层再动手。

层症状 / 报错原文原因解决
【驱动】Linux 下nvidia-smi提示command not found(Windows 提示"不是内部或外部命令")驱动未装,或命令不在 PATH按 3.2/3.3 装驱动;已装则export PATH=$PATH:/usr/bin(nvidia-smi 在 /usr/bin)
【驱动】CUDA driver version is insufficient for CUDA runtime version驱动低于框架所需的 CUDA 版本升级 NVIDIA 驱动(注意:是升驱动,别只升 Toolkit)
【框架】torch.cuda.is_available()返回FalsePyTorch 装了 CPU 版,或驱动过老重装对应 cuXXX 版 wheel;或升级驱动
【框架】CUDA error: no kernel image is available for execution on the devicePyTorch 编译的 CUDA 版本高于显卡架构支持,wheel 与卡不匹配换与显卡架构匹配的 PyTorch wheel,以 pytorch.org 选择器为准
【驱动】Linux 下Could not load libcuda.so.1未装 NVIDIA 用户态驱动,或容器未透传 GPU装驱动;Docker 场景加--gpus all
【环境】Windows 下Error 126: Unknown error/ 加载 .dll 失败(如libcudart.so.12 not found类报错)多版本 CUDA 混装、PATH 污染清理环境变量,用 conda 隔离环境;用ldd/ dumpbin 看具体缺哪个库
【网络】HuggingFace 下载卡住 /ConnectionError/ 超时国内访问 huggingface.co 受限set HF_ENDPOINT=https://hf-mirror.com(Linux 用export),或改用 ModelScope,详见《AI-06 模型下载全攻略》
【显存】torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate ...模型 / 上下文 / 批太大降量化位宽、降max-model-len/ batch;nvidia-smi查后台占用并清理
【驱动】WSL 内nvidia-smi报The NVIDIA driver on your system is too oldWindows 侧驱动太老不支持 WSL2 GPU升级 Windows 侧 NVIDIA 驱动到最新版(WSL 内不需要单独装驱动)

排不动时的 30 秒探针顺序:ping hf-mirror.com(网络层)→nvidia-smi能否出表(驱动层)→torch.cuda.is_available()==True与否(框架层)→nvidia-smi显存占用(显存层)→ 应用日志与端口(应用层)。逐层定位,不跳级。

七、本篇自检清单

  • nvidia-smi能出表,能说出驱动版本号与 CUDA 支持上限分别是多少
  • 理解 nvidia-smi 的 “CUDA Version” 是驱动支持上限,不是已装的 Toolkit 版本
  • 能判断自己是否需要装 CUDA Toolkit(有编译需求才装),以及 cuDNN 何时需要
  • nvcc --version已验证,或确认跳过且知道为什么不影响 PyTorch
  • 能说出驱动 550/555/560 系与 CUDA 12.4/12.5/12.6+ 的对应关系
  • 装完 PyTorch 后torch.cuda.is_available()返回True(衔接 AI-02)

参考

  • NVIDIA 驱动下载页:https://www.nvidia.com/Download/index.aspx
  • CUDA Toolkit 安装指南:https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/
  • cuDNN 文档:https://docs.nvidia.com/cudnn/
  • PyTorch 官网(Get Started 安装命令生成器):https://pytorch.org/get-started/locally/

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询