最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用Python進(jìn)行全面的GPU環(huán)境檢測(cè)與分析

 更新時(shí)間:2025年01月09日 09:20:31   作者:老大白菜  
這篇文章主要為大家詳細(xì)介紹了如何使用Python編寫(xiě)一個(gè)強(qiáng)大的 GPU 診斷工具,它能夠全面收集和分析系統(tǒng)中的 GPU 相關(guān)信息,感興趣的可以了解下

簡(jiǎn)介

本文介紹了一個(gè)強(qiáng)大的 GPU 診斷工具,它能夠全面收集和分析系統(tǒng)中的 GPU 相關(guān)信息,包括硬件規(guī)格、驅(qū)動(dòng)狀態(tài)、顯存使用情況以及 USB 控制器信息。這個(gè)工具特別適用于深度學(xué)習(xí)開(kāi)發(fā)環(huán)境的配置檢查和問(wèn)題診斷。

功能特點(diǎn)

1.系統(tǒng)環(huán)境檢測(cè)

  • Python 運(yùn)行環(huán)境版本
  • PyTorch 版本信息
  • CUDA 和 cuDNN 版本檢查

2.CUDA 環(huán)境變量檢查

  • CUDA_HOME
  • CUDA_PATH
  • CUDA_VISIBLE_DEVICES

3.GPU 硬件信息

  • 設(shè)備數(shù)量和型號(hào)
  • 計(jì)算能力
  • 顯存容量
  • 多處理器數(shù)量
  • 最大線程數(shù)

4.顯存使用狀態(tài)

  • 已分配顯存
  • 已預(yù)留顯存
  • 可用顯存

5.USB 和雷電接口支持

  • NVIDIA USB 控制器檢測(cè)
  • Type-C 接口支持檢查
  • 雷電接口支持檢查

實(shí)現(xiàn)細(xì)節(jié)

1. 環(huán)境信息收集

工具使用 Python 的系統(tǒng)庫(kù)和 PyTorch 庫(kù)來(lái)收集基本的環(huán)境信息。通過(guò)訪問(wèn)系統(tǒng)環(huán)境變量和 PyTorch 的內(nèi)置函數(shù),可以獲取 CUDA 相關(guān)的配置信息。

2. GPU 信息獲取

使用 PyTorch 的 CUDA API 獲取詳細(xì)的 GPU 信息,包括:

  • torch.cuda.is_available() 檢查 GPU 可用性
  • torch.cuda.device_count() 獲取 GPU 數(shù)量
  • torch.cuda.get_device_properties() 獲取 GPU 屬性

3. 顯存監(jiān)控

通過(guò) PyTorch 的內(nèi)存管理 API 實(shí)時(shí)監(jiān)控顯存使用情況:

  • torch.cuda.memory_allocated()
  • torch.cuda.memory_reserved()

4. 硬件接口檢測(cè)

使用 Windows Management Instrumentation Command-line (WMIC) 工具檢測(cè)系統(tǒng)的 USB 控制器和雷電接口支持情況。

使用方法

確保系統(tǒng)已安裝 Python 和 PyTorch

運(yùn)行腳本即可獲取完整的診斷報(bào)告:

python gpu_info.py

完整代碼

import sys
import os
import subprocess
import torch
from datetime import datetime

