【AI】環境——深度學習cuda+pytorch配置

文章目錄

    • 關鍵組件及關系
      • 顯卡驅動GPU Driver
      • CUDA
      • CUDA Toolkit
      • cuDNN
      • Pytorch
    • 各組件版本選擇
      • 驅動程序
      • CUDA
        • 查看驅動及CUDA的最大支持版本
      • CUDA Toolkit
        • 選自定義安裝
        • 檢驗
          • 無法識別nvcc
      • cuDNN
    • conda
      • pip換源
      • conda管理py包
        • conda 換源
        • 查看列表、創建、克隆、激活、刪除
        • conda包管理
          • 包安裝原則
        • 設置默認anaconda
    • pytorch安裝
      • 自動安裝
      • 手動安裝
        • 確定pytorch版本
        • 確定torchvision與torchaudio版本
        • 國內鏡像下載
        • 安裝
      • pip安裝
      • 測試

關鍵組件及關系

參考1

參考2

顯卡驅動GPU Driver

介紹:顯卡驅動是連接操作系統與GPU硬件的驅動程序。負責管理GPU的基本功能:內存管理、任務調度和與操作系統的通信

作用:顯卡驅動程序是深度學習框架及CUDA Toolkit與GPU之間的橋梁。

CUDA

介紹:Compute Unified Device Architecture,NVIDIA 開發的并行計算平臺和編程模型,旨在加速通用計算任務,包括深度學習訓練與推理。

CUDA Toolkit

介紹:CUDA Toolkit 是一套軟件工具集,定義了一些用于GPU加速的數學庫。包含了編譯CUDA代碼所需的工具和CUDA的運行時庫。

作用:CUDA Toolkit 提供了編譯CUDA代碼的工具、CUDA運行時庫和各種GPU加速的數學庫,使開發者能夠方便地構建和優化GPU加速應用程序。

cuDNN

介紹:cuDNN 是NVIDIA的深度學習庫,調用CUDA Toolkit的基本庫函數,實現了專門用于加速深度神經網絡的訓練和推理,可用于各種深度學習框架。

作用:cuDNN 提供了用于加速卷積神經網絡(CNN)等深度學習操作的GPU實現,使深度學習框架能夠在GPU上獲得顯著的性能提升。

Pytorch

定義:PyTorch 是一個深度學習框架,提供用于構建和訓練神經網絡的高級API。

作用:PyTorch允許開發者構建靈活的神經網絡模型,并使用CUDA加速訓練和推理過程。

各組件版本選擇

顯卡驅動決定了本機器支持的最大CUDA的版本,CUDA版本決定了CUDA Toolkit 與cuDNN的版本,最后決定了Pytorch的版本

驅動程序

版本要求:必須與GPU硬件兼容,以確保GPU能正常工作并與操作系統和應用程序通信

更新顯卡驅動版本可以提高本機支持的最高CUDA版本

查看顯卡的最新驅動程序

CUDA

查看驅動及CUDA的最大支持版本
nvidia-smi

在這里插入圖片描述

顯卡驅動與CUDA版本關系

在這里插入圖片描述

  • GA:General Availability,正式發布的版本。
  • RC:Release Candidate,發行候選版本,是最終發布成正式版的前一個版本。

CUDA Toolkit

CUDA Toolkit Archive

選擇相應版本安裝即可

在這里插入圖片描述

在這里插入圖片描述

選自定義安裝

安裝過程注意避免用舊版本替換較高的版本

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

檢驗

安裝完成后在命令行中進行驗證

nvcc -V

在這里插入圖片描述

無法識別nvcc

nvcc 不是內部或外部命令,也不是可運行的程序或批處理文件

只能是兩種問題:

  1. 安裝出錯
  2. 環境變量未配置完全

檢驗是否安裝正確

#1. cmd 轉到CUDA安裝目錄 XX\extras\demo_suite,分別執行
bandwidthTest.exe
deviceQuery.exe

若安裝正確,則二者均 Result = PASS 。否則需要重新安裝

在這里插入圖片描述

環境變量

  1. Path新增三個變量

    D:\cuda\cuda12_3\lib\x64
    D:\cuda\cuda12_3\include
    D:\cuda\cuda12_3\extras\CUPTI\lib64
    

    在這里插入圖片描述

    在這里插入圖片描述

  2. 重啟系統后生效,若想要不重啟生效

    以修改環境變量“PATH”為例,修改完成后,進入DOS命令提示符,輸入:set PATH=C: ,關閉DOS窗口。再次打開DOS窗口,輸入:echo %PATH%

cuDNN

下載地址

