nvidia-smi入门

介绍

nvidia-smi是一个用于办理和监控NVIDIA GPU(图形处理器)的指令行实用程序。它供给了一个简单而强大的方式来检查GPU的运用状况、温度、内存占用等信息,以及进行一些根本的办理操作。 本篇文章将介绍怎么运用nvidia-smi以及常见的用法和参数选项。

装置

nvidia-smi一般与NVIDIA显卡驱动一起装置。假如您现已装置了适宜的驱动程序,可以在指令行中直接运转nvidia-smi。

plaintextCopy codenvidia-smi

假如nvidia-smi不可用,则需求确保已正确装置NVIDIA显卡驱动。您可以访问​​NVIDIA官方网站​​下载和装置最新的显卡驱动程序。

根本用法

运转nvidia-smi指令时,将显现当时体系上一切可用的NVIDIA GPU的相关信息。每个GPU的索引、温度、运用率等信息都会被列出。 运转以下指令以检查体系上的GPU信息:

bashCopy codenvidia-smi

您将会看到类似以下的输出:

plaintextCopy code+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.39       Driver Version: 460.39       CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC || Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
||                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla T4            Off  | 00000000:00:1E.0 Off |                    0 |
| N/A   41C    P8     8W /  70W |      0MiB / 15109MiB |      0%      Default |
||                      |                  N/A |
+-------------------------------+----------------------+----------------------+

此外,nvidia-smi还支撑许多其他指令行选项,以获取更详细的关于GPU的信息以及进行一些办理操作。

常见选项

以下是nvidia-smi指令中常见的选项:

  • ​--list-gpus​​:仅列出GPU的索引、名称和总内存大小。
  • ​--query-gpu=QUERY​​:运用查询句子来获取更详细的GPU信息。例如,运用​​--query-gpu=temperature.gpu,fan.speed,memory.total,memory.used​​可以获取GPU的温度、电扇速度以及内存状况。
  • ​--format=FORMAT​​:指定输出格局,包括csv、json、xml等。
  • ​--display=DISPLAY​​:指定将信息显现在哪个GPU上。
  • ​--gpu-reset​​:重置指定的GPU。
  • ​--help​​:显现帮助信息。

示例

以下是一些示例用法:

  1. 列出一切GPU的索引和名称:

    bashCopy codenvidia-smi –list-gpus

  2. 获取GPU的温度和内存运用状况:

    bashCopy codenvidia-smi –query-gpu=temperature.gpu,memory.used –format=csv

  3. 显现指定索引的GPU信息:

    bashCopy codenvidia-smi –display=1

  4. 重置指定索引的GPU:

    bashCopy codenvidia-smi –gpu-reset=2

我们可以依据实践需求挑选适宜的选项和参数。

定论

nvidia-smi是一个免费的指令行实用程序,用于办理和监控NVIDIA GPU。它供给了丰厚的功用和选项,让用户可以方便地检查GPU的状况、功用和内存运用状况。经过nvidia-smi,用户可以更好地了解和办理他们的GPU资源。 希望本篇文章对您了解和运用nvidia-smi有所帮助。假如您对nvidia-smi还有其他问题,请参阅官方文档或其他资源以获取更多信息。

示例代码:运用nvidia-smi监控GPU温度并发送警报

在一些GPU密集型的运用场景中,对GPU的温度进行及时监控是非常重要的。下面是一个示例代码,运用nvidia-smi获取GPU的温度,并在温度超越阈值时发送警报。

pythonCopy codeimport subprocess
import smtplib
from email.mime.text import MIMEText
def get_gpu_temperature():
    result = subprocess.run(['nvidia-smi', '--query-gpu=temperature.gpu', '--format=csv,noheader'], capture_output=True, text=True)
    temperatures = result.stdout.strip().split('n')
    return [int(temp) for temp in temperatures]
