如何在Anaconda中配置你的CUDA Pytorch cuNN環境(2025最新教程)

目錄

一、簡介

二、下載CUDA

三、下載Pytorch-GPU版本

四、下載CUDNN

五、總結

六、測試代碼


一、簡介

啥是Anaconda?啥是CUDA?啥是CUDNN?它們和Pytorch、GPU之間有啥關系?

怎么通俗解釋它們三者的用途和關系?
1.GPU(圖形處理單元):
-用途:GPU就像一個超級快的數學計算器。它特別擅長同時處理很多相同的計算任務,比如在視頻游戲中渲染成千上萬的像素點,
或者在深度學習中同時更新成千上萬的神經網絡參數。
-比喻:想象一下你有一個非常擅長做加減乘除的大腦,而GPU就像是很多這樣的大腦同時工作,一起解決數學問題。
2.CUDA(計算統一設備架構):
-用途:CUDA是一個幫助程序員使用GPU的工具。它允許程序員編寫代碼,然后這些代碼可以被GPU理解并執行。沒有CUDA,程
序員就需要用更復雜的方式來指揮GPU工作。
-比喻:CUDA就像是GPU的語言翻譯器。程序員用一種語言寫代碼,CUDA把它翻譯成GPU能理解的語言。
3. PyTorch(一個深度學習庫):
-用途:PyTorch是一個幫助人們輕松創建和訓練深度學習模型的工具。深度學習模型是用于圖像識別、語音識別、語言翻譯等復雜任
務的計算機程序。
-比喻:PyTorch就像是一個高級的“積木箱”,里面有很多現成的積木(代碼)。你可以用這些積木來搭建復雜的模型,比如一個可
以識別貓和狗的模型。
它們之間的關系:
-當你使用PyTorch來創建一個深度學習模型時,如果你想要這個模型訓練得更快,你可以讓它利用GPU的計算能力。這時,CUDA就
像是一個橋梁,幫助PyTorch和GPU溝通,讓GPU來加速模型的訓練。

4.CUDNN(NVIDIA打造的針對深度神經網絡的加速庫)

CUDNN(CUDA Deep Neural Network library):是NVIDIA打造的針對深度神經網絡的加速庫,是一個用于深層神經網絡的GPU加速庫。如果你要用GPU訓練模型,cuDNN不是必須的,但是一般會采用這個加速庫

而Anaconda是包管理器,用來承載你所配置的虛擬環境的包,像深度學習的cpu和gpu相關配置都要在這上面的虛擬環境配置好,下次無論你使用jupter還是pycharm都可以直接在這個虛擬環境上運行啦!!!

Anaconda的下載具體見這篇博客:

【2025最新】下載安裝Anaconda_anaconda下載-CSDN博客

二、下載CUDA

實際上如果你用conda去調用GPU的話不用特意下載CUDA,因為使用了?conda 安裝的?cudatoolkit(僅包含運行時庫,沒有編譯器?nvcc),

  1. CUDA 相關文件的實際位置
    就在你的虛擬環境目錄中:
    D:\Anaconda\envs\pytorch\Library
    (這里包含了 PyTorch 運行所需的 CUDA 動態鏈接庫)

  2. 如果需要?nvcc?編譯器
    (比如編譯自定義 CUDA 算子),則需要單獨安裝完整的 CUDA Toolkit:

    • 下載對應版本(12.1)的安裝包:NVIDIA CUDA Toolkit 12.1
    • 安裝時會自動配置?nvcc?路徑和環境變量。

這是CUDA的下載地址:

CUDA Toolkit Archive | NVIDIA Developer

在這里你可以下載以前的CUDA版本,選擇你自己電腦兼容的。

像我的電腦是要下載12.5以下的CUDA版本。

然后進行exe程序包后下載:

等待下載完成即可

三、下載Pytorch-GPU版本

1.查看現有的CUDA版本

在shell中輸入:nvidia-smi可以查看你當前的CUDA版本信息,可以看見我的版本是12.5

接下來下載Pytorch的時候就要根據這個來下載(向下兼容)

2.查看Anaconda中的Pytorch的版本:

1.進入虛擬環境

2.輸入python

3.輸入:

import torch

print(torch.__version__)

這一步說明我的虛擬環境中下載的是cpu版本的pytorch

  • 2.7.1:這是 PyTorch 的主版本號,其中?2?是大版本,7?是次版本,1?是補丁版本,用于標識具體的軟件版本迭代。
  • +cpu:表示這個 PyTorch 版本是?僅支持 CPU 計算?的版本,不包含 GPU 加速功能(如 CUDA 支持)。如果你的電腦沒有 NVIDIA 顯卡,或者安裝時選擇了僅 CPU 版本,就會顯示這個標識。