在這里插入圖片描述

  • “12.x” 是 CUDA 版本號的一種通用表示法,其中 “x” 表示可以是任何數字,表示適用于該主要 CUDA 版本的所有次要版本。

下載之后,解壓縮,將壓縮包里面的bin、clude、lib文件直接復制到CUDA的安裝目錄下(Development與Documentation目錄下),直接替換

conda

Miniconda/Anaconda區別在于Anaconda安裝后會附帶很多內容,省去安裝一些常見包的麻煩,同時對于一些人來說也會顯得比較臃腫。而Miniconda只包括了conda和python,內容簡潔,但缺點就是一些常見包需要手動下載。

  • miniconda下載地址
    • miniconda清華源
  • anaconda下載地址
    • 清華源

安裝流程注意勾選添加到環境變量即可

pip換源

#查看已安裝的包
conda list
pip list# 安裝包
pip install package_name[==version]
conda install package_name[==version]#移除包
conda remove numpy
pip uninstall numpy# 導入導出環境
conda env export > [配置文件路徑.yaml]
用配置文件創建新環境
conda env create -n [anaconda_name] -f [配置文件路徑.yaml]# 設置pip源
(learning) C:\Users\AmosTian>pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
Writing to C:\Users\AmosTian\AppData\Roaming\pip\pip.ini# 查看是否生效
pip config list# 阿里云鏡像源
http://mirrors.aliyun.com/pypi/simple/
# 清華大學鏡像源
https://pypi.tuna.tsinghua.edu.cn/simple/
# 國科大鏡像源
http://pypi.mirrors.ustc.edu.cn/simple/
# 豆瓣鏡像源
https://pypi.douban.com/simple/

conda管理py包

conda 換源
# 查看當前源
conda config --show channels# 設置安裝包時,顯示鏡像來源,建議顯示
conda config --set show_channel_urls yes # 恢復默認源
conda config --remove-key channels# 添加清華源
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --set show_channel_urls yes# # 修改conda 虛擬環境默認安裝位置,默認是在C盤下的
envs directories : D:\anaconda3\envsC:\Users\AmosTian\.conda\envsC:\Users\AmosTian\AppData\Local\conda\conda\envs# 修改為
conda config --add envs_dirs D:\anaconda3\envs
修改文件夾權限,確保所有用戶都有 所有權限

可以直接在 C:\Users\用戶名 目錄下找 .condarc 的文件,若不不存在新建一個

envs_dirs:- D:\anaconda3\envschannels:- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/- defaults
show_channel_urls: true
auto_activate_base: true
查看列表、創建、克隆、激活、刪除
conda info -e
# conda信息
conda info# 查看當前conda 環境列表
conda env list# 創建conda環境
conda create -n [anaconda_name] python=3.
#克隆環境
conda create --name [new_anaconda_name] --clone [new_anaconda_name]# 刪除環境
conda remove --name [anaconda_name] --all# 激活環境
conda activate [anaconda_name]

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

conda包管理
# 在指定環境中管理包
conda list -n [anaconda_name]
conda install --name [anaconda_name] package_name 
conda remove --name [anaconda_name] package_name
包安裝原則

conda有嚴格的檢查機制,它會保證你當前裝的package安裝好之后能work,但是,它只檢查用conda安裝過的package。pip裝的包不會檢查出來

安裝包,安裝方式盡量一致,不要混用,除非一些包用其中一種固定用的方式安不上。先conda,裝不上的包再pip

刪除包,誰安裝就由誰卸載,對于一些簡單的包也可以直接到 lib/site-packages 中進行手動刪除

設置默認anaconda

https://www.yingtwo.com/article/8435028.html

只修改prompt

  • 到 conda 安裝目錄的 Script 文件夾下,找一個名為 activate.bat 的文件
  • 將第24行 @CALL "%~dp0..\condabin\conda.bat" activate %* 中的 %*[anaconda_name] 替換

修改prompt 與 powershell pompt

  • 查看二者屬性窗口,發現其啟動目標都指向 D:\anaconda3 的默認 anaconda

    # prompt:
    %windir%\System32\cmd.exe "/K" D:\anaconda3\Scripts\activate.bat D:\anaconda3\envs\learn# powershell:
    %windir%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -NoExit -Command "& 'D:\anaconda3\shell\condabin\conda-hook.ps1' ; conda activate 'D:\anaconda3' "
    
  • D:\anaconda3 修改為 D:\anaconda3\envs\learn

pytorch安裝

官網

參考

自動安裝

最新版本

在這里插入圖片描述

  • 修改為

    conda install pytorch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 pytorch-cuda=12.1 -c pytorch -c nvidia# -c pytorch 會使用默認的pytorch源,下載速度慢
    

