關於GPU顯卡TFLOPS指標介紹和CUDA Toolkit下載安裝教學


CUDA 是 NVIDIA 的 GPU 技術,讓開發者運用並管理 NVIDIA GPU 大規模平行運算能力的技術與程式設計模型。
但 CUDA 本身不等於平行處理,平行處理是一種概念;CUDA 則提供技術與程式設計模型,幫助開發者使用並管理 GPU 的運算資源。
CPU 能運算大量資料,但資源較少: CPU 可以處理數百萬甚至數十億次計算,只是執行資源相對有限,因此大量工作可能耗時較久。至於GPU 則相對擅長大量同類型計算,GPU 應用廣泛,但需要有效調度。涵蓋到遊戲、科學模擬、人工智慧與影像處理等工作都需要大量計算。

  • 一般市面上顯卡,會用TFLOPS(Tera Floating Point Operations Per Second)這個指標來衡量GPU浮點運算能力。代表每秒可以執行多少萬億(10^12)次浮點運算。
  • 常見的浮點數精度有半精度(FP16)、單精度又被稱作全精度(FP32、TF32)、雙精度(FP64),基本上分別代表16位浮點數、32位浮點數、64位浮點數。在計算機科學中,浮點數的儲存方式主要是由三個部分所組成,分別是符號位元(sign)、指數位元(exponent)和小數位元(fraction, 理解成小數點後的數),可以參照IEEE 754。
  • 以固定FP32指標來看
  • 像是2016年NVIDIA GeForce GTX 1050顯卡,只支援到1.862 TFLOPS
  • 到了2020年NVIDIA GeForce RTX 3070,短短四年時間就支援到20.31 TFLOPS。
  • 2022年10月的NVIDIA GeForce RTX 4090,則已經能支援高達82.58 TFLOPS。
  • 2025年1月的NVIDIA GeForce RTX 5090,又進步到了能支援104.8 TFLOPS。
從 NVIDIA GPU 的 FP32(32 位元單精度浮點運算)理論運算效能來看,2016 年 GeForce GTX 1050 僅有 1.862 TFLOPS,到了 2025 年 GeForce RTX 5090 已提升至 104.8 TFLOPS,短短 9 年間,理論運算能力成長約 56.3 倍,從中即可得知 GPU 硬體運算效能有顯著進步。


CUDA 提供多種運算管理功能,包括程式設計模型、核心函式(kernels)、記憶體系統、執行緒階層、warps 與 SIMT、同步、CUDA streams、非同步執行、統一記憶體及函式庫。
  • CUDA(Compute Unified Device Architecture) 是 NVIDIA 開發的一套平行運算平台與程式設計模型,底層是用 C/C++ 所實作,允許開發者撰寫程式碼,並將運算密集的任務交由 GPU(圖形處理器) 處理。
  • CUDA Toolkit是NVIDIA 提供的 GPU 平行運算開發工具包。
  • CUDA 提供一組 API,可以讓像 Python、C++ 等高階語言編寫的程式,透過 CUDA 將資料與任務分派到 GPU 執行。
  • 當 Python 呼叫如 TensorFlow、PyTorch 等深度學習框架中的 GPU 運算時,其實是透過這些框架內部的 CUDA binding,間接地呼叫 CUDA API 來執行。


當我們電腦尚未安裝 CUDA Toolkit,透過指令nvcc --version確認就會顯示以下輸出。

這邊還要注意,若搭配Tensorflow開發的話。
https://www.tensorflow.org/install/pip#windows-native
官方也特別公告出來,針對Windows原生平台,TensorFlow 2.10 是最後一個支援在 Windows 原生環境使用 GPU 的 TensorFlow 版本。從 TensorFlow 2.11 開始之後版本,需要改用 WSL2 執行 GPU 版本。


CUDA Toolkit Archive

可以在windows電腦環境搜尋NVDIA Control Panel

預設控制面板首頁就可詳細看到當前電腦對於GPU支援的基礎資訊
以目前電腦來看是GeForce RTX 3070,driver版本號462.62。

