tuoheng_algN/test/gpu/gputest1.py

54 lines
3.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import GPUtil
import json
# 网址https://github.com/anderskm/gputil
GPUtil.showUtilization()
#返回可用 GPU 的列表 ID。
# order- 确定返回可用 GPU 设备 ID 的顺序。order应指定为以下字符串之一
# 'first'- 按升序排列可用的 GPU 设备 ID默认
# 'last'- 按 id 降序排列可用的 GPU 设备 id
# 'random'- 随机订购可用的 GPU 设备 ID
# 'load'- 按负载递增排序可用的 GPU 设备 ID
# 'memory'- 通过升序内存使用来排序可用的 GPU 设备 ID
# limit- 将返回的 GPU 设备 ID 数量限制为指定数量。必须是正整数。(默认 = 1
# maxLoad- 被认为可用的 GPU 的最大当前相对负载。负载大于 的 GPUmaxLoad不会返回。默认 = 0.5
# maxMemory- 被视为可用的 GPU 的最大当前相对内存使用量。maxMemory不返回当前内存使用量大于的 GPU 。(默认 = 0.5
# includeNan- 真/假标志,指示是否包括负载或内存使用为 NaN 的 GPU指示无法检索使用情况默认 = 假)
# excludeID- ID 列表,应从可用 GPU 列表中排除。见GPU类描述。默认 = []
# excludeUUIDexcludeID-除了它使用 UUID 之外,其他相同。(默认 = []
# 输出
# deviceIDs - 所有可用 GPU 设备 ID 的列表。如果当前负载和内存使用量分别小于maxLoad和maxMemory则认为 GPU 可用。该列表是根据 排序的order。返回的设备 ID 的最大数量由 限制limit。
deviceIDs = GPUtil.getAvailable(order = 'memory', limit = 1, maxLoad = 0.8, maxMemory = 0.8, includeNan=False, excludeID=[], excludeUUID=[])
print(deviceIDs)
# 返回第一个可用的 GPU。可用性是根据当前的内存使用和负载确定的排序由指定的顺序确定。如果找不到可用的 GPU则会引发错误。使用默认值时与getAvailable(order = 'first', limit = 1, maxLoad = 0.5, maxMemory = 0.5)
# 输入
# order- 见描述GPUtil.getAvailable(...)
# maxLoad- 被认为可用的 GPU 的最大当前相对负载。负载大于 的 GPUmaxLoad不会返回。默认 = 0.5
# maxMemory- 被视为可用的 GPU 的最大当前相对内存使用量。maxMemory不返回当前内存使用量大于的 GPU 。(默认 = 0.5
# attempts- 在放弃寻找可用 GPU 之前,该函数应进行的尝试次数。(默认 = 1
# interval- 每次尝试查找可用 GPU 的时间间隔(以秒为单位)。(默认 = 900 --> 15 分钟)
# verbose- 如果True是则在每次尝试之前打印尝试次数如果找到可用的则打印 GPU id。
# includeNan- 见说明GPUtil.getAvailable(...)。(默认 = 假)
# excludeID- 见说明GPUtil.getAvailable(...)。(默认 = []
# excludeUUID- 见说明GPUtil.getAvailable(...)。(默认 = []
# 输出
# deviceID - 包含 1 个元素的列表,其中包含第一个可用的 GPU 设备 ID。如果当前负载和内存使用量分别小于maxLoad和maxMemory则认为 GPU 可用。顺序和限制分别固定为'first'和1。
deviceID = GPUtil.getFirstAvailable(order = 'first', maxLoad=0.5, maxMemory=0.5, attempts=1, interval=900, verbose=False)
print(deviceID)
GPUtil.showUtilization(all=True, attrList=None, useOldCode=True)
# 打印所有 GPU 的当前状态id、内存使用情况、uuid 负载)
# 输入
# all- 真/假标志,指示是否应显示 GPU 上的所有信息。覆盖attrList。
# attrListGPU-要显示的属性列表列表。有关更多信息/示例,请参见代码。
# useOldCode- 真/假标志,指示是否应使用显示 GPU 利用率的旧代码。
# 输出
# 没有任何
GPUs = GPUtil.getGPUs()
for gpu in GPUs:
print(gpu.id)
# 输入
# 没有任何
# 输出
# GPUs- 所有 GPU 的列表。每个GPU对应于计算机中的一个 GPU并包含一个设备 ID、相对负载和相对内存使用情况。
if __name__ == "___main__":
pass