如果需要使用 GPU 加速(需滿足 NVIDIA 顯卡且支持 CUDA 架構),需要安裝帶有?+cuXXX?標識的版本(如?2.7.1+cu121,其中?cu121?表示支持 CUDA 12.1)

3.查看可用的CUDA數量

import torch #如果pytorch安裝成功即可導入
print(torch.cuda.device_count())  #查看可用的CUDA數量

這時候我需要新建一個虛擬環境用作GPU版本的pytorch運行

進入conda prompt,然后輸出python查看你目前的pytorch版本:

# 創建名為myenv的虛擬環境,指定Python版本為3.11
conda create --name pytorch python=3.11

執行命令后,會顯示將要安裝的包,輸入y并回車確認安裝。

這樣就新建好虛擬環境啦,然后就是要下載用于Pytorch跑GPU的CUDA版本啦

第一種方法是在CUDA的官網下載CUDA:點擊下面這個鏈接

Get Started

首先先激活你的pytorch虛擬環境,然后復制上面的鏈接就可以開始下載啦

值得一提的是目前由于conda環境難維護,官方已經不維護conda環境的下載了,只能選擇pip的下載方式。

?下面一種方法適合你當前電腦的CUDA版本比官網上的最低版本還低,而且又懶得升級CUDA版本的,就去下面這個鏈接下載以前版本的pytorch。

Previous PyTorch Versions

到上面這個網址里下載過去版本的pytorch

根據版本對應關系和上面你的CUDA版本情況輸入指令:

例如:

pip install pytorch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 pytorch-cuda=11.7 -c pytorch -c nvidia

同樣也是將這段bash復制到你激活的虛擬環境里

這樣就安裝完成啦~

如果覺得慢的也可以使用其它源:

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

import torch
torch.cuda.is_available() # 查看pytorch是否支持CUDA
torch.cuda.device_count() # 查看可用的CUDA數量
torch.version.cuda # 查看對應CUDA的版本號

可以發現我現在已經配置好了pytorch的GPU版的虛擬環境

四、下載CUDNN

CUDNN(CUDA Deep Neural Network library):是NVIDIA打造的針對深度神經網絡的加速庫,是一個用于深層神經網絡的GPU加速庫。如果你要用GPU訓練模型,cuDNN不是必須的,但是一般會采用這個加速庫。

第一次下載需要注冊英偉達賬號

下載鏈接:

知乎 - 安全中心

下載好之后解壓

將bin,include,lib文件夾中的文件分別移動到Cuda對應的文件夾中:

路徑類似: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12

替換后找到類似這個文件夾:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6\extras\demo_suite

輸入cmd,點回車,打開命令行:

分別輸入一下兩個命令:

bandwidthTest.exe
deviceQuery.exe

如果出現Result=PASS,則說明安裝成功。

接下來就可以在你建立的虛擬環境中愉快地玩耍深度學習啦~

五、總結

其實本質上就是anaconda作為包管理工具,Pytorch要根據自己電腦支持的CUDA版本下載到這個環境上,另外CUDA也要相同的版本,至于說CUDNN是CUDA的一部分,也是深度學習的工具。實際上我們電腦自己就有CUDA-CPU版本,不用再下載了,只要在相應環境上下載Pytorch包就可以。CUDA-GPU版本可以單獨下載,也可以在虛擬環境上下載好Pytorch-GPU后直接使用,因為anaconda里包含了 PyTorch 運行所需的 CUDA 動態鏈接庫,如果需要?nvcc?編譯器(比如編譯自定義 CUDA 算子和CUDNN),則需要單獨安裝完整的 CUDA Toolkit。即如果只是用 PyTorch 跑模型,不需要額外操作;如果需要編譯 CUDA 代碼,才需要安裝完整的 CUDA Toolkit。

六、測試代碼

