devices
API Reference: v1/devices.proto
These are the power distribution network, node, GPU, CPU, etc. device abstractions.
Table of Contents
-
Messages
Messages
CPUSpec
CPU device specification for a generic CPU. If you encounter a CPU with different power capabilities, do not use this model. Instead, create a new CPU specification for that CPU and register it as a new device.
| Field | Type | Description |
|---|---|---|
| min_load_watts | double | Minimum power value that can be set (the minimum amount of power device consumes) |
| max_load_watts | double | Maximum power value that can be set (the maximum amount of power device consumes) |
| power_policy_plugin | string | The name of the power policy plugin that will be used to set GPU specific policies |
| redfish_environment_metrics_path | string | Partial Redfish URL path to the CPU device that contains EnvironmentMetrics, example: “Systems/HGX_Baseboard_0/Processors/CPU_%d” |
ComputerSystemComponent
| Field | Type | Description |
|---|---|---|
| type | string | Type of the device |
| model | string | Model name of the device |
| count | uint32 | Number of devices of the given type |
ComputerSystemSpec
ComputerSystem device specification
| Field | Type | Description |
|---|---|---|
| devices | repeated ComputerSystemComponent | Contained devices in this node |
| power_policy_plugin | string | The name of the power policy plugin that will be used to set power policies. This looks like “redfish”, (or something like “redfish_gb200.v1” if there are different flavors of it), and identifies one of the existing implementations of power policy plugins. |
| min_load_watts | double | Minimum power value that can be set (the minimum amount of power device consumes) |
| max_load_watts | double | Maximum power value that can be set (the maximum amount of power device consumes) |
| redfish_environment_metrics_path | string | Partial Redfish URL path to the device that contains EnvironmentMetrics, example: “Chassis/HGX_ProcessorModule_%d” |
| processor_modules_count | uint32 | Number of processor modules ComputerSystem contains |
| idle_policy | map ComputerSystemSpec.IdlePolicyEntry | The policy that should be used to cap power for idle nodes. If omitted, idle nodes will not be capped. The key must be one of: Node, GPU, CPU, Memory The limit must contain either the watt limit, or percentage limit |
ComputerSystemSpec.IdlePolicyEntry
| Field | Type | Description |
|---|---|---|
| key | string | none |
| value | ComputerSystemSpec.Limit | none |
ComputerSystemSpec.Limit
Policy limit for a component, given as watts or percentage
| Field | Type | Description |
|---|---|---|
| oneof _watts.watts | optional double | none |
| oneof _percentage.percentage | optional double | none |
Device
A device describes the power-related attributes of a power distribution network device, gpu, node, etc.
| Field | Type | Description |
|---|---|---|
| type | string | none |
| model | string | none |
| description | string | none |
| oneof Spec.gpu | GPUSpec | none |
| oneof Spec.computerSystem | ComputerSystemSpec | none |
| oneof Spec.powerSupply | PDNComponentSpec | none |
| oneof Spec.powerDistribution | PDNComponentSpec | none |
| oneof Spec.powerDomain | PDNComponentSpec | none |
| oneof Spec.cpu | CPUSpec | none |
| oneof Spec.memory | MemorySpec | none |
Devices
Devices is a list of devices
| Field | Type | Description |
|---|---|---|
| devices | repeated Device | none |
GPUSpec
GPU device specification for a generic GPU. If you encounter a GPU with different power capabilities, do not use this model. Instead, create a new GPU specification for that GPU and register it as a new device.
| Field | Type | Description |
|---|---|---|
| min_load_watts | double | Minimum power value that can be set (the minimum amount of power device consumes) |
| max_load_watts | double | Maximum power value that can be set (the maximum amount of power device consumes) |
| wpps_support | bool | Whether the GPU supports workload power profiles |
| power_policy_plugin | string | The name of the power policy plugin that will be used to set GPU specific policies |
| redfish_environment_metrics_path | string | Partial Redfish URL path to the GPU device that contains EnvironmentMetrics, example: “Systems/HGX_Baseboard_0/Processors/GPU_%d” |
MemorySpec
Memory device specification for a generic memory unit.
| Field | Type | Description |
|---|---|---|
| min_load_watts | double | Minimum power value that can be set (the minimum amount of power device consumes) |
| max_load_watts | double | Maximum power value that can be set (the maximum amount of power device consumes) |
PDNComponentSpec
Generic power distribution network device specification
| Field | Type | Description |
|---|---|---|
| min_load_watts | double | Minimum power value that can be set (the minimum amount of power device consumes) |
| max_load_watts | double | Maximum power value that can be set (the maximum amount of power device consumes) |
| efficiency_factor | double | A factor of efficiency of the device, affects only contained devices. Total load on the device should not exceed total available power * efficiency_factor |
| power_limit_watts | double | The power limit that cannot be exceeded (this_device_consumption + (downstream_devices_consumption * efficiency_factor)) |
| power_factor | double | none |
| power_limit_va | double | none |
| current_limit_amps | double | none |
| v_min | double | none |
| v_max | double | none |