使用GPU加速可以提高計算機的效能,比如在3D遊戲中更流暢的執行、更快的影象處理、更快的資料分析等。但GPU加速的安裝配置上一些細節需要注意,否則可能會出現各種錯誤。本文的主要目的是配置一臺適合數值計算,機器學習,深度學習用可兼用於辦公的工作站或桌上型電腦,為了GPU順暢的跑起來。
一、首先認識GPU算力天梯圖,這裡以NVIDIA英偉達GPU GeForce RTX顯示卡舉例,這也是消費級顯示卡用的較多的序列,這張圖來源於NVDIA官方,需要認識Compute Capability算力的概念,一般程式包是對算力有明確要求的,比如TensorFlow GPU版本,最低要求的算力是3。5,當然也有其他的軟體包有更高的要求,一般用於數值計算,機器學習,推薦最低算力應該能達到7。5。
圖1、顯示卡算力圖
二、關於顯示卡驅動,CUDA,CUDNN等庫的認識。
顯示卡驅動:
顯示卡驅動是一種軟體,它可以控制顯示卡的功能和效能。它可以改善顯示卡的效能,並且可以幫助使用者調整顯示卡的設定,以便在不同的應用程式中獲得最佳效能。(定義來源於:chatGPT)
CUDA:
是一種由NVIDIA推出的通用平行計算架構,該架構使GPU能夠解決複雜的計算問題。它包含了CUDA指令集架構(ISA)以及GPU內部的平行計算引擎。開發人員可以使用C語言來為CUDA™架構編寫程式,所編寫出的程式可以在支援CUDA™的GPU上執行。
CUDNN:
NVIDIA cuDNN (CUDA Deep Neural Network) 是一個GPU加速的深度神經網路庫,強調效能、易用性和低記憶體開銷。它可以整合到更高級別的機器學習框架中,如Caffe。安裝cuDNN需要先安裝CUDA,然後將cuDNN三個資料夾的內容分別複製到cuda對應的資料夾裡面,最後為cuDNN新增環境變數。cuDNN有不同版本,如v2、v3、v4。
從定義可以看出,從層級上來講,顯示卡驅動層級最低,其次是CUDA,而後是CuDNN,如果進行數值計算,是三者都需要的。
三、相關GPU加速軟體包,PyTorch,TensorFlow等等
PyTorch:
PyTorch是一個用於機器學習的開源庫,使用Python的Torch庫開發。它由Facebook的AI研究實驗室開發,於2016年1月釋出。PyTorch提供了兩個高階功能:具有強大GPU加速的張量計算(如NumPy)和具有自動微分的深度神經網路
TensorFlow:
TensorFlow是一個開源軟體庫,TensorFlow是谷歌基於DistBelief進行研發的第二代人工智慧學習系統。從功能上來說於
PyTorch基本一致。
本文以TensorFlow舉例說明。
四,具體安裝配置。
在安裝的順序上,自然是首先安裝顯示卡驅動,而後安裝CUDA,然後是CuDNN, 之後再安裝Python相關軟體包,這個順序一般不會錯,錯了一般也按不上,但如果是先安裝的Python相關軟體包,可能會因為路徑問題,導致出現各類不能順暢運算的錯誤。
具體的安裝顯示卡驅動連線,可以到NVIDIA英偉達官方下載相應的軟體包,但版本上一定要符合下圖的對應關係。
這裡劃個重點:你使用的
【顯示卡驅動】--【CUDA】--【CuDnn】-【Python】-【TensorFlow 】 版本是有對應關係的,環環相扣,錯了就需要查詢對的版本,刪除再重灌。
圖2、CUDA與顯示卡驅動程式版本對應關係
CUDA在本機上會存在兩個版本,一個是顯示卡驅動自帶的,用於加速本機,另外一個是ToolKit開發包所帶,用於驅動你自己的資料計算。重點是後邊這個。
可以透過nvidia-smi命令檢視驅動的CUDA版本。
可以透過nvcc -V 命令檢視CUDA Runtime版本,即你真正用於開發的CUDA版本。
一般驅動API版本需要大於執行API版本,即nvidia-smi命令查出的版本號應該大於nvcc -V的版本號。
圖3、GPU CUDA CuDnn對應圖
看這張圖中,也就是說,如果想讓本機的GPU跑的愉快,一定要對照圖2、圖3的對應關係,並按照 顯示卡驅動 >> CUDA >> CuDNN >> Python >> TensorFlow的順序來。
裡舉例:
我本機安裝的驅動版本是527。56 ,這個版本是越高越好,向下相容。
nvidia-smi 顯示版本是 CUDA 12.0
圖4、CUDA驅動版本
Nvcc -V 顯示開發CUDA版本是 11.2
圖5、顯示本地CUDA開發版本
Python版本為3.9 TensorFlow-GPU版本為2.9.3 CuDNN 版本為8302
圖6、TensorFlow提示的cuDNN版本
到這一步,如果演算法都執行正常就算配置完成。
這裡再提示一下如果使用PyTorch,稍微有點區別。
可以使用
import torch
print(torch。__version__)
print(torch。version。cuda)
print(torch。backends。cudnn。version())
檢測GPU加速庫是否正常,如果正常就如下圖。Pytorch庫是獨立CUDA加速庫,也可以說又裝了一遍,他自己專用,如果這裡顯示的是+CPU,下面兩行是none,就說明版本不對,使用torch只能使用cpu算力,不能驅動GPU。
圖7、使用Pytorch顯示Cuda 和CuDNN版本
正確的方法是,刪除三個torch相關的包torch, torchvision, torchaudio,重新用以下命令安裝。
pip install torch torchvision torchaudio ——index-url https://download。pytorch。org/whl/cu116
不要使用映象,請直接使用官方包。
至此,GPU完美配置,如有其他問題,可留言評論。