import torchdef test_cuda_and_cudnn():# 檢查CUDA是否可用print(f"CUDA可用: {torch.cuda.is_available()}")if not torch.cuda.is_available():print("請檢查CUDA配置,當前無法使用GPU")return# 查看CUDA版本和設備信息print(f"CUDA版本: {torch.version.cuda}")print(f"GPU設備數量: {torch.cuda.device_count()}")print(f"當前使用的GPU: {torch.cuda.get_device_name(0)}")  # 查看第0號GPU名稱# 測試GPU計算print("\n測試GPU計算...")# 在GPU上創建張量a = torch.tensor([1.0, 2.0, 3.0], device='cuda')b = torch.tensor([4.0, 5.0, 6.0], device='cuda')c = a + b  # 在GPU上執行加法print(f"GPU計算結果: {c.cpu().numpy()}")  # 轉回CPU并打印# 測試CuDNNprint("\n測試CuDNN加速...")# 檢查CuDNN是否可用print(f"CuDNN可用: {torch.backends.cudnn.enabled}")# 使用CuDNN加速的卷積操作# 創建隨機輸入張量和卷積權重(均在GPU上)input_tensor = torch.randn(1, 3, 64, 64, device='cuda')  # 批次1,3通道,64x64conv = torch.nn.Conv2d(3, 16, kernel_size=3, device='cuda')  # 卷積層# 開啟CuDNN加速(默認開啟)torch.backends.cudnn.benchmark = True# 執行卷積操作output = conv(input_tensor)print(f"CuDNN加速的卷積輸出形狀: {output.shape}")  # 應輸出(1, 16, 62, 62)print("\n所有測試完成,CUDA和CuDNN工作正常!")if __name__ == "__main__":test_cuda_and_cudnn()

結果:

一切正常!!!記得環境使用你創建的那個Pytorch-GPU的虛擬環境~

參考博客:

1.(59 封私信 / 80 條消息) 安裝Cuda和cudnn,以及Pytorch的GPU版本 - 知乎

2.CUDA&Pytorch安裝使用(保姆級避坑指南)_pytorch cuda-CSDN博客

3.啥是CUDA?它和Pytorch、GPU之間有啥關系? - Tutu007 - 博客園

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/97960.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/97960.shtml
英文地址,請注明出處:http://en.pswp.cn/web/97960.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

算法面試(1)-----目標檢測和圖像分類、語義分割的區別

操作系統:ubuntu22.04 IDE:Visual Studio Code 編程語言:C11 算法描述 目標檢測(Object Detection)、圖像分類(Image Classification)、語義分割(Semantic Segmentation) 是計算機視…

電腦散熱風扇有噪音怎么解決

一、初步檢查與清理斷電并拆機關閉電腦并拔掉電源,打開機箱側板(筆記本需先拆除后蓋螺絲)。操作前建議佩戴防靜電手環,避免靜電損壞硬件。清理風扇及散熱片灰塵使用壓縮空氣罐從風扇進風口吹走灰塵,或用軟毛刷輕輕刷去…

SeaweedFS深度解析(九):k8s環境使用helm部署Seaweedfs集群

上一篇:《SeaweedFS深度解析(八):k8s環境使用Operator部署Seaweedfs集群》 鏈接: link #作者:閆乾苓 文章目錄k8s環境使用helm部署Seaweedfs集群準備鏡像seaweed-master-localpv-storageclass.yamlseaweed-volume-lo…

MATLAB繪制一個新穎的混沌圖像(新四翼混沌系統)

