升級 CUDA Toolkit 12.9 與 cuDNN 9.9.0 后驗證指南:功能與虛擬環境檢測

#工作記錄

在 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 虛擬環境中功能正常。

附件1

使用 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 虛擬環境無不良影響。

附件2

根據在 conda 虛擬環境和 virtualenv 虛擬環境中的驗證情況(見圖片附件 1、附件 2):

  • 在 conda 虛擬環境中,PyTorch 版本為2.8.0.dev20256327+cu128,檢測到設備為cuda:0?,CUDA 可用返回TruecuDNN 已啟用返回True,支持的 CUDA 版本為12.8?,cuDNN 版本為90791?。最終張量運算結果正常,且運行在device='cuda:0'?上。
  • 在 virtualenv 虛擬環境中,PyTorch 版本為2.5.1+cu124?,檢測到設備為cuda:0?,CUDA 可用返回TruecuDNN 已啟用返回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 官方文檔、相關開源社區或技術論壇尋求解決方案。

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

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

相關文章

LLM論文筆記 28: Universal length generalization with Turing Programs

Arxiv日期:2024.10.4機構:Harvard University 關鍵詞 圖靈機 CoT 長度泛化 核心結論 Turing Programs 的提出 提出 Turing Programs,一種基于圖靈機計算步驟的通用 CoT 策略。通過將算法任務分解為逐步的“磁帶更新”(類似圖靈…

【全隊項目】智能學術海報生成系統PosterGenius--圖片布局生成模型LayoutPrompt(1)

🌈 個人主頁:十二月的貓-CSDN博客 🔥 系列專欄: 🏀大模型實戰訓練營_十二月的貓的博客-CSDN博客 💪🏻 十二月的寒冬阻擋不了春天的腳步,十二點的黑夜遮蔽不住黎明的曙光 目錄 1. 前…

位圖的實現和拓展

一:位圖的介紹 ①:需要位圖的場景 給40億個不重復的無符號整數,沒排過序。給一個無符號整數,如何快速判斷一個數是否在這40億個數中? 要判斷一個數是否在某一堆數中,我們可能會想到如下方法: A…

排序功法入門指南【江湖算法筆記】

話說江湖風云變幻,各路英雄好漢行走江湖,總得有個名號排行。若問“東邪西毒南帝北丐”誰強誰弱,總得排個座次不是?這排序之道,恰似武功秘籍,練好了能號令群雄,練岔了怕是要被笑掉大牙&#xff0…

【中間件】brpc_基礎_用戶態線程中斷

bthread之用戶態線程中斷 源碼 1 簡介 interrupt_pthread 核心功能是 通過信號機制中斷阻塞的 pthread 線程,以實現線程的協作式中斷。 2 核心功能與設計 2.1 信號選擇與注冊 信號選擇:使用 SIGURG 作為中斷信號。 原因:SIGURG 通常用于…

Linux 的網絡卡

#本機操作系統CentOS 10 #核心版本 rootbogon:/etc# uname -r 6.12.0-65.el10.x86_64 網卡能不能被捉到可以使用【dmesg|grep xx】來判斷,有沒有驅動則可以使用lsmod看看模塊有沒有加載核心!最后,以ifconfig xxx測試看看 觀察核心所捉到的網卡…

前端雙工通信的幾種方案詳細描述

前端實現雙工通信(全雙工或半雙工)的常見方案及詳細實現如下: 一、WebSocket(全雙工) 原理:基于 TCP 的持久化協議,客戶端與服務端建立雙向通信通道,支持實時雙向數據傳輸。 // 客…

KUKA機器人快速啟動設置

KUKA機器人在首次開機啟動時,有時在示教器上需要進行投入運行等相關的設置。如以下相關的信息需要處理: 1、機器人系統開機后,選擇T1運行模式;2、顯示提示信息:“RDC 存儲器和控制系統不一致什么被更換了”時&#xf…

游戲代碼C

以下將結合不同編程語言的特點及游戲開發中的實際應用,展示多種語言的游戲代碼示例(以簡單游戲為例,展示代碼結構和邏輯差異)。由于代碼篇幅較長,我將分語言進行說明并引用相關來源: 1. C# Unity&#xff…

LangChain Agent核心解析:Zero-Shot-ReAct策略實現與實戰指南

引言 在LangChain的Agent框架中,zero-shot-react-description 是一種預定義的Agent類型,它結合了Zero-Shot(零樣本學習) 和 ReAct(推理行動) 策略,主要用于根據工具的描述動態選擇和執行工具&a…

PyQt 或 PySide6 進行 GUI 開發文檔與教程

一、官網文檔 Qt 官方文檔:Porting to Qt 6 | Qt 6.9Qt 維基:???????Qt WikiQt for Python (PySide6) :???????Qt for Python - Qt WikiPySide6 快速上手指南:???????Getting Started - Qt for Python PyS…

2024年第十五屆藍橋杯省賽B組Python【 簡潔易懂題解】

2024年第十五屆藍橋杯省賽B組Python題解 一、整體情況說明 2024年第十五屆藍橋杯省賽B組Python組考試共包含8道題目,分為結果填空題和程序設計題兩類。 考試時間:4小時編程環境:Python 3.x,禁止使用第三方庫,僅可使…

Go語言--語法基礎4--基本數據類型--類型轉換

Go 是一種強類型的語言,所以如果在賦值的時候兩邊類型不一致會報錯。一個類型的值可以被轉換成另一種類型的值。由于 Go 語言不存在隱式類型轉換,因此所有的類型轉換都必須顯式的聲明。 強制類型轉換語法 使用 type (a) 這種形式來進行強制類型轉換&am…

nginx 代理時怎么更改 Remote Address 請求頭

今天工作中遇到用 localhost 訪問網站能訪問后臺 api,但是用本機IP地址后就拒絕訪問,我懷疑是后臺獲取 Remote Address 然后設置白名單了只能 localhost 訪問。 想用 nginx 更改 Remote Address server {listen 8058;server_name localhost;loca…

LeetCode刷題鏈表

文章目錄 鏈表總結 常用技巧兩數相加題解代碼 兩兩交換鏈表中的節點題解代碼 重排鏈表題解代碼 合并k個升序鏈表題解代碼 K個一組翻轉鏈表題解代碼 鏈表總結 常用技巧 畫圖 直觀 形象 便于理解引入虛擬頭節點,便于處理邊界情況,方便我們對鏈表進行…

ESP32S3 多固件燒錄方法、合并多個固件為單一固件方法

ESP32S3 多固件燒錄方法、合并多個固件為單一固件方法 文章目錄 ESP32S3 多固件燒錄方法、合并多個固件為單一固件方法前言1、前期準備工作2、多固件燒錄方法3、單固件燒錄方法總結 前言 使用正點原子的ESP32S3 BOX開發板獨立燒錄編譯生成的xxx.bin固件無法正常運行起來&#…

Webug4.0靶場通關筆記10- 第14關鏈接注入

目錄 第14關 鏈接注入 1.打開靶場 2.源碼分析 3.滲透實戰 (1)方法1:跳轉外部網頁 (2)方法2:獲取cookie 4.漏洞防御 本文通過《webug靶場第14關 鏈接注入》來進行滲透實戰。 第14關 鏈接注入 鏈接注…

SpringBoot的汽車商城后臺管理系統源碼開發實現

概述 汽車商城后臺管理系統專為汽車4S店和經銷商設計,提供全面的汽車管理系統解決方案。 主要內容 1. 核心功能模塊 系統提供以下主要功能: ??銷售管理??:記錄銷售信息,跟蹤交易進度??客戶管理??:維護客戶…

VBA代碼解決方案第二十四講:EXCEL中,如何刪除重復數據行

《VBA代碼解決方案》(版權10028096)這套教程是我最早推出的教程,目前已經是第三版修訂了。這套教程定位于入門后的提高,在學習這套教程過程中,側重點是要理解及掌握我的“積木編程”思想。要靈活運用教程中的實例像搭積木一樣把自己喜歡的代碼…

日本IT行業|salesforce開發語言占據的地位

在日本的IT行業中,Salesforce 開發語言處于一個較為專業但穩步增長的細分領域,并不是主流開發語言(如 Java、Python、PHP),但其在某些行業和場景中地位越來越重要。 本篇以下是詳細分析: Salesforce開發語言…