安装cuda

深度学习环境配置------Windows安装CUDA与CUDNN_cudnn tarball-CSDN博客

Windows11安装CUDA、cuDNN、PyTorch详解_win11 cuda安装-CSDN博客(强推)

cuda和cudnn的安装教程(全网最详细保姆级教程)_cudnn安装-CSDN博客

了解cuda cudatoolkit cudann pytorch关系:

CUDA ​ 是标准,CUDA Toolkit (cudatoolkit) ​ 是工具,cuDNN​ 是加速包。

二、为什么 PyTorch 版本必须和它们适配?

核心原因:二进制接口(ABI)不兼容 。PyTorch 是预编译好的二进制包,不是现场从源码编译的。

  1. 原理:编译时的"锁死"

PyTorch 在出厂(编译)时,已经用特定版本 的 CUDA Toolkit 和 cuDNN 编译好了。它内部已经链接了特定版本的动态库(如 libcudart.so.11.0)。

  • 如果你本地环境版本不一致比如 PyTorch 是用 CUDA 11.8 编译的,你本地只有 CUDA 12.x,运行时就会找不到对应的 .so文件,报错 ImportErrorundefined symbol

  • cuDNN 同理PyTorch 内部调用了 cuDNN 的卷积函数,如果版本不匹配,函数接口可能变了,直接导致程序崩溃。

  1. 两个"版本"的误区
  • nvidia-smi显示的 CUDA Version :那是你的显卡驱动能支持的最高 CUDA 版本 ,不是你实际安装的 Toolkit 版本。只要驱动版本足够高(向下兼容),跑低版本 PyTorch 通常没问题。

  • nvcc --version :这才是你本地实际安装的 CUDA Toolkit 编译器版本

1.查看显卡驱动兼容性

有显卡,需要cuda

这表明作者电脑支持GPU计算。如果电脑不支持GPU,后续操作也就不需要了,只能使用CPU进行深度学习。 在Windows11中显示的GPU 0和GPU 1表示你的计算机中检测到了多个图形处理单元(GPU),最常见是集成显卡 + 独立显卡,GPU 0:通常是集成显卡(Integrated GPU,如 Intel UHD Graphics、AMD Radeon Vega 等),集成在CPU中,功耗低,适合日常办公和轻度任务。GPU 1:通常是独立显卡(Dedicated GPU,如 NVIDIA GeForce、AMD Radeon、Intel ARC 等),性能更强,用于游戏、设计、3D 渲染等高性能需求。

‌CUDA(Compute Unified Device Architecture)是显卡厂商‌NVIDIA推出的一种通用并行计算架构‌,旨在利用‌GPU(图形处理器)进行高性能计算。CUDA是利用GPU进行高性能计算的一个工具包。

CUDA(Compute Unified Device Architecture)是 NVIDIA 推出的并行计算平台和编程模型。你可以把它理解为 GPU(显卡)的"驱动程序+开发环境"。

2 类比理解

  • CPU:像 1 个数学教授,单核能力强,适合处理复杂逻辑。

  • GPU:像 10000 个小学生,适合同时处理大量简单计算(如矩阵乘法)。

  • CUDA :就是那个吹哨子、排队形、发试卷的体育老师,负责把这 10000 个小学生组织起来干活。

比如我的显卡驱动版本是566,可安装的CUDA最高版本为12.7

3查看nvida控制面板和显卡驱动下载/更新(额外非必需)

(一)显卡驱动更新教程

如下:注意注意注意:如果你电脑不需要更新显卡驱动,那就跳过显卡驱动更新教程哦

1.查看自己电脑显卡型号

在搜索框输入设备管理器并打开

2.下载/更新地址:下载 NVIDIA 官方驱动 | NVIDIA

下载 NVIDIA 官方驱动 | NVIDIA下载最新官方 NVIDIA 驱动,增强 PC 游戏体验并更快地运行应用。https://www.nvidia.cn/Download/index.aspx?lang=cn

3.下载完成直接双击安装

安装超级简单,直接下一步下一步就行,安装完成之后重启电脑,在终端输入nvidia-smi命令,来查看可支持的最高cuda版本

(二)查看nvida控制面板

NVIDIA控制面板怎么打开?-CSDN博客

我没nvida驱动?

4查看是否安装cuda

我还没安装cuda

NVIDIA的显卡驱动程序和CUDA是两个不同的概念!CUDA是NVIDIA推出的使用GPU进行计算的一个工具包(TooKit)。如果没有显卡驱动根本用不了显卡 ,**因此当我们使用一台电脑的时候默认会已经安装NVIDIA的显卡驱动,**例如作者驱动版本为566.24,我们也可以更新我们的驱动,更新链接为:

https://www.nvidia.com/Download/index.aspx?lang=en-us

5.查看cuda和gpu的兼容版本

登录如下地址,可以查看CUDA版本和对应的NVIDIA GPU驱动版本兼容表格:

CUDA 12.6 Update 2 Release Notes