def send_email_alert(message):
    sender_email = 'your_email@example.com'
    receiver_email = 'recipient_email@example.com'
    password = 'your_email_password'
    msg = MIMEText(message)
    msg['Subject'] = 'GPU Temperature Alert'
    msg['From'] = sender_email
    msg['To'] = receiver_email
    with smtplib.SMTP_SSL('smtp.example.com', 465) as smtp:
        smtp.login(sender_email, password)
        smtp.send_message(msg)
# 设置温度阈值
temperature_threshold = 80
# 获取GPU温度
gpu_temperatures = get_gpu_temperature()
# 检查是否有GPU温度超越阈值,假如有则发送警报邮件
for i, temp in enumerate(gpu_temperatures):
    if temp > temperature_threshold:
        message = f'GPU {i} temperature is {temp}C, exceeding the threshold of {temperature_threshold}C!'
        send_email_alert(message)

请留意,在运转上述示例代码之前,请确保您的体系已正确装置并配置了nvidia-smi指令行东西,而且您已正确配置了发送邮件的SMTP服务器信息。 上述示例代码经过调用​​nvidia-smi​​指令获取GPU温度信息,并运用​​subprocess​​模块捕获指令执行的输出。然后,它将获取的温度与预先设置的阈值进行比较,假如有任何GPU的温度超越阈值,则会发送一封警报邮件。 您可以依据实践需求进行修正和扩展,例如添加定时检查、记载温度历史数据等功用。

留意:该示例代码仅仅供给了一个根本的结构,实践运用中需求依据具体状况进行适当修正和调整。同时,假如您要捕捉异常并在GPU温度异常时发送警报邮件,还需设置适当的错误处理和循环机制,以保证代码的健壮性和稳定性。别的,在发送邮件时,请合法运用SMTP服务器,并遵守相关的安全和隐私方针。

nvidia-smi的缺陷

  1. 依赖于NVIDIA驱动程序:nvidia-smi是NVIDIA供给的指令行东西,它依赖于NVIDIA显卡驱动程序的装置和正常运转。假如驱动程序没有正确装置或出现故障,nvidia-smi或许无法正常工作。
  2. 仅适用于NVIDIA显卡:nvidia-smi只能用于监控和办理NVIDIA显卡,不适用于其他品牌的显卡。这约束了它在一些混合GPU环境中的运用。
  3. 指令行接口:nvidia-smi是经过指令行接口来进行交互的,关于不熟悉指令行操作的用户来说运用起来或许不行直观和友爱。
  4. 不支撑实时监控:nvidia-smi是一个静态指令,它供给一次性的GPU信息查询。假如需求实时监控GPU温度等参数,需求运用其他东西或编写自定义脚本。

类似的东西

  1. GPU-Z:GPU-Z是一款用于监控和显现显卡信息的东西,支撑多种显卡品牌,包括NVIDIA、AMD等。与nvidia-smi相比,GPU-Z供给了更友爱的图形界面,可以动态显现GPU温度、功率、负载等参数,并具有一些额外的功用,如显卡型号辨认、BIOS信息检查等。
  2. MSI Afterburner:MSI Afterburner是一款显卡超频东西,可以监控和调整NVIDIA和AMD显卡的功用参数。它供给了实时的GPU参数监控,如温度、频率、负载等,并可以经过图表和日志记载来展示显卡的功用改变。除了监控功用,它还支撑显卡调频、电扇操控、视频截取等功用。
  3. Open Hardware Monitor:Open Hardware Monitor是一款开源的硬件监控东西,除了支撑CPU和内存等硬件信息的监控外,还可以监控GPU的温度、负载和频率等参数。它供给了图形界面和API接口,方便用户实时检查硬件状况,并可以生成陈述和日志记载。 以上列举的东西都可以作为nvidia-smi的替代计划,依据实践需求挑选合适的东西来监控和办理GPU。这些东西供给了更丰厚的功用和更友爱的界面,可以满意不同用户的需求。