試過了解決方法, unsuccessful initial attempt using frozen solve 無解,換手動或pip安裝吧

手動安裝

確定pytorch版本

也可以在 Previous Pytorch Verion 中選擇CUDA相應的pytorch版本

# CUDA 11.8
conda install pytorch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 pytorch-cuda=11.8 -c pytorch -c nvidia
# CUDA 12.1
conda install pytorch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 pytorch-cuda=12.1 -c pytorch -c nvidia
# CPU Only
conda install pytorch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 cpuonly -c pytorch

官網的命令根據cuda以及pytorch的的版本有所不同,選擇對應的即可。

確定torchvision與torchaudio版本

根據選擇的pytorch版本,確定torchvision與torchaudio版本

https://gitcode.com/pytorch/vision/overview?utm_source=csdn_github_accelerator&isLogin=1

在這里插入圖片描述

國內鏡像下載

鏡像

在這里插入圖片描述

cuda版本12.1,python3.9,假設pytorch選用2.1.2

安裝

三個文件下載完成后,切換準備安裝torch的環境,切換到三個whl文件的目錄下,執行 pip install

pip安裝

pip install torch==2.1.2+cu121 torchvision==0.16.2+cu121 torchaudio==2.1.2+cu121 --extra-index-url https://download.pytorch.org/whl/cu121 -i https://pypi.tuna.tsinghua.edu.cn/simple
  • -i https://pypi.tuna.tsinghua.edu.cn/simple :切換清華源
  • +cu121 pip默認下載的是CPU版本,需要 指定下載GPU版本

測試

import torch# 檢查CUDA是否可用
print(torch.cuda.is_available())# 顯示當前CUDA版本
print(torch.version.cuda)

在這里插入圖片描述

實際情況,有時需要我們根據pytorch版本倒推CUDA版本,若所需的pytorch版本低于當前CUDA的最低支持版本,則需要重新安裝CUDA環境

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

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

相關文章

觀眾信息設置與統計(視頻高級分析與統計功能)

Web播放器(POLYV-html5-player)支持設置觀眾信息參數,設置后在播放器上報的觀看日志中會附帶觀眾信息,這樣用戶就可以通過管理后臺的統計頁面或服務端API來查看特定觀眾的視頻觀看情況了。 一、觀眾信息設置 播放器設置觀眾信息參…

《數據庫》 MySQL庫表操作

1. SQL語句基礎 1.2 SQL簡介 SQL:結構化查詢語言(Structured Query Language),在關系型數據庫上執行數據操作、數據檢索以及數據維護的標準語言。使用SQL語句,程序員和數據庫管理員可以完成如下的任務 改變數據庫的結構 更改系統的安全設置…

DSP的基礎平臺搭建

1、CCS6.0的安裝安裝步驟這里就不說了,只談論最可能遇到的問題:可以看到為需要關閉防火墻和掃描;在這里將其都關閉,然后可以斷掉網絡,關閉聯想管家,可能還是會出現防火墻提示,但是可以安裝&…

下一代防火墻-終端安全防護