CUDA Toolkit 13.3 - Release Notes --- Release Notes 13.3 documentation

可以看到CUDA版本不高于CUDA 12.6 Update 3版本均可。

6 CUDA下载

地址如下:

CUDA Toolkit Archive | NVIDIA Developer

CUDA Toolkit Archive | NVIDIA Developerhttps://developer.nvidia.com/cuda-toolkit-archive

我安装这个

cuda_12.6.2_560.94_windows.exe 安装包名字就是cuda版本和对应驱动版本

自定义安装在这个路径

安装好之后成功样子(需要有环境变量,正常自动安装就自动填上了):

在系统变量 用户变量那里没有 两者区别:

三、cudnn安装

‌cuDNN(CUDA Deep Neural Network library)是一个由NVIDIA开发的深度学习GPU加速库,旨在为深度学习任务提供高效、标准化的原语(基本操作)来加速深度学习框架在NVIDIA GPU上的运算。

cuDNN安装需要先注册账号(需要注册一个账号才可以下载,随便注册就行)但好像现在不需要了?反正我没有登录。登录如下地址:

cuDNN 9.23.0 Downloads | NVIDIA Developer

cuDNN 9.23.0 Downloads | NVIDIA Developerhttps://developer.nvidia.com/cudnn-downloads

选择对应版本进行下载。如果当前界面没有你需要的版本,可访问如下历史版本页面进行下载:

cuDNN Archive | NVIDIA Developer

cuDNN Archive | NVIDIA Developerhttps://developer.nvidia.com/rdp/cudnn-archive

历史版本:

eg:for CUDA 11.x 表示这个cuDNN版本是 CUDA 11.x 版本系列兼容的。CUDA11.x 系列包括了 11.0、11.1、11.2 、11.3等具体版本,x 表示任何小版本号

复制这三个文件到cuda安装目录下,覆盖

1.验证是否安装成功

cd .\extras\demo_suite

分别执行.\bandwidthTest.exe .\deviceQuery.exe

四、PyTorch安装

有选cuda的就是torch-gpu版本了 需要在某个环境中装好 便于管理不同项目

登录PyTorch官网地址:

PyTorch

PyTorchhttps://pytorch.org/

如果没有需要的torch,也可以点击那个历史版本链接进去查找wheel文件 建议使用国内源加速pip时候(可以根据项目安排哪个版本)

【超详细教程】2024最新Pytorch安装教程(同时讲解安装CPU和GPU版本)-CSDN博客

【超详细教程】2024最新Pytorch安装教程(同时讲解安装CPU和GPU版本)-CSDN博客文章浏览阅读10w+次,点赞2.1k次,收藏8.1k次。本文详细介绍了如何在2024年安装PyTorch的CPU和GPU版本,包括准备步骤、检测NVIDIA显卡、创建虚拟环境、安装CUDA和cuDNN,以及验证安装。这为深度学习开发者提供了完整的安装指南。https://lino-ai.blog.csdn.net/article/details/135934842?fromshare=blogdetail&sharetype=blogdetail&sharerId=135934842&sharerefer=PC&sharesource=qq_52122048&sharefrom=from_link

点击历史版本链接后可以看到完整的pip命令(下图2):

命令解析

  • torch:PyTorch 主框架。

  • torchvision:图像处理库(如果你做 CV 任务必须装)。

  • --index-url https://download.pytorch.org/whl/cu126:告诉 pip 去这个地址找 CUDA 12.6 版本的 wheel 包。

3. 关于 torchaudio的说明

  • 官网通常不勾选 :除非你做音频处理,否则官网默认不推荐安装 torchaudio,所以命令里没有它。

pip install torch==2.11.0 torchvision==0.26.0 torchaudio==2.11.0 --index-url https://download.pytorch.org/whl/cu126

这里漏了一个torchchaudio

我的例子:一般不在base处理东西

常见镜像源

复制代码
清华:https://pypi.tuna.tsinghua.edu.cn/simple/
阿里云:https://mirrors.aliyun.com/pypi/simple/
https://zhida.zhihu.com/search?content_id=177108011&content_type=Article&match_order=1&q=%E4%B8%AD%E5%9B%BD%E7%A7%91%E6%8A%80%E5%A4%A7%E5%AD%A6&zhida_source=entity:https://pypi.mirrors.ustc.edu.cn/simple/
华为云: https://repo.huaweicloud.com/repository/pypi/simple/
腾讯云:https://mirrors.cloud.tencent.com/pypi/simple/

pip install torch==2.11.0 torchvision==0.26.0 torchaudio==2.11.0 --index-url https://download.pytorch.org/whl/cu126 -i https://pypi.tuna.tsinghua.edu.cn/simple/

这是错误的:

eg:

法1:

pip install torch==2.11.0 torchvision==0.26.0 torchaudio==2.11.0 -i https://download.pytorch.org/whl/cu126

法2:

先pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

再pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu126(去掉官网地址,否则命令行比全局配置优先生效)

关键点 :你设置的中,CUDA 12.6 版本只有 2.6.02.8.0的 torch 版本,没有 2.11.0版本

实际情况:截至目前,PyTorch 官方在 CUDA 12.6​ 这个底层框架下,目前只发布到了 2.8.0版本 。也就是说,cu126的框里,还没有放 2.11.0这块拼图 。

最后我用了这个,降低版本就行:(文章开头强推链接的命令)

pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu126

安装包比较大,需要等待一段时间。如果读者还是觉得慢,可登录阿里镜像下载PyTorch的轮子文件到本地,再进行安装:pytorch-wheels安装包下载_开源镜像站-阿里云

pytorch-wheels安装包下载-开源镜像站-阿里云https://mirrors.aliyun.com/pytorch-wheels/

pip install "torch-2.6.0+cu126-cp312-cp312-win_amd64.whl"

我的例子:

用了官网的

改成用清华源的(已经全局配置了) 但清华源默认给了我cpu版本的

查看不同环境对应的python版本

pip uninstall torch torchvision torchaudio -y 卸载现任版本

还是从阿里云里面找:

我装了这个:

这张图里的文件名 torch-2.6.0+cu126-cp312-cp312-win_amd64.whl就是你要下载的正确文件,它完美解决了你的问题。

我们可以把它拆开来看,它的意思是:

  1. torch-2.6.0:这是 PyTorch 的版本号,和你代码里要求的一致。

  2. +cu126这是最关键的部分! ​ 它代表 CUDA 12.6。这正是你显卡驱动的版本,有了这个,PyTorch 才能调用你的显卡。

    • (你之前报错是因为装了 +cpu结尾的文件,那个只能用 CPU)
  3. cp312 :代表它是给 Python 3.12​ 用的。

  4. win_amd64 :代表这是 Windows 系统 64位​ 的安装包。

我要查找python3.9版本来安装:

你需要下载的文件名应该是:

torch-2.6.0+cu126-cp39-cp39-win_amd64.whl

下载后,用 pip install 文件路径安装即可。

这就是cpu版本torch

这就是gpu版本

成功结果:

测试代码:

复制代码
import torch
 
# 查看torch版本.
print(torch.__version__)
 
# 检查使用设备.
device = (
    "cuda"
    if torch.cuda.is_available()
    else "mps"
    if torch.backends.mps.is_available()
    else "cpu"
)
print(f"Using {device} device")
 
 
# 查看cuda是否可用.
print(torch.cuda.is_available())
 
# 查看cuda版本.
print(torch.version.cuda)
 
# 查看GPU数量
print(torch.cuda.device_count())
 
# 查看设备名称.
print(torch.cuda.get_device_name(0))

测试代码2:

复制代码
import os
os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE'
import torch
import numpy as np
import time


class Benchmark:
    """For measuring running time."""

    def __init__(self, description='Done'):
        self.description = description

    def __enter__(self):
        self.start_time = time.time()

        return self

    def __exit__(self, *args):
        self.stop_time = time.time()
        print(f'{self.description}: {self.stop_time - self.start_time:.4f} sec')


# GPU计算热身
size = 6000

with Benchmark('numpy'):
    for _ in range(10):
        a = np.random.normal(size=(size, size))
        b = np.dot(a, a)

device = torch.device('cuda')
with Benchmark('torch-gpu'):
    for _ in range(10):
        a = torch.randn(size=(size, size), device=device)
        b = torch.mm(a, a)

device = torch.device('cpu')
with Benchmark('torch-cpu'):
    for _ in range(10):
        a = torch.randn(size=(size, size), device=device)
        b = torch.mm(a, a)
相关推荐
小何code1 小时前
【Python零基础入门】第10篇:Python列表方法与应用实例
数据库·人工智能·python
CC数学建模1 小时前
2026第八届中青杯全国大学生数学建模竞赛B题:AI生成内容的质量评估与参数优化完整思路、代码、模型、文章,全网首发高质量分享!
python·算法·数学建模
神仙别闹1 小时前
基于 Python 实现 ANN 与 KNN 的图像分类
开发语言·python·分类
极客笔记Jack1 小时前
Scanpy 高级可视化:从默认配色到发表级图表
python
SilentSamsara1 小时前
高并发 API 压测与调优:locust + 火焰图 + 瓶颈定位
开发语言·python·青少年编程·docker·中间件
财经资讯数据_灵砚智能1 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(日间)2026年6月4日
人工智能·python·ai·信息可视化·自然语言处理·ai编程·灵砚智能
用户67573181940251 小时前
两个Bot不能聊天,我让它们自己建了一条高速公路
python
如烟花的信页1 小时前
易盾滑块逆向分析
javascript·爬虫·python·js逆向
动物园猫2 小时前
无人机角度的道路损害检测数据集分享(适用于YOLO系列深度学习分类检测任务)
深度学习·yolo·无人机