新四翼混沌系統:dx/dt a(y - x) yz dy/dt cx - y - xz dz/dt -bz xyMATLAB代碼:function plot_novel_chaotic_system() % 參數設置 a 10; b 8/3; c 28;% 初始條件 x0 [1, 1, 1];% 時間范圍 tspan [0 100];% 求解微分方程 [t, x] ode45((t, x) chaotic_system(t, x, …

金融數據---獲取股票日線數據

獲取股票日線的數據方式有很多,包括東方財富,同花順,tushare,這里我們就利用東方財富的數據,是免費的開源獲取,第一步先安裝akshare,pip安裝就可以py -m pip install akshareAkshare 股票數據獲…

Mac 真正多顯示器支持:TESmart USB-C KVM(搭載 DisplayLink 技術)如何實現

多顯示器已經不再是奢侈品,而是專業人士提升生產力的必需工具。無論是創意設計師、股票交易員還是軟件開發人員,多屏幕都能讓工作流程更高效、更有條理。 然而,Mac 用戶長期以來面臨一個主要障礙:macOS 原生不支持多流傳輸&#x…

【實時Linux實戰系列】靜態鏈接與libc選擇:musl vs glibc的時延權衡

背景與重要性 在實時系統開發中,選擇合適的C標準庫(libc)和鏈接方式對系統的啟動時間、線程性能和內存分配效率有著顯著影響。glibc和musl是兩種流行的C標準庫實現,它們在設計目標和性能表現上存在差異。通過對比這兩種libc在啟動…

Altium Designer(AD24)的三種文件組織形式,工程文件,自由文件與存盤文件

??《專欄目錄》 目錄 1,概述 2,工程文件 3,自由文件 4,存盤文件 5,文件轉換 5.1,工程文件于自由文件互轉換 5.2,工程文件于存盤文件互轉換 6,注意事項 1,概述 本文介紹Altium Designer 24軟件(后文簡稱AD24或軟件)的三種文件組織形式,工程文件,自由文件和存盤文…

Python+Selenium實現自動化測試

🍅 點擊文末小卡片 ,免費獲取軟件測試全套資料,資料在手,漲薪更快安裝selenium打開命令控制符輸入:pip install -U selenium火狐瀏覽器安裝firebug:www.firebug.com,調試所有網站語言&#xff0…

2024年CSP-X初賽真題及答案解析(6-10)

2024年CSP-X初賽真題及答案解析(6-10) 字符串abcabcabc有多少不同的非空子串?( )。 A. 24 B. 36 C. 45 D. 46 答案:A 解析: 長度 1: 3 個(a, b, c) 長度 2: 3 個(ab, bc, ca) 長度 3: 3 個(abc, bca, cab) 長度 4: 3 個(abca, bcab, cabc) 長度 5: 3 個(a…

緩存與數據庫一致性的4大坑及終極解決方案

緩存雪崩、擊穿、穿透全中招?別讓緩存與數據庫的“愛恨情仇”毀了你的系統! 你有沒有經歷過這樣的深夜告警:Redis 響應延遲飆升,數據庫 CPU 直沖 100%,接口大面積超時?一查日志,發現大量請求繞過…

基于 Python charm 庫實現的一些 Pairing 密碼學算法

基于 Python charm 庫實現了一些 Pairing 密碼學算法,放在了 https://github.com/BatchClayderman/Cryptography-Schemes 里面。 在正確部署了 Python charm 庫后,所有的 Python 腳本都是獨立的,即該存儲庫中不存在一個腳本調用另一個腳本的…

用戶體驗五大要點:從問題到解決方案的完整指南

在互聯網產品設計和運營的過程中,用戶體驗(User Experience,簡稱 UX) 已經成為決定產品成敗的關鍵因素。一個功能再強大的產品,如果用戶用得不舒服、不信任,甚至覺得沒有價值,最終都會被拋棄。那…

MySQL 外鍵約束:表與表之間的 “契約”,數據一致性的守護者

MySQL 外鍵約束:表與表之間的 “契約”,數據一致性的守護者 在 MySQL 數據庫設計中,外鍵約束(FOREIGN KEY)是維護表之間關聯關系的核心工具。它就像表與表之間的一份 “契約”,確保從表(如訂單…

《投資-54》元宇宙

元宇宙(Metaverse)是一個近年來備受關注的概念,它描繪了一個虛擬與現實交融、由多個互連的3D虛擬世界組成的沉浸式數字環境。用戶可以通過虛擬現實(VR)、增強現實(AR)、互聯網和其他技術&#x…

【數據結構】Java集合框架:List與ArrayList

文章目錄一、認識List接口1.1 List的定義與繼承關系1.2 Collection接口的核心方法1.3 List接口的獨特方法二、線性表與順序表基礎2.1 線性表2.2 順序表自定義順序表(MyArrayList)實現1. 前期準備:自定義異常類2. MyArrayList核心結構3. 工具方…

K8S里的“豌豆莢”:Pod

1. 為什么要有podPod 這個詞原意是“豌豆莢”,后來又延伸出“艙室”“太空艙”等含義,你可以看一下這張圖片,形 象地來說 Pod 就是包含了很多組件、成員的一種結構。之前的容器技術讓進程在一個“沙盒”環境里運行,具有良好的隔離…

vue3 基本教程-運行一個最小demo

Vue 3 基本教程 - 運行一個最小 Demo 1. 創建項目 使用 Vue 官方腳手架工具創建一個新項目: # 安裝 Vue CLI (如果尚未安裝) npm install -g vue/cli# 創建一個新項目 vue create vue3-demo# 選擇 Vue 3 預設 # 使用方向鍵選擇 "Default (Vue 3)" 然后按 …

大數據新視界 -- Hive 集群搭建與配置的最佳實踐(2 - 16 - 13)

??????親愛的朋友們,熱烈歡迎你們來到 青云交的博客!能與你們在此邂逅,我滿心歡喜,深感無比榮幸。在這個瞬息萬變的時代,我們每個人都在苦苦追尋一處能讓心靈安然棲息的港灣。而 我的博客,正是這樣一個溫暖美好的所在。在這里,你們不僅能夠收獲既富有趣味又極為實…

C/C++ 轉 Java 的數據結構初階對比指南

一、先遣了解和回顧1、預覽快速對比表格數據結構????C/C 實現????Java 實現????關鍵區別????數組??int arr[5];int[] arr new int[5];語法類似&#xff0c;Java 數組是對象??動態數組??vector<int> v;ArrayList<Integer> list new ArrayLi…