Windows下使用GPU加速的用於數值計算的標準配置方法

使用GPU加速可以提高計算機的效能,比如在3D遊戲中更流暢的執行、更快的影象處理、更快的資料分析等。但GPU加速的安裝配置上一些細節需要注意,否則可能會出現各種錯誤。本文的主要目的是配置一臺適合數值計算,機器學習,深度學習用可兼用於辦公的工作站或桌上型電腦,為了GPU順暢的跑起來。

一、首先認識GPU算力天梯圖,這裡以NVIDIA英偉達GPU GeForce RTX顯示卡舉例,這也是消費級顯示卡用的較多的序列,這張圖來源於NVDIA官方,需要認識Compute Capability算力的概念,一般程式包是對算力有明確要求的,比如TensorFlow GPU版本,最低要求的算力是3。5,當然也有其他的軟體包有更高的要求,一般用於數值計算,機器學習,推薦最低算力應該能達到7。5。

Windows下使用GPU加速的用於數值計算的標準配置方法

圖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 】 版本是有對應關係的,環環相扣,錯了就需要查詢對的版本,刪除再重灌。

Windows下使用GPU加速的用於數值計算的標準配置方法

圖2、CUDA與顯示卡驅動程式版本對應關係

CUDA在本機上會存在兩個版本,一個是顯示卡驅動自帶的,用於加速本機,另外一個是ToolKit開發包所帶,用於驅動你自己的資料計算。重點是後邊這個。

可以透過nvidia-smi命令檢視驅動的CUDA版本。

可以透過nvcc -V 命令檢視CUDA Runtime版本,即你真正用於開發的CUDA版本。

一般驅動API版本需要大於執行API版本,即nvidia-smi命令查出的版本號應該大於nvcc -V的版本號。

Windows下使用GPU加速的用於數值計算的標準配置方法

圖3、GPU CUDA CuDnn對應圖

看這張圖中,也就是說,如果想讓本機的GPU跑的愉快,一定要對照圖2、圖3的對應關係,並按照 顯示卡驅動 >> CUDA >> CuDNN >> Python >> TensorFlow的順序來。

裡舉例:

我本機安裝的驅動版本是527。56 ,這個版本是越高越好,向下相容。

nvidia-smi 顯示版本是 CUDA 12.0

Windows下使用GPU加速的用於數值計算的標準配置方法

圖4、CUDA驅動版本

Nvcc -V 顯示開發CUDA版本是 11.2

Windows下使用GPU加速的用於數值計算的標準配置方法

圖5、顯示本地CUDA開發版本

Python版本為3.9 TensorFlow-GPU版本為2.9.3 CuDNN 版本為8302

Windows下使用GPU加速的用於數值計算的標準配置方法

圖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。

Windows下使用GPU加速的用於數值計算的標準配置方法

圖7、使用Pytorch顯示Cuda 和CuDNN版本

正確的方法是,刪除三個torch相關的包torch, torchvision, torchaudio,重新用以下命令安裝。

pip install torch torchvision torchaudio ——index-url https://download。pytorch。org/whl/cu116

不要使用映象,請直接使用官方包。

至此,GPU完美配置,如有其他問題,可留言評論。