PyTorch 的 CUDA GPU 支持 · 安装五条铁律(最新版 2025 修订)(适用于所有用户)-CSDN博客

是否需要预先安装 CUDA Toolkit?——按使用场景分级推荐及进阶说明-CSDN博客 

“100% 成功的 PyTorch CUDA GPU 支持” 安装攻略_torch cuda 安装-CSDN博客 


🚀【CUDA GPU 支持安装全攻略】PyTorch 深度学习开发者指南

面向对象:初学者、研究人员、生产部署人员
适用平台:Windows / Linux / WSL / 容器环境等全平台支持


📌 一、环境准备与平台说明

无论你使用的是 Windows、Linux 还是 WSL,使用 PyTorch 支持 GPU 的前提都是:

  • 安装并正确配置 NVIDIA 显卡驱动

  • 系统支持 CUDA GPU

  • PyTorch 安装包使用了合适的 CUDA 后端版本

平台GPU 驱动安装方式推荐系统
Windows安装 NVIDIA 官方驱动 .exeWindows 10/11 x64
Linux使用包管理器(如 apt/dnf)或 .run 安装包Ubuntu / Fedora / RHEL
WSL2Windows 端驱动统一控制 GPU,WSL 子系统只需更新内核支持Ubuntu on WSL2

我们推荐使用 WSL2 + Ubuntu 22.04 的组合,在 Windows 上也能获得 Linux 级别的性能和兼容性。


📌 二、NVIDIA 驱动安装与 GPU 验证

驱动是 CUDA 的基础,必须先装好!

✅ 驱动安装完毕后,请执行:

nvidia-smi

 

确认输出类似以下内容:

+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 576.02                 Driver Version: 576.02         CUDA Version: 12.9     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                  Driver-Model | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 3090      WDDM  |   00000000:01:00.0 Off |                  N/A |
|  0%   46C    P8             21W /  350W |   10246MiB /  24576MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

📌 三、CUDA 与 cuDNN 版本对应关系

支持矩阵 — NVIDIA cuDNN 后端
一般情况下无需手动安装 CUDA Toolkit 或 cuDNN(除非你要编译源码或开发底层 CUDA 程序)。但理解版本兼容很重要。

 

CUDA 版本支持的 cuDNN 版本PyTorch 支持状态
12.1cuDNN 9.x✅ 支持
11.8cuDNN 8.6.x✅ 支持
11.7cuDNN 8.5.x✅ 支持
11.6cuDNN 8.4.x✅ 支持
≤11.3已过时❌ 不建议使用

📎 PyTorch 的安装包已经包含了 runtime 所需的 cudart + cuDNN 动态库,无需重复安装!


📌 四、PyTorch 与 CUDA 的兼容性(选版本必看)

请始终通过 PyTorch 官网获取与当前驱动兼容的 PyTorch + CUDA 对组合版本。

🎯 举例:常用组合参考

PyTorch 版本CUDA 后端pip 安装命令
2.2.xcu121pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
2.1.xcu118--index-url https://download.pytorch.org/whl/cu118
1.13.xcu117--index-url https://download.pytorch.org/whl/cu117

如需安装 CPU 版本,可直接:

pip install torch torchvision torchaudio

📌 五、PyTorch 安装方式详解

✅ 推荐方式一:pip 安装(适用所有平台)

# 安装 CUDA 12.1 后端版本
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

✅ 推荐方式二:conda 安装(适用 Anaconda 环境)

conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia

⚠️ 源码编译(进阶用户专用)

用于自定义构建 PyTorch 或开发自定义 CUDA 内核的情况,需要:

CUDA 工具包 12.9 Update 1 下载 |NVIDIA 开发人员 

 

 cuDNN 9.10.2 下载 |NVIDIA 开发人员

 

  • 安装 CUDA Toolkit 与 cuDNN

  • 设置环境变量 CUDA_HOME ( CUDA12.6+ 之后会自动处理环境变量的设置)

  • 使用 python setup.py install 编译


📌 六、GPU 环境验证步骤(安装完成后必须执行)

import torch  # 导入 PyTorch 库print("PyTorch 版本:", torch.__version__)  # 打印 PyTorch 的版本号# 检查 CUDA 是否可用,并设置设备("cuda:0" 或 "cpu")
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
print("设备:", device)  # 打印当前使用的设备
print("CUDA 可用:", torch.cuda.is_available())  # 打印 CUDA 是否可用
print("cuDNN 已启用:", torch.backends.cudnn.enabled)  # 打印 cuDNN 是否已启用# 打印 PyTorch 支持的 CUDA 和 cuDNN 版本
print("支持的 CUDA 版本:", torch.version.cuda)
print("cuDNN 版本:", torch.backends.cudnn.version())# 创建两个随机张量(默认在 CPU 上)
x = torch.rand(5, 3)
y = torch.rand(5, 3)# 将张量移动到指定设备(CPU 或 GPU)
x = x.to(device)
y = y.to(device)# 对张量进行逐元素相加
z = x + y# 打印结果
print("张量 z 的值:")
print(z)  # 输出张量 z 的内容

