前言

为了使用GPU,我们可能会需要安装一些陌生的软件——像CUDA ToolkitcuDNN… 这些软件是NVIDIA为GPU计算提供的工具和库,它们可以帮助加速数据科学和深度学习任务。

一种方法是按照 NVIDIA 网站上的文档,在系统范围(主机范围)内手动安装所需的 CUDA Toolkit、NCCL 和 cuDNN 库,并使用环境变量来控制每个项目中的“activate”版本。这意味着可以在系统中安装多个版本,然后通过设置环境变量来指定项目使用的版本。然而,这种方法可能会变得复杂和容易出错。

使用conda包管理工具允许你为每个项目创建独立的环境,其中可以安装特定版本的依赖项(Dependencies),而不会干扰其他项目。这样,你可以为每个项目自定义依赖项,而不必全局管理不同版本的库。

最新 cudatoolkit (或 CUDA‑toolkit meta‑package) 版本

  • 在 NVIDIA 官方 Conda 仓库 (anaconda.org/nvidia) 中 —— meta‑package 名为 cuda-toolkit(注意这个名字,与 cudatoolkit 略有不同) — 最新版本是 13.0.2(Linux 64‑bit).
  • 这个 meta‑package 列出过的版本还包括 12.9.1、12.9.0、13.0.0 等。
  • 如果使用 cudatoolkit 包 (例如通过 conda‑forge channel),情况就有所不同 —— conda‑forge 的 cudatoolkit 支持的最高版本据一些资料可能只到 11.8

为什么有多个“最新版本”:channel 与包名差异

  • cudatoolkit — 这是很多 conda‑forge / Anaconda 主 channel 用来提供 CUDA runtime & 库 (不一定包含 nvcc 编译器) 的包。其版本更新较慢。
  • cuda-toolkit — 这是 NVIDIA 官方 channel 提供的 full‑toolkit meta‑package (包括运行时、库,有时也带编译工具链) —— 它反映了较新的 CUDA 发布 (如 CUDA 13.x) 。

总结

  1. 当你在环境里安装的是新版本 cuda-toolkit,同时系统 GPU 驱动也要兼容这个 CUDA 版本 — 否则 GPU 加速可能无法正常工作。

    系统级别只装一套“足够新”的 NVIDIA 驱动就行,驱动要新到能支持你想用的最高 CUDA 版本(比如 12.1 / 12.x 甚至 13.x),这样在不同 conda 环境里用 11.4 / 11.8 / 12.1 都没问题。

    NVIDIA 的设计是:驱动向后兼容(backward compatible)。官方文档说得很明确:一个新的 CUDA 驱动可以跑用旧 CUDA Toolkit 编译出来的程序。

    换句话说:你的 conda 环境里可以有 cudatoolkit=11.411.812.1……但是只要系统里 GPU 驱动支持最高那个 CUDA 版本,这些环境都能愉快用 GPU。

  2. 不要在系统里再装一套完整的 CUDA Toolkit(deb/run)和 conda 里的 cudatoolkit 混着用,容易产生“到底用的是哪套库”的鬼打墙。

    • 系统级别只装:NVIDIA 驱动

    • 每个 conda 环境装:pytorch / tensorflow + 对应版本的 cudatoolkitcuda-toolkit

  3. 驱动版本还要看你 具体显卡型号 是否被支持(老卡有可能新驱动不再管它;反过来也有新卡要求比较新的驱动/最低支持的 CUDA 版本)。