【CUDA GPU 支持安裝全攻略】PyTorch 深度學習開發者指南

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. 使用場景流程 四.實現服務器端的主…