def get_gpu_info():
    print("=" * 50)
    print("GPU 診斷報(bào)告")
    print("=" * 50)
    print(f"診斷時(shí)間: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n")

    # 系統(tǒng)信息
    print("系統(tǒng)信息:")
    print(f"Python 版本: {sys.version}")
    print(f"PyTorch 版本: {torch.__version__}")
    print(f"CUDA 版本 (PyTorch): {torch.version.cuda}")
    print(f"cuDNN 版本: {torch.backends.cudnn.version()}\n")

    # CUDA 環(huán)境檢查
    print("CUDA 環(huán)境變量:")
    cuda_vars = {
        'CUDA_HOME': os.environ.get('CUDA_HOME', '未設(shè)置'),
        'CUDA_PATH': os.environ.get('CUDA_PATH', '未設(shè)置'),
        'CUDA_VISIBLE_DEVICES': os.environ.get('CUDA_VISIBLE_DEVICES', '未設(shè)置')
    }
    for var, value in cuda_vars.items():
        print(f"{var}: {value}")
    print()

    # NVIDIA-SMI 輸出
    print("NVIDIA-SMI 信息:")
    try:
        encodings = ['gbk', 'utf-8', 'iso-8859-1']
        nvidia_smi = None
        for encoding in encodings:
            try:
                nvidia_smi = subprocess.check_output(["nvidia-smi"]).decode(encoding)
                break
            except UnicodeDecodeError:
                continue
        
        if nvidia_smi:
            print(nvidia_smi)
        else:
            print("無(wú)法解碼 nvidia-smi 輸出")
    except Exception as e:
        print(f"執(zhí)行 nvidia-smi 失敗: {e}\n")

    # PyTorch GPU 信息
    print("\nPyTorch GPU 詳細(xì)信息:")
    if torch.cuda.is_available():
        print(f"檢測(cè)到 {torch.cuda.device_count()} 個(gè) GPU 設(shè)備")
        
        for i in range(torch.cuda.device_count()):
            props = torch.cuda.get_device_properties(i)
            print(f"\nGPU {i}: {props.name}")
            print(f"├─ 計(jì)算能力: {props.major}.{props.minor}")
            print(f"├─ 總顯存: {props.total_memory / (1024**2):.1f} MB")
            print(f"├─ 多處理器數(shù)量: {props.multi_processor_count}")
            print(f"├─ 最大線程數(shù)/塊: {props.max_threads_per_multi_processor}")
            
            # 顯存使用情況
            try:
                memory_allocated = torch.cuda.memory_allocated(i) / (1024**2)
                memory_reserved = torch.cuda.memory_reserved(i) / (1024**2)
                memory_free = (props.total_memory / (1024**2)) - memory_allocated
                
                print(f"├─ 已分配顯存: {memory_allocated:.1f} MB")
                print(f"├─ 已預(yù)留顯存: {memory_reserved:.1f} MB")
                print(f"└─ 可用顯存: {memory_free:.1f} MB")
            except Exception as e:
                print(f"└─ 無(wú)法獲取顯存使用情況: {e}")
    else:
        print("未檢測(cè)到可用的 GPU 設(shè)備")
        print("\n可能的原因:")
        print("1. CUDA 驅(qū)動(dòng)未正確安裝")
        print("2. PyTorch 未編譯 CUDA 支持")
        print("3. GPU 被其他進(jìn)程占用")
        print("4. 系統(tǒng)未正確識(shí)別 GPU")

def get_usb_controller_info():
    print("\nUSB 控制器信息:")
    try:
        result = subprocess.check_output(["wmic", "path", "Win32_USBController", "get", "name,manufacturer"], 
                                      encoding='gbk')
        controllers = result.strip().split('\n')[1:]  # Skip header
        nvidia_controllers = []
        
        for controller in controllers:
            if controller.strip():
                if "NVIDIA" in controller:
                    nvidia_controllers.append(controller.strip())
                    
        if nvidia_controllers:
            print("\nNVIDIA USB 控制器:")
            for controller in nvidia_controllers:
                print(f"- {controller}")
                if "Type-C" in controller:
                    print("  * 支持 USB Type-C")
                    # Check for Thunderbolt support
                    try:
                        tb_check = subprocess.check_output(
                            ["wmic", "path", "Win32_PnPEntity", "where", 
                             "caption like '%Thunderbolt%'", "get", "caption"], 
                            encoding='gbk'
                        )
                        if len(tb_check.strip().split('\n')) > 1:  # Has content beyond header
                            print("  * 支持雷電接口")
                    except:
                        pass
        else:
            print("未找到 NVIDIA USB 控制器")
    except Exception as e:
        print(f"獲取 USB 控制器信息失敗: {e}")

if __name__ == "__main__":
    get_gpu_info()
    get_usb_controller_info()

注意事項(xiàng)

確保系統(tǒng)已正確安裝 NVIDIA 驅(qū)動(dòng)

PyTorch 需要安裝 CUDA 版本

在 Windows 系統(tǒng)中,需要管理員權(quán)限來(lái)獲取某些硬件信息

故障排除

如果工具報(bào)告未檢測(cè)到 GPU,請(qǐng)檢查:

NVIDIA 驅(qū)動(dòng)是否正確安裝