到系統資訊=>切置元素查看到底該選擇安裝的版本
這邊會顯示NVDIA CUDA的driver版本號資訊

比方在這邊下圖反黃部分就是「顯卡最高支援的 CUDA 版本」


而在【顯示】頁籤 
則會顯示更多驅動程式類型、版本等資訊

在Nvdia的官網也有特別GPU計算的顯卡相容對照表(Data Center、Workstation...)


顯卡驅動程式與 CUDA 的版本對應查找
https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#id8

Table 3 CUDA Toolkit and Minimum Required Driver Version for CUDA Minor Version Compatibility


Table 4 Corresponding Driver Versions (CUDA 12.9 and earlier)


當然也可透過cmd指令方式確認NVIDIA版本
可以下指令nvidia-smi

根據上述資訊顯示,我目前筆電的顯卡配置即NVIDIA
顯示卡驅動版本為:Driver Version: 462.62,CUDA 的版本為:CUDA Version 11.2。因此能安裝的Cuda最高版本是11.2,也可以安裝11.2以下版本。

當調查完後,即可根據顯示卡的驅動與CUDA版本對應關係去選擇要裝的CUDA。

CUDA Toolkit下載安裝連結



所以以下這些11.2以下版本,都可以下載安裝。

CUDA Toolkit 11.2.2 (March 2021)
https://developer.nvidia.com/cuda-11.2.2-download-archive?target_os=Windows&target_arch=x86_64


https://docs.nvidia.com/cuda/archive/11.2.2/cuda-installation-guide-microsoft-windows/index.html#system-requirements

https://docs.nvidia.com/cuda/archive/11.2.2/cuda-toolkit-release-notes/index.html

CUDA Toolkit 11.2.1 (February 2021)

https://docs.nvidia.com/cuda/archive/11.2.1/cuda-installation-guide-microsoft-windows/index.html#system-requirements

https://docs.nvidia.com/cuda/archive/11.2.1/cuda-toolkit-release-notes/index.html



CUDA Toolkit 11.2 Downloads(December 2020)

CUDA Toolkit 11.1.1 (October 2020)

CUDA Toolkit 11.1.0 (September 2020)


如果是不能安裝的版本,比方剛好分水嶺來到11.3
CUDA Toolkit 11.3.0 (April 2021)
https://developer.nvidia.com/cuda-11.3.0-download-archive?target_os=Windows

https://docs.nvidia.com/cuda/archive/11.3.0/cuda-toolkit-release-notes/index.html
這邊會顯示Toolkit Driver Version,也就是該 Toolkit 發行時搭配的驅動版本。
Minimum Required Driver Version,代表CUDA 次版本相容模式下的最低驅動需求。
Windows x86_64 Driver Version,代表Windows 作業系統驅動版本。

以目前的 RTX 3070 Laptop GPU、NVIDIA Driver 462.62,建議最高上限就安裝到 CUDA Toolkit 11.2.2,不需要使用 CUDA 11.3.0 的次版本相容機制,也沒有必要冒額外的相容性風險。

而在Tensorflow官方說明文件,可觀測到適配性較好的組合
是 Python 3.7–3.10、CUDA 11.2、cuDNN 8.1。
www.tensorflow.org/install/source_windows


這邊我選擇下載安裝11.2.2版本CUDA
CUDA Toolkit 11.2 Update 2 Downloads
https://developer.nvidia.com/cuda-11.2.2-download-archive?target_os=Windows&target_arch=x86_64&target_version=10


選擇exe連結




Ref:
超详细 CUDA 安装与卸载教程(图文教程)
在win11安裝CUDA教學
一文講清楚CUDA
淺談DeepLearning的浮點數精度FP32/FP16/TF32/BF16........(以LLM為例)

留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

外貿Payment Term 付款條件(方式)常見的英文縮寫與定義

Architecture(架構) 和 Framework(框架) 有何不同?_軟體設計前的事前規劃的藍圖概念