Как получить название продукта NVIDIA GPU с помощью Python: несколько методов, объясненных примерами кода

Чтобы получить название продукта NVIDIA GPU с помощью Python, вы можете использовать несколько методов. Я объясню три разных подхода на примерах кода:

Метод 1: использование утилиты командной строки nvidia-smi.
Этот метод основан на запуске утилиты командной строки nvidia-smiи анализе ее вывода с помощью Модуль подпроцесса Python. Вот пример:

import subprocess
def get_gpu_product_name():
    result = subprocess.run(['nvidia-smi', '--query-gpu=name', '--format=csv,noheader'], capture_output=True)
    output = result.stdout.decode().strip()
    return output
product_name = get_gpu_product_name()
print("Product Name:", product_name)

Метод 2: использование библиотеки pynvml.
Библиотека pynvmlпредоставляет интерфейс Python для NVIDIA NVML (библиотека управления NVIDIA). Вот пример того, как его использовать:

import pynvml
def get_gpu_product_name():
    pynvml.nvmlInit()
    device_count = pynvml.nvmlDeviceGetCount()
    if device_count > 0:
        handle = pynvml.nvmlDeviceGetHandleByIndex(0)
        info = pynvml.nvmlDeviceGetMemoryInfo(handle)
        product_name = pynvml.nvmlDeviceGetName(handle).decode()
        pynvml.nvmlShutdown()
        return product_name
    else:
        return None
product_name = get_gpu_product_name()
print("Product Name:", product_name)

Метод 3. Использование библиотеки pycuda.
Библиотека pycudaпредоставляет привязки Python для CUDA, что позволяет получить доступ к графическим процессорам NVIDIA. Вот пример того, как его использовать:

import pycuda.driver as cuda
def get_gpu_product_name():
    cuda.init()
    device_count = cuda.Device.count()
    if device_count > 0:
        device = cuda.Device(0)
        product_name = device.name()
        return product_name
    else:
        return None
product_name = get_gpu_product_name()
print("Product Name:", product_name)

Обратите внимание, что вам может потребоваться установить необходимые библиотеки (pynvml, pycuda) с помощью pip перед запуском кода.