运行时环境层
通过 TVM 来检查是否支持 ROCm 设备(Radeon Open Compute),并输出设备的相关信息。
- 函数 check_rocm 用于检查当前是否有可用的 ROCm 设备。 tvm.runtime.device("rocm", 0) 用于获取第 0 个 ROCm 设备(设备 ID 为 0),并返回一个设备对象。
- device.exist 用于检查获取的设备是否存在。如果设备不可用(device.exist 为 False),则输出 "ROCm 设备不可用" 并返回 None,表示没有找到可用的 ROCm 设备。
- 调用 check_rocm 函数并将返回值赋给变量 device。如果 device 为 None,说明没有可用的 ROCm 设备。
- 如果设备存在(device 不为 None),则创建一个 device_info 字典,包含设备的类型 (device.device_type) 和设备 ID (device.device_id)。 device.device_type: 返回设备的类型,这里应该是 "rocm"。 device.device_id: 返回设备的 ID,这里应该是 0,因为设备是通过 tvm.runtime.device("rocm", 0) 获取的。
代码:
import tvm
# 检查 TVM 是否支持 ROCm 并返回设备详细信息
def check_rocm():
try:
# 获取 ROCm 设备
device = tvm.runtime.device("rocm", 0)
# 检查设备是否可用
if not device.exist:
print("ROCm 设备不可用")
return None
print("ROCm check success")
return device
except Exception as e:
print(f"ROCm check failed: {e}")
return None
device = check_rocm()
# 获取当前可用的设备并输出设备信息
if device:
device_info = {
"device_type": device.device_type,
"device_id": device.device_id
}
print("Device Info:")
for key, value in device_info.items():
print(f" {key}: {value}")
结果:
ROCm check success
Device Info:
device_type: rocm
device_id: 0