#工作記錄
在 NVIDIA 發布 CUDA Toolkit 12.9 與 cuDNN 9.9.0 后,開發者紛紛選擇升級以獲取新特性和性能提升。
CUDA Toolkit 12.9 與 cuDNN 9.9.0 發布,帶來全新特性與優化-CSDN博客
然而,升級完成并不意味著大功告成,確認升級后功能正常,且對 Windows 系統上原有的 conda 和 virtualenv 等虛擬環境無影響至關重要。
以下是詳細的驗證步驟和方法。
一、驗證 CUDA Toolkit 12.9 功能
1. 檢查 CUDA 編譯器
打開 Windows 命令提示符,輸入nvcc -V并回車。若安裝正確,命令行將返回 CUDA Toolkit 12.9 的版本信息,如 “Cuda compilation tools, release 12.9, V12.9.103”。
nvcc -V
C:\Users\love>nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Wed_Apr__9_19:29:17_Pacific_Daylight_Time_2025
Cuda compilation tools, release 12.9, V12.9.41
Build cuda_12.9.r12.9/compiler.35813241_0?
若未顯示對應信息或提示命令未找到,說明 CUDA 編譯器安裝存在問題,可能需要重新安裝或檢查系統環境變量配置。
2. 運行 CUDA 示例項目
CUDA Toolkit 安裝目錄(默認路徑為C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\extras\demo_suite )下包含可直接運行的示例程序。
以deviceQuery為例,可通過以下方式運行:
.\deviceQuery.exe
打開 CMD 或 PowerShell,使用cd命令導航到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\extras\demo_suite 目錄,然后運行.\deviceQuery.exe 。
若運行結果中出現類似以下信息:
Detected 1 CUDA Capable device(s)
Device 0: "NVIDIA GeForce RTX 3090"
CUDA Driver Version / Runtime Version 12.9 / 12.9
CUDA Capability Major/Minor version number: 8.6
Total amount of global memory: 24576 MBytes (25769279488 bytes)
...
Result = PASS
則表明 CUDA 能夠正確識別 GPU 設備,且基本的設備查詢功能正常,GPU 加速功能初步可用。
二、驗證 CUDA Toolkit 12.9 與 cuDNN 9.9.0 在虛擬環境中的功能
1. 檢查 conda 虛擬環境
打開命令提示符,輸入conda activate [虛擬環境名稱],將目標 conda 虛擬環境激活。
例如,若虛擬環境名為 “myenv”,則輸入conda activate myenv。
“100% 成功的 PyTorch CUDA GPU 支持” 安裝攻略-CSDN博客
在激活的 conda 虛擬環境中,運行以下驗證代碼:
使用 PyTorch 驗證
import torch # 導入 PyTorch 庫print("PyTorch 版本:", torch.__version__) # 打印 PyTorch 的版本號# 檢查 CUDA 是否可用,并設置設備("cuda:0" 或 "cpu")
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
print("設備:", device) # 打印當前使用的設備
print("CUDA 可用:", torch.cuda.is_available()) # 打印 CUDA 是否可用
print("cuDNN 已啟用:", torch.backends.cudnn.enabled) # 打印 cuDNN 是否已啟用# 打印 PyTorch 支持的 CUDA 和 cuDNN 版本
print("支持的 CUDA 版本:", torch.version.cuda)
print("cuDNN 版本:", torch.backends.cudnn.version())# 創建兩個隨機張量(默認在 CPU 上)
x = torch.rand(5, 3)
y = torch.rand(5, 3)# 將張量移動到指定設備(CPU 或 GPU)
x = x.to(device)
y = y.to(device)# 對張量進行逐元素相加
z = x + y# 打印結果
print("張量 z 的值:")
print(z) # 輸出張量 z 的內容
若輸出顯示torch.cuda.is_available()為True,且支持的 CUDA 版本、cuDNN 版本信息與預期相符,張量運算能在 GPU 設備上正常執行,說明 CUDA Toolkit 12.9 與 cuDNN 9.9.0 在該 conda 虛擬環境中功能正常。
使用 TensorFlow 驗證
import tensorflow as tfprint(tf.test.is_gpu_available())print(tf.config.list_physical_devices('GPU'))
若tf.test.is_gpu_available()返回True,且能正確列出系統中的 GPU 設備,則表示 TensorFlow 可借助 CUDA 和 cuDNN 在該虛擬環境中使用 GPU 加速功能。
2. 檢查 virtualenv 虛擬環境
進入 virtualenv 虛擬環境對應的 Scripts 目錄(例如虛擬環境安裝在F:\PythonProjects\SkyReels-V2,則進入F:\PythonProjects\SkyReels-V2),在命令提示符中運行.venv\Scripts\activate激活虛擬環境,然后輸入python進入python環境。
.venv\Scripts\activate
(.venv) PS F:\PythonProjects\SkyReels-V2>?
python
(.venv) PS F:\PythonProjects\SkyReels-V2> python
Python 3.10.16 | packaged by Anaconda, Inc. | (main, Dec 11 2024, 16:19:12) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>??
在激活的 virtualenv 虛擬環境中,同樣運行上述 PyTorch 和 TensorFlow 的驗證代碼。若運行結果與在 conda 虛擬環境下類似,即各框架能正確識別 CUDA 和 cuDNN,且可利用 GPU 進行運算,則可確認升級 CUDA Toolkit 12.9 和 cuDNN 9.9.0 對該 virtualenv 虛擬環境無不良影響。
根據在 conda 虛擬環境和 virtualenv 虛擬環境中的驗證情況(見圖片附件 1、附件 2):
- 在 conda 虛擬環境中,PyTorch 版本為
2.8.0.dev20256327+cu128
,檢測到設備為cuda:0
?,CUDA 可用
返回True
,cuDNN 已啟用
返回True
,支持的 CUDA 版本為12.8
?,cuDNN 版本為90791
?。最終張量運算結果正常,且運行在device='cuda:0'
?上。 - 在 virtualenv 虛擬環境中,PyTorch 版本為
2.5.1+cu124
?,檢測到設備為cuda:0
?,CUDA 可用
返回True
,cuDNN 已啟用
返回True
,支持的 CUDA 版本為12.4
?,cuDNN 版本為98108
?。最終張量運算結果正常,且運行在device='cuda:0'
?上。
若出現異常,如torch.cuda.is_available()
返回False
,可能是 CUDA、cuDNN 或 PyTorch 安裝存在問題,需進一步排查。
三、總結
關于兼容性和驗證時顯示的版本問題
在深度學習領域,CUDA、cuDNN 和 torch 之間具備向下兼容特性。這得益于它們的自動適配安裝機制,會依據當前環境以及已有庫狀況,安裝最合適版本,所以開發者無需因驗證版本號與安裝版本號不一致而憂心。
目前,torch 官方尚未發布支持 CUDA 12.9 的版本。當在 Windows 主系統完成 CUDA Toolkit 12.9 與 cuDNN 9.9.0 升級后,若未在 conda、virtualenv 等虛擬環境中另行安裝適配新版本的庫,驗證時會呈現虛擬環境中原先的版本信息。
比如,即便主系統已安裝 cuDNN 9.9.0,可虛擬環境若未變動安裝,驗證時仍可能顯示為 9070(即原安裝的 9.7 版本 )或其他原版本號。
關于驗證目的性的回歸說明
而進行這些驗證,主要是為確認在 Windows 主系統中完成 CUDA Toolkit 12.9 與 cuDNN 9.9.0 升級后,不會對系統內包括 conda、virtualenv 等虛擬環境中的 CUDA、cuDNN 及其他庫的正常使用造成影響,保證升級安裝基本不會干擾生產力環境。
通過以上對 CUDA Toolkit 12.9、cuDNN 9.9.0 功能的驗證,以及在 conda 和 virtualenv 虛擬環境中的測試,開發者能夠全面確認升級操作的有效性和穩定性,確保后續基于 GPU 加速的開發工作順利進行。
若在驗證過程中遇到問題,可參考 NVIDIA 官方文檔、相關開源社區或技術論壇尋求解決方案。