终端验证(用于确认驱动状态):

nvidia-smi

📌 七、多 GPU 或指定 GPU 的使用方式

PyTorch 支持多 GPU,只需通过索引编号设置:

device = torch.device("cuda:0")  # 使用第一张 GPU
model.to(device)

遍历所有 GPU 名称:

for i in range(torch.cuda.device_count()):print(f"GPU {i}: {torch.cuda.get_device_name(i)}")

推荐使用 torch.nn.DataParalleltorch.distributed 进行多卡训练。


📌 八、性能测试与环境诊断(可选)

运行以下脚本测试矩阵乘法性能(浮点运算):

import torch
import timex = torch.rand(5000, 5000, device='cuda')
y = torch.rand(5000, 5000, device='cuda')torch.cuda.synchronize()
start = time.time()for _ in range(10):z = x @ ytorch.cuda.synchronize()
print("10 次 matmul 用时:", time.time() - start, "秒")

✅ 总结回顾

我们建议按以下顺序执行:

  1. 安装 GPU 驱动,确认 nvidia-smi 正常

  2. 安装 PyTorch 对应 CUDA 后端版本(官网推荐为准)

  3. 验证 GPU 是否可用(torch.cuda.is_available()

  4. 如果需要,自定义 GPU 编号、管理多 GPU 环境

  5. 可选进行性能基准测试或深度模型推理测试


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/87609.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/87609.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/87609.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cyberith 运动模拟器Virtualizer2:提升虚拟现实沉浸体验

奥地利Cyberith公司是一家专注于虚拟现实(VR)互动解决方案的创新型科技企业,以其研发的Virtualizer虚拟现实步态模拟设备而闻名。该公司的核心技术体现在其设计和制造的全方位跑步机式VR交互平台上,使得用户能够在虚拟环境中实现自…

常见的数据处理方法有哪些?ETL中的数据处理怎么完成

在数字化转型纵深推进的背景下,数据作为新型生产要素已成为驱动企业战略决策、科研创新及智能化运营的核心战略资产。数据治理价值链中的处理环节作为关键价值节点,其本质是通过系统化处理流程将原始观测数据转化为结构化知识产物,以支撑预测…

WHAT - 为甲方做一个官网(二)- 快速版

文章目录 一、明确需求优先级(快速决策)二、推荐零代码/低代码工具(附对比)方案1:低代码建站平台(适合无技术用户,拖拽式操作)方案2:CMS系统(适合内容更新频繁…

音视频之H.264视频编码传输及其在移动通信中的应用

系列文章: 1、音视频之视频压缩技术及数字视频综述 2、音视频之视频压缩编码的基本原理 3、音视频之H.264/AVC编码器原理 4、音视频之H.264的句法和语义 5、音视频之H.264/AVC解码器的原理和实现 6、音视频之H.264视频编码传输及其在移动通信中的应用 7、音视…

C#语言入门-task2 :C# 语言的基本语法结构

下面从四个方面对C#的基本语法进行简单介绍: 1. 数据类型 C#的类型可分为值类型和引用类型。值类型变量直接存储数据,引用类型变量则存储对象的引用。 值类型:涵盖整数类型(像int、long)、浮点类型(例如…

c#笔记之类的常量、字段和属性

学习内容: 一、字段 字段是为了对象或者类型存储数据的,可以表达一个对象或者类型的状态;也叫做成员变量;注意字段是在类里面声明的;在方法里声明的是局部变量; 1.1实例字段 用来表示每个实例的状态;比如一个students类;要了解一个学生一般看名字和成绩;所以名字和…

Linux 常用命令(入门)

Linux 常用命令 一、Linux 命令基础 (一)命令格式 Linux 命令的一般格式为:command [-options] [parameter1] … 。其中,command 是命令名,通常是相应功能的英文单词或其缩写;[-options] 是选项,用于对命令进行控制,可省略;parameter1 … 是传给命令的参数,可以是…

CppCon 2016 学习:Parallelism in Modern C++

这段介绍的是 HPX (High Performance ParalleX),一个现代C的通用并行运行时系统,重点包括: 通用性:适用于各种规模的应用,从小型到超大规模分布式系统。统一标准API:符合C标准,方便编写异步、并…

机器学习监督学习实战七:文本卷积神经网络TextCNN对中文短文本分类(15类)

本文介绍了一个基于TextCNN模型的文本分类项目,使用今日头条新闻数据集进行训练和评估。项目包括数据获取、预处理、模型训练、评估测试等环节。数据预处理涉及清洗文本、中文分词、去除停用词、构建词汇表和向量化等步骤。TextCNN模型通过卷积层和池化层提取文本特…

iot-dc3 项目Bug修复保姆喂奶级教程

一.Uncaught (in promise) ReferenceError: TinyArea is not defined 1.触发场景 前端设备模块,点击关联模板、关联位号、设备数据,无反应,一直切不过去,没有报错通知,F12查看控制台报错如下: 2.引起原因 前端导入的库为"@antv/g2": "^5.3.0",在 P…

Spring Boot + MyBatis Plus + SpringAI + Vue 毕设项目开发全解析(源码)

前言 前些天发现了一个巨牛的人工智能免费学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 Spring Boot MyBatis Plus SpringAI Vue 毕设项目开发全解析 目录 一、项目概述与技术选型 项目背景与需求分析技术栈选择…

Vitess数据库部署与运维深度指南:构建可伸缩、高可用与安全的云原生数据库

摘要 Vitess是一个为MySQL和MariaDB设计的云原生、水平可伸缩的分布式数据库系统,它通过分片(sharding)实现无限扩展,同时保持对应用程序的透明性,使其无需感知底层数据分布。该项目于2019年从云原生计算基金会&#…

SpringAI+DeepSeek大模型应用开发——6基于MongDB持久化对话

持久化对话 默认情况下,聊天记忆存储在内存中ChatMemory chatMemory new InMemoryChatMemory()。 如果需要持久化存储,可以实现一个自定义的聊天记忆存储类,以便将聊天消息存储在你选择的任何持久化存储介质中。 MongoDB 文档型数据库&…

Mac电脑-音视频剪辑编辑-Final Cut Pro X(fcpx)

Final Cut Pro Mac是一款专业的视频剪辑工具,专为苹果用户设计。 它具备强大的视频剪辑、音轨、图形特效和调色功能,支持整片输出,提升创作效率。 经过Apple芯片优化,利用Metal引擎动力,可处理更复杂的项目&#xff…

不同程度多径效应影响下的无线通信网络电磁信号仿真数据生成程序

生成.mat数据: %创建时间:2025年6月19日 %zhouzhichao %遍历生成不同程度多径效应影响的无线通信网络拓扑推理数据用于测试close all clearsnr 40; n 30;dataset_n 100;for bias 0.1:0.1:0.9nodes_P ones(n,1);Sampling_M 3000;%获取一帧信号及对…

Eureka 和 Feign(二)

Eureka 和 Feign 是 Spring Cloud 微服务架构中协同工作的两个核心组件,它们的关系可以通过以下比喻和详解来说明: 关系核心:服务发现 → 动态调用 组件角色核心功能Eureka服务注册中心服务实例的"电话簿"Feign声明式HTTP客户端根…

Springboot仿抖音app开发之RabbitMQ 异步解耦(进阶)

Springboot仿抖音app开发之评论业务模块后端复盘及相关业务知识总结 Springboot仿抖音app开发之粉丝业务模块后端复盘及相关业务知识总结 Springboot仿抖音app开发之用短视频务模块后端复盘及相关业务知识总结 Springboot仿抖音app开发之用户业务模块后端复盘及相关业务知识…

1.部署KVM虚拟化平台

一.KVM原理简介 广义的KVM实际上包含两部分,一部分是基于Linux内核支持的KVM内核模块,另一部分就是经过简化和修改的Qemuo KVM内核模块是模拟处理器和内存以支持虚拟机的运行,Qemu主要处理丨℃以及为用户提供一个用户空间工具来进行虚拟机的…

优化与管理数据库连接池

优化与管理数据库连接池 在现代高并发系统中,数据库连接池是保障数据库访问性能的核心组件之一。合理配置、优化和管理连接池,可以有效缓解连接创建成本高、连接频繁断开重连等问题,从而提升系统整体的响应速度与稳定性。 数据库连接池的作用与价值 数据库连接池的核心思…

实现回显服务器(基于UDP)

目录 一.回显服务器的基本概念 二.回显服务器的简单示意图 三.实现回显服务器(基于UDP)必须要知道的API 1.DatagramSocket 2.DatagramPacket 3.InetSocketAddress 4.二者区别 1. 功能职责 2. 核心作用 3. 使用场景流程 四.实现服务器端的主…