CUDA 工具包是否與 PyTorch 版本匹配

環(huán)境變量是否正確配置

GPU 是否被其他進(jìn)程獨(dú)占

以上就是利用Python進(jìn)行全面的GPU環(huán)境檢測(cè)與分析的詳細(xì)內(nèi)容,更多關(guān)于Python GPU環(huán)境檢測(cè)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python里隱藏的“禪”

    Python里隱藏的“禪”

    這篇文章主要介紹了IT柏拉圖翻譯的python的lib目錄下this.py文件中的一首詩(shī),蘊(yùn)含了Python程序設(shè)計(jì)中很多哲理性的規(guī)律,需要的朋友可以參考下
    2014-06-06
  • 解決Vscode中jupyter出現(xiàn)kernel dead問(wèn)題

    解決Vscode中jupyter出現(xiàn)kernel dead問(wèn)題

    遇到VSCode中Jupyter Kernel Dead時(shí),可通過(guò)Anaconda Prompt安裝ipykernel解決,首先使用jupyter kernelspec list命令查看內(nèi)核,若發(fā)現(xiàn)缺少ipykernel,激活相應(yīng)虛擬環(huán)境,使用conda install ipykernel命令安裝,操作后,VSCode中Jupyter應(yīng)能正常運(yùn)行
    2024-09-09
  • python常用模塊(math itertools functools sys shutil)使用講解

    python常用模塊(math itertools functools sys 

    這篇文章主要介紹了python常用模塊之math itertools functools sys shutil的使用示例講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • 在Python中操作時(shí)間之tzset()方法的使用教程

    在Python中操作時(shí)間之tzset()方法的使用教程

    這篇文章主要介紹了在Python中操作時(shí)間之tzset()方法的使用教程,是Python學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • Python使用三種方法實(shí)現(xiàn)PCA算法

    Python使用三種方法實(shí)現(xiàn)PCA算法

    這篇文章主要介紹了Python使用三種方法實(shí)現(xiàn)PCA算法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • python實(shí)現(xiàn)石頭剪刀布小游戲

    python實(shí)現(xiàn)石頭剪刀布小游戲

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)石頭剪刀布小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • 深度解鎖Python中類與元類的核心機(jī)制與實(shí)戰(zhàn)應(yīng)用

    深度解鎖Python中類與元類的核心機(jī)制與實(shí)戰(zhàn)應(yīng)用

    本文將帶你撥開(kāi)迷霧,從動(dòng)態(tài)創(chuàng)建類入門(mén),吃透type的雙重身份,拆解元類的底層邏輯與實(shí)例化流程,最后落地實(shí)戰(zhàn)應(yīng)用,徹底掌握Python面向?qū)ο蟮摹傅讓用艽a」
    2026-03-03
  • 利用Python程序讀取Excel創(chuàng)建折線圖

    利用Python程序讀取Excel創(chuàng)建折線圖

    這篇文章主要介紹了利用Python程序讀取Excel創(chuàng)建折線圖,文章通過(guò)圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • 在Python中實(shí)現(xiàn)字典反轉(zhuǎn)案例

    在Python中實(shí)現(xiàn)字典反轉(zhuǎn)案例

    這篇文章主要介紹了在Python中實(shí)現(xiàn)字典反轉(zhuǎn)案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • 使用python快速實(shí)現(xiàn)不同機(jī)器間文件夾共享方式

    使用python快速實(shí)現(xiàn)不同機(jī)器間文件夾共享方式

    今天小編就為大家分享一篇使用python快速實(shí)現(xiàn)不同機(jī)器間文件夾共享方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12

最新評(píng)論

和静县| 大田县| 武平县| 灵台县| 太原市| 南澳县| 灌云县| 嘉峪关市| 建昌县| 富阳市| 太原市| 拉萨市| 阿瓦提县| 莎车县| 象山县| 墨江| 南宁市| 杭州市| 余干县| 天水市| 六安市| 长沙市| 来凤县| 什邡市| 道孚县| 山阳县| 乐亭县| 绥芬河市| 苍南县| 临泉县| 化隆| 剑川县| 丰城市| 靖江市| 泽普县| 兴业县| 清水河县| 武威市| 灵丘县| 陆河县| 兴业县|