實驗設備1、 山石網科(hillstone)系列下一代防火墻(實訓平臺v1.0中hillstone設備)2、 三層交換機一臺(實訓平臺v1.0中cisco vios l2設備)3、 二層交換機一臺(實訓平臺v1.0中cisco iol switch設備…

Scala實現網頁數據采集示例

Scala 可以輕松實現簡單的數據采集任務,結合 Akka HTTP(高效HTTP客戶端)和 Jsoup(HTML解析庫)是常見方案。Scala因為受眾比較少,而且隨著這兩年python的熱門語言,更讓Scala不為人知,…

【IO復用】五種IO模型

文章目錄五種IO模型Linux設計哲學BIONIOAIOSIOIO多路復用五種IO模型 Linux設計哲學 在linux系統中,實際上所有的I/O設備都被抽象為了文件這個概念,一切皆文件,磁盤、網絡數據、終端,甚至進程間通信工具管道pipe等都被當做文件對…

FeatherScan v4.0 – 適用于Linux的全自動內網信息收集工具

前言 在平時滲透打靶的時候,經常要自己手工輸入命令,做各種基本的信息收集,非常的繁瑣,所以自研了一款工具,這款工具沒有接入AI,因為不合適,接入了AI的話在一些不能上網的環境下進行信息收集&a…

如何精準篩選優質SEO服務資源?

核心要點: 中小企業選擇SEO服務常陷困惑——效果難量化、承諾不透明、策略模糊化。本文剖析核心痛點,拆解技術合規性、策略透明度、行業經驗匹配度等關鍵篩選維度,提供一套清晰的評估路徑,助您在復雜市場中找到真正專業的合作伙伴…

在教育領域中,如何通過用戶ID跑馬燈來對視頻進行加密?

文章目錄前言一、什么是用戶跑馬燈二、用代碼如何實現用戶ID跑馬燈的功能三、如何通過用戶ID跑馬燈來對視頻進行加密?總結前言 在教育領域,優質視頻課程易遭非法傳播。為強化版權保護與責任追溯,引入基于用戶ID的跑馬燈水印技術成為有效手段…

MCP協議:AI時代的“萬能插座”如何重構IT生態與未來

MCP協議:AI時代的“萬能插座”如何重構IT生態與未來 在人工智能技術爆炸式發展的浪潮中,一個名為Model Context Protocol(MCP) 的技術協議正以驚人的速度重塑IT行業的底層邏輯。2024年11月由Anthropic首次發布,MCP在短…

同步,異步復位問題

1.同步復位的基本原理是,復位信號僅在時鐘的有效邊沿影響或重置觸發器的狀態。復位的主要目標之一是使 ASIC 在仿真時進入已知狀態。由于復位樹的扇出較大,復位信號相對于時鐘周期可能成為 “晚到信號”。即使復位信號會通過復位緩沖樹進行緩沖&#xff…

數組和指針回顧,練習與解析

代碼見:登錄 - Gitee.com 1.數組和指針練習與解析 1.1數組名 1.sizeof(數組名),這里的數組名表示整個數組,計算的是整個數組的大小。 2.&數組名,這里的數組名表示整個數組,取出的是整個數組的地址。 3.除此之…

【牛客刷題】活動安排

文章目錄一、題目介紹二、解題思路2.1 核心問題2.2 貪心策略2.3 正確性證明三、算法分析3.1 為什么按結束時間排序?3.2 復雜度分析3.3 算法流程圖解3.3.1 流程圖說明3.3.2 關鍵步驟說明四、模擬演練五、完整代碼一、題目介紹 活動安排 題目描述 給定 nnn 個活動&am…

第1講:C語言常見概念

目錄 一、什么是C語言? 二、C語言的歷史與成就 三、編譯器選擇(VS2022) 1、編譯與鏈接 2、編譯器對比 3、VS2022的優缺點 四、VS項目與源文件、頭文件介紹 五、第一個C語言程序 六、main函數 七、printf和庫函數 八、關鍵字介紹 …

WinUI3入門18:從APP打開商店鏈接以及實現內購

初級代碼游戲的專欄介紹與文章目錄-CSDN博客 我的github:codetoys,所有代碼都將會位于ctfc庫中。已經放入庫中我會指出在庫中的位置。 這些代碼大部分以Linux為目標但部分代碼是純C的,可以在任何平臺上使用。 源碼指引:github源…

BI布局拖拽 (1) 深入react-gird-layout源碼

因為有個拖拉拽的需求,類似于quickBi那樣的效果。在網上調研了一下發現react-grid-layout實現效果類似,但其也有局限性,比如不支持嵌套,不支持在多個gridLyaout之間互相拖拽。 要求:基于react-grid-layout的思路&#…

CentOS環境搭建-快速升級G++版本

在CentOS環境中快速升級G編譯器版本,對于追求最新語言特性的開發者來說至關重要。由于CentOS默認的軟件倉庫可能不提供G的最新版本,我們通常需要借助第三方軟件源,如Developer Toolset或使用Spack等包管理器來完成這一任務。下面將詳細介紹兩…

分布式接口冪等性的演進和最佳實踐,含springBoot 實現(Java版本)

一、背景:為什么需要冪等性 在微服務、分布式架構下,網絡不可靠、請求重試機制(如前端超時重發、客戶端重發、網關重試、消息消費失敗重試等)會帶來重復請求,如果接口沒有冪等性,可能導致: 重復…

OGRE 3D----6. 背景圖片渲染實現詳解

1. 背景圖片渲染原理 1.1 渲染隊列機制 Ogre3D 使用渲染隊列(Render Queue)來控制對象的渲染順序。背景圖片需要在所有其他對象之前渲染,因此我們將其設置為 RENDER_QUEUE_BACKGROUND。 1.2 視圖變換控制 為了讓背景圖片始終保持在場景的最遠處,我們需要: 使用單位投影…

K線連續漲跌統計與分析工具

K線連續漲跌統計與分析工具 1. 概述 本工具是一個用于分析金融時間序列數據(特別是K線數據)的Python腳本,主要功能是統計連續n根同方向K線后,第n+1根K線的漲跌情況。該工具不僅提供統計分析功能,還支持圖形化標記以驗證結果,幫助交易者和量化分析師識別市場中的特定模式…