NVIDIA-SMI系列命令详解(5)-选择性查询选项(2)

选择性查询选项(SELECTIVE QUERY OPTIONS)

允许调用者传递要查询的显式属性列表。支持的显示列表如下:

    --query-gpu=                GPU 相关信息.
                                调用 --help-query-gpu 可以查看更多信息.
    --query-supported-clocks=   支持的时钟列表.
                                调用 --help-query-supported-clocks 可以查看更多信息.
    --query-compute-apps=       当前活动的计算进程列表.
                                调用 --help-query-compute-apps 可以查看更多信息.
    --query-accounted-apps=     已记账的图形/计算进程列表.
                                调用 --help-query-accounted-apps 可以查看更多信息.
                                此查询不支持 vGPU 主机.
    --query-retired-pages=      已停用的 GPU 设备内存页面列表.
                                调用 --help-query-retired-pages 可以查看更多信息.
    --query-remapped-rows=      有关重新映射的行的信息.
                                调用 --help-query-remapped-rows 可以查看更多信息.
复制代码

--format= 强制选项

无论显式查询以上那个属性,都必须追加强制选项

--format=
       逗号分隔的格式选项列表:

       •      csv - 逗号分隔值(强制)

       •      noheader - 跳过带有列标题的第一行

       •      nounits - 不打印数值的单位
复制代码

--query-supported-clocks= 查询支持的时钟列表

关于 Supported Clocks 属性的部分

GPU 可以运行的内存和图形时钟可能的组合列表(不考虑硬件制动减少时钟)。 这些是唯一可以传递给 --applications-clocks 标志的时钟组合。

timestamp
复制代码

查询时的时间戳,格式为“YYYY/MM/DD HH:MM:SS.msec”。

gpu_name
复制代码

GPU 的正式产品名称。 这是一个字母数字字符串。 适用于所有产品。

gpu_bus_id
复制代码

PCI 总线 ID 为“domain:bus:device.function”,以十六进制表示。

gpu_serial
复制代码

此编号与实际印在每块板上的序列号相匹配。 它是一个全球唯一的不可变字母数字值。

gpu_uuid
复制代码

该值是 GPU 的全局唯一不可变字母数字标识符。 它不对应板上的任何物理标签。

memory
mem
复制代码

内存时钟

graphics
gr
复制代码

图形时钟

以上参数运行示例:

nvidia-smi -i 0 --format=csv --query-supported-clocks=timestamp,gpu_name,gpu_bus_id,gpu_serial,gpu_uuid,memory,graphics
复制代码

image

注意:

由于单个显卡输出的数据比较多,因此并命令加入了-i参数指定仅输出0号GPU卡的信息;

对于A100-SXM-80GB GPU显卡,支持的内存频率固定为1593MHz,支持的图形频率变化范围从210MHz~1410MHz,每个支持的频率之间相差15MHz。

--query-compute-apps= 查询当前活动的计算进程列表

关于 Active Compute Processes 属性的部分

在设备上具有计算上下文的进程列表。

timestamp
复制代码

查询时的时间戳,格式为“YYYY/MM/DD HH:MM:SS.msec”。

gpu_name
复制代码

GPU 的正式产品名称。 这是一个字母数字字符串。 适用于所有产品。

gpu_bus_id
复制代码

PCI 总线 ID 为“domain:bus:device.function”,以十六进制表示。

gpu_serial
复制代码

此编号与实际印在每块板上的序列号相匹配。 它是一个全球唯一的不可变字母数字值。

gpu_uuid
复制代码

该值是 GPU 的全局唯一不可变字母数字标识符。 它不对应板上的任何物理标签。

pid
复制代码

计算应用程序的进程 ID

process_name
name
复制代码

进程名称

used_gpu_memory
used_memory
复制代码

上下文在设备上使用的内存量。 在 WDDM 模式下运行时在 Windows 上不可用,因为 Windows KMD 管理所有内存而不是 NVIDIA 驱动程序。

以上参数运行示例:

nvidia-smi --format=csv --query-compute-apps=timestamp,gpu_name,gpu_bus_id,gpu_serial,gpu_uuid,pid,process_name,used_gpu_memory
复制代码

image

--query-accounted-apps= 查询已记账的图形/计算进程列表

关于 Accounted Graphics/Compute Processes 属性的部分

在设备上具有图形/计算上下文的已记账进程列表。

要查询的格式选项和一个或多个属性需要以逗号分隔值的形式提供给此开关。

例如:

nvidia-smi --query-accounted-apps=gpu_name,pid,time,gpu_util,mem_util,max_memory_usage --format=csv
复制代码

可以查询的属性列表有:

timestamp
复制代码

查询时的时间戳,格式为“YYYY/MM/DD HH:MM:SS.msec”。

gpu_name
复制代码

GPU 的正式产品名称。 这是一个字母数字字符串。 适用于所有产品。

gpu_bus_id
复制代码

PCI 总线 ID 为“domain:bus:device.function”,以十六进制表示。

gpu_serial
复制代码

此编号与实际印在每块板上的序列号相匹配。 它是一个全球唯一的不可变字母数字值。

gpu_uuid
复制代码

该值是 GPU 的全局唯一不可变字母数字标识符。 它不对应板上的任何物理标签。

vgpu_instance
复制代码

vGPU 实例

pid
复制代码

计算应用程序的进程 ID

gpu_utilization
gpu_util
复制代码

GPU 利用率

mem_utilization
mem_util
复制代码

上下文在设备上使用的 GPU 内存百分比。

max_memory_usage
复制代码

上下文在设备上使用的最大内存量。

time
复制代码

计算上下文处于活动状态的时间量(以毫秒为单位)。

以上参数运行示例:

nvidia-smi --format=csv --query-accounted-apps=timestamp,gpu_name,gpu_bus_id,gpu_serial,gpu_uuid,vgpu_instance,pid,gpu_utilization,mem_utilization,max_memory_usage,time
复制代码

image

注意:

由于本计算机上暂未开启记账模式,因此已记账的进程列表为空。

--query-retired-pages= 查询已停用的 GPU 设备内存页面列表

关于 Retired Pages 属性的部分

查询已停用GPU设备内存页面列表,支持的参数如下:

timestamp
复制代码

查询时的时间戳,格式为“YYYY/MM/DD HH:MM:SS.msec”。

gpu_name
复制代码

GPU 的正式产品名称。 这是一个字母数字字符串。 适用于所有产品。

gpu_bus_id
复制代码

PCI 总线 ID 为“domain:bus:device.function”,以十六进制表示。

gpu_serial
复制代码

此编号与实际印在每块板上的序列号相匹配。 它是一个全球唯一的不可变字母数字值。

gpu_uuid
复制代码

该值是 GPU 的全局唯一不可变字母数字标识符。 它不对应板上的任何物理标签。

retired_pa​​ges.address
复制代码

已停用页面的地址。启用或禁用 ECC 时地址可能不同。

retired_pa​​ges.timestamp
复制代码

页面停用的时间戳。

retired_pa​​ges.cause
复制代码

描述页面停用原因的原因。可以取以下两个值之一:

- 双位 ECC - 由于双位 ECC 错误而停用的 GPU 设备内存页数。

- 单比特 ECC - 由于多个单比特 ECC 错误而停用的 GPU 设备内存页数。

以上参数运行示例:

nvidia-smi --format=csv --query-retired-pages=timestamp,gpu_name,gpu_bus_id,gpu_serial,gpu_uuid,retired_pages.address,retired_pages.timestamp,retired_pages.cause
复制代码

image

--query-remapped-rows= 查询有关重新映射的行的信息.

关于 Remapped Rows 属性的部分

支持的参数如下:

timestamp
复制代码

查询时的时间戳,格式为“YYYY/MM/DD HH:MM:SS.msec”。

gpu_name
复制代码

GPU 的正式产品名称。 这是一个字母数字字符串。 适用于所有产品。

gpu_bus_id
复制代码

PCI 总线 ID 为“domain:bus:device.function”,以十六进制表示。

gpu_serial
复制代码

此编号与实际印在每块板上的序列号相匹配。 它是一个全球唯一的不可变字母数字值。

gpu_uuid
复制代码

该值是 GPU 的全局唯一不可变字母数字标识符。 它不对应板上的任何物理标签。

remapped_rows.correctable
复制代码

由于可纠正的 ECC 错误而重新映射的行数。

remapped_rows.uncorrectable
复制代码

由于不可纠正的 ECC 错误而重新映射的行数。

remapped_rows.pending
复制代码

是否有挂起的行重新映射。

remapped_rows.failure
复制代码

过去是否行重新映射失败。

以上参数运行示例:

nvidia-smi --format=csv --query-remapped-rows=timestamp,gpu_name,gpu_bus_id,gpu_serial,gpu_uuid,remapped_rows.correctable,remapped_rows.uncorrectable,remapped_rows.pending,remapped_rows.failure
复制代码

image

附加选项

-i 显示单个指定GPU的数据

-i, --id=ID
复制代码

显示单个指定 GPU 的数据。指定的 id 可能是驱动程序返回的自然枚举中 GPU 的从 0 开始的索引、GPU 的板序列号、GPU 的 UUID 或 GPU 的 PCI 总线 ID(如 domain:bus:device.function in hex)。建议需要一致性的用户使用 UUID 或 PCI 总线 ID,因为设备枚举顺序不能保证在重新启动之间保持一致,并且板序列号可能在同一板上的多个 GPU 之间共享。

-f 将查询输出重定向到指定文件以代替默认标准输出

   -f FILE, --filename=FILE
复制代码

将查询输出重定向到指定文件以代替默认标准输出。指定的文件将被覆盖。

-l 以指定的时间间隔连续上报查询数据(单位:秒)

   -l SEC, --loop=SEC
复制代码

以指定的时间间隔连续上报查询数据,而不是默认只有一次。应用程序将在查询之间休眠。请注意,如果未指定 -x 标志,则在 Linux 上,ECC 错误或 XID 错误事件将在睡眠期间打印出来。随时按 Ctrl+C 将中止循环,否则循环将无限期运行。如果没有为 -l 形式指定参数,则使用 5 秒的默认间隔。

-lms 以指定的时间间隔连续上报查询数据(单位:毫秒)

   -lms ms, --loop-ms=ms
复制代码

与 -l,--loop 相同,但以毫秒为单位。

猜你喜欢

转载自juejin.im/post/7119682778664271903