Documentation
¶
Overview ¶
Package gpu collects GPU hardware and driver configuration data.
This collector gathers comprehensive GPU information from NVIDIA GPUs using nvidia-smi, including hardware specifications, driver details, and GPU-specific runtime settings.
Collected Data ¶
The collector returns a measurement with multiple subtypes, one per GPU:
GPU Hardware:
- model: GPU model name (H100, A100, L40, etc.)
- uuid: GPU UUID for unique identification
- architecture: GPU architecture (Hopper, Ampere, Ada, etc.)
- computeCapability: CUDA compute capability (9.0, 8.0, etc.)
- memory: Total GPU memory in MB
- bandwidth: Memory bandwidth in GB/s
Driver Information:
- driverVersion: NVIDIA driver version (570.158.01, etc.)
- cudaVersion: Maximum supported CUDA version
- vbios: GPU firmware/VBIOS version
Runtime Settings:
- persistenceMode: Whether persistence mode is enabled
- computeMode: Compute mode (Default, Exclusive, Prohibited)
- migMode: MIG mode (Enabled, Disabled) for supported GPUs
- addressingMode: GPU addressing mode
- powerLimit: Current power limit in watts
- powerState: Current power state (P0-P12)
Usage ¶
Create and use the collector:
collector := gpu.NewCollector()
measurements, err := collector.Collect(ctx)
if err != nil {
log.Fatal(err)
}
for _, m := range measurements {
for _, subtype := range m.Subtypes {
fmt.Printf("GPU %s: %s\n", subtype.Name, subtype.Data["model"])
}
}
nvidia-smi Dependency ¶
The collector requires nvidia-smi to be installed and in the system PATH:
which nvidia-smi # Output: /usr/bin/nvidia-smi
nvidia-smi must be executable and properly configured to communicate with the NVIDIA driver.
Query Format ¶
The collector uses nvidia-smi's query mode for reliable, machine-readable output:
nvidia-smi --query-gpu=name,uuid,driver_version,... --format=csv,noheader
This provides consistent output across driver versions and GPU models.
Multi-GPU Support ¶
The collector automatically detects and collects data from all available GPUs:
measurements, _ := collector.Collect(ctx)
for i, subtype := range measurements[0].Subtypes {
fmt.Printf("GPU %d: %s\n", i, subtype.Data["model"])
}
Each GPU becomes a separate subtype named by its index (0, 1, 2, etc.).
Context Support ¶
The collector respects context cancellation and timeouts:
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() measurements, err := collector.Collect(ctx)
nvidia-smi execution is bounded by the context deadline.
Error Handling ¶
Common error scenarios:
- nvidia-smi not found: Returns error with installation instructions
- No GPUs detected: Returns error
- Driver not loaded: Returns error with troubleshooting guidance
- nvidia-smi timeout: Returns context deadline exceeded error
The collector does not continue on errors since GPU data is critical for GPU-accelerated cluster configuration.
MIG Support ¶
For GPUs with MIG enabled, the collector:
- Reports MIG mode status
- Includes MIG-related settings
- Works with both MIG-enabled and disabled GPUs
MIG instances are not individually queried (that requires additional nvidia-smi flags).
Containerized Collection ¶
When running in containers, ensure:
- NVIDIA Container Toolkit is installed
- Container has GPU access (--gpus all or device requests)
- nvidia-smi is available in the container
For Kubernetes pods:
spec:
containers:
- name: collector
image: nvidia/cuda:12.7-base
resources:
limits:
nvidia.com/gpu: "1"
Use in Recipes ¶
Recipe generation uses GPU data for:
- GPU-specific driver version recommendations
- Model-specific optimizations (H100 vs A100)
- MIG configuration recommendations
- Power and thermal management settings
- Memory-based workload sizing
Index ¶
- type Aggregate
- type AggregateUncorrectableSramSources
- type ApplicationsClocks
- type Bar1MemoryUsage
- type Capabilities
- type CcProtectedMemoryUsage
- type ClockPolicy
- type Clocks
- type ClocksEventReasons
- type Collector
- type DefaultApplicationsClocks
- type DeferredClocks
- type DoubleBitRetirement
- type DramEncryptionMode
- type DriverModel
- type EccErrors
- type EccMode
- type EncoderStats
- type Fabric
- type FbMemoryUsage
- type FbcStats
- type GPU
- type Health
- type Ibmnpu
- type InforomBbxFlush
- type InforomVersion
- type LinkWidths
- type MaxClocks
- type MaxCustomerBoostClocks
- type MemoryPowerReadings
- type MigMode
- type ModulePowerReadings
- type MultipleSingleBitRetirement
- type NVSMIDevice
- type OperationMode
- type Pci
- type PciBridgeChip
- type PciGpuLinkInfo
- type PcieGen
- type PlatformInfo
- type PowerProfiles
- type PowerReadings
- type RemappedRows
- type ResetStatus
- type RetiredPages
- type RowRemapperHistogram
- type SupportedClocks
- type SupportedGpuTargetTemp
- type SupportedMemClock
- type Temperature
- type Utilization
- type VirtualizationMode
- type Volatile
- type Voltage
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Aggregate ¶
type Aggregate struct {
SramCorrectable string `xml:"sram_correctable" json:"sramCorrectable" yaml:"sramCorrectable"`
SramUncorrectableParity string `xml:"sram_uncorrectable_parity" json:"sramUncorrectableParity" yaml:"sramUncorrectableParity"`
SramUncorrectableSecded string `xml:"sram_uncorrectable_secded" json:"sramUncorrectableSecded" yaml:"sramUncorrectableSecded"`
DramCorrectable string `xml:"dram_correctable" json:"dramCorrectable" yaml:"dramCorrectable"`
DramUncorrectable string `xml:"dram_uncorrectable" json:"dramUncorrectable" yaml:"dramUncorrectable"`
SramThresholdExceeded string `xml:"sram_threshold_exceeded" json:"sramThresholdExceeded" yaml:"sramThresholdExceeded"`
}
type AggregateUncorrectableSramSources ¶
type AggregateUncorrectableSramSources struct {
SramL2 string `xml:"sram_l2" json:"sramL2" yaml:"sramL2"`
SramSm string `xml:"sram_sm" json:"sramSm" yaml:"sramSm"`
SramMicrocontroller string `xml:"sram_microcontroller" json:"sramMicrocontroller" yaml:"sramMicrocontroller"`
SramPcie string `xml:"sram_pcie" json:"sramPcie" yaml:"sramPcie"`
SramOther string `xml:"sram_other" json:"sramOther" yaml:"sramOther"`
}
type ApplicationsClocks ¶
type Bar1MemoryUsage ¶
type Capabilities ¶
type Capabilities struct {
Egm string `xml:"egm" json:"egm" yaml:"egm"`
}
type CcProtectedMemoryUsage ¶
type ClockPolicy ¶
type Clocks ¶
type Clocks struct {
GraphicsClock string `xml:"graphics_clock" json:"graphicsClock" yaml:"graphicsClock"`
SmClock string `xml:"sm_clock" json:"smClock" yaml:"smClock"`
MemClock string `xml:"mem_clock" json:"memClock" yaml:"memClock"`
VideoClock string `xml:"video_clock" json:"videoClock" yaml:"videoClock"`
}
type ClocksEventReasons ¶
type ClocksEventReasons struct {
ClocksEventReasonGpuIdle string `xml:"clocks_event_reason_gpu_idle" json:"clocksEventReasonGPUIdle" yaml:"clocksEventReasonGPUIdle"`
ClocksEventReasonApplicationsClocksSetting string `` /* 153-byte string literal not displayed */
ClocksEventReasonSwPowerCap string `xml:"clocks_event_reason_sw_power_cap" json:"clocksEventReasonSwPowerCap" yaml:"clocksEventReasonSwPowerCap"`
ClocksEventReasonHwSlowdown string `xml:"clocks_event_reason_hw_slowdown" json:"clocksEventReasonHwSlowdown" yaml:"clocksEventReasonHwSlowdown"`
ClocksEventReasonHwThermalSlowdown string `` /* 129-byte string literal not displayed */
ClocksEventReasonHwPowerBrakeSlowdown string `` /* 139-byte string literal not displayed */
ClocksEventReasonSyncBoost string `xml:"clocks_event_reason_sync_boost" json:"clocksEventReasonSyncBoost" yaml:"clocksEventReasonSyncBoost"`
ClocksEventReasonSwThermalSlowdown string `` /* 129-byte string literal not displayed */
ClocksEventReasonDisplayClocksSetting string `` /* 138-byte string literal not displayed */
}
type Collector ¶
type Collector struct {
}
Collector collects NVIDIA SMI configurations from nvidia-smi command output in XML format and parses them into NVSMIDevice structures
func (*Collector) Collect ¶
func (s *Collector) Collect(ctx context.Context) (*measurement.Measurement, error)
Collect retrieves the NVIDIA SMI information by executing nvidia-smi command and parses the XML output into NVSMIDevice structures. If nvidia-smi is not installed, returns a measurement with gpu-count=0 (graceful degradation).
type DeferredClocks ¶
type DeferredClocks struct {
MemClock string `xml:"mem_clock" json:"memClock" yaml:"memClock"`
}
type DoubleBitRetirement ¶
type DramEncryptionMode ¶
type DriverModel ¶
type EccErrors ¶
type EccErrors struct {
Volatile Volatile `xml:"volatile" json:"volatile" yaml:"volatile"`
Aggregate Aggregate `xml:"aggregate" json:"aggregate" yaml:"aggregate"`
AggregateUncorrectableSramSources AggregateUncorrectableSramSources `xml:"aggregate_uncorrectable_sram_sources" json:"aggregateUncorrectableSramSources" yaml:"aggregateUncorrectableSramSources"`
}
type EncoderStats ¶
type Fabric ¶
type Fabric struct {
State string `xml:"state" json:"state" yaml:"state"`
Status string `xml:"status" json:"status" yaml:"status"`
Cliqueid string `xml:"cliqueId" json:"cliqueId" yaml:"cliqueId"`
Clusteruuid string `xml:"clusterUuid" json:"clusterUuid" yaml:"clusterUuid"`
Health Health `xml:"health" json:"health" yaml:"health"`
}
type FbMemoryUsage ¶
type GPU ¶
type GPU struct {
ProductName string `xml:"product_name" json:"productName" yaml:"productName"`
ProductBrand string `xml:"product_brand" json:"productBrand" yaml:"productBrand"`
ProductArchitecture string `xml:"product_architecture" json:"productArchitecture" yaml:"productArchitecture"`
DisplayMode string `xml:"display_mode" json:"displayMode" yaml:"displayMode"`
DisplayActive string `xml:"display_active" json:"displayActive" yaml:"displayActive"`
PersistenceMode string `xml:"persistence_mode" json:"persistenceMode" yaml:"persistenceMode"`
AddressingMode string `xml:"addressing_mode" json:"addressingMode" yaml:"addressingMode"`
MigMode MigMode `xml:"mig_mode" json:"migMode" yaml:"migMode"`
MigDevices string `xml:"mig_devices" json:"migDevices" yaml:"migDevices"`
AccountingMode string `xml:"accounting_mode" json:"accountingMode" yaml:"accountingMode"`
AccountingModeBufferSize string `xml:"accounting_mode_buffer_size" json:"accountingModeBufferSize" yaml:"accountingModeBufferSize"`
DriverModel DriverModel `xml:"driver_model" json:"driverModel" yaml:"driverModel"`
Serial string `xml:"serial" json:"serial" yaml:"serial"`
UUID string `xml:"uuid" json:"uuid" yaml:"uuid"`
MinorNumber string `xml:"minor_number" json:"minorNumber" yaml:"minorNumber"`
VbiosVersion string `xml:"vbios_version" json:"vbiosVersion" yaml:"vbiosVersion"`
MultigpuBoard string `xml:"multigpu_board" json:"multiGPUBoard" yaml:"multiGPUBoard"`
BoardID string `xml:"board_id" json:"boardId" yaml:"boardId"`
BoardPartNumber string `xml:"board_part_number" json:"boardPartNumber" yaml:"boardPartNumber"`
GpuPartNumber string `xml:"gpu_part_number" json:"gpuPartNumber" yaml:"gpuPartNumber"`
GpuFruPartNumber string `xml:"gpu_fru_part_number" json:"gpuFRUPartNumber" yaml:"gpuFRUPartNumber"`
PlatformInfo PlatformInfo `xml:"platformInfo" json:"platformInfo" yaml:"platformInfo"`
InforomVersion InforomVersion `xml:"inforom_version" json:"inforomVersion" yaml:"inforomVersion"`
InforomBbxFlush InforomBbxFlush `xml:"inforom_bbx_flush" json:"inforomBBXFlush" yaml:"inforomBBXFlush"`
GpuOperationMode OperationMode `xml:"gpu_operation_mode" json:"gpuOperationMode" yaml:"gpuOperationMode"`
C2cMode string `xml:"c2c_mode" json:"c2cMode" yaml:"c2cMode"`
GpuVirtualizationMode VirtualizationMode `xml:"gpu_virtualization_mode" json:"gpuVirtualizationMode" yaml:"gpuVirtualizationMode"`
GpuResetStatus ResetStatus `xml:"gpu_reset_status" json:"gpuResetStatus" yaml:"gpuResetStatus"`
GpuRecoveryAction string `xml:"gpu_recovery_action" json:"gpuRecoveryAction" yaml:"gpuRecoveryAction"`
GspFirmwareVersion string `xml:"gsp_firmware_version" json:"gspFirmwareVersion" yaml:"gspFirmwareVersion"`
Ibmnpu Ibmnpu `xml:"ibmnpu" json:"ibmnpu" yaml:"ibmnpu"`
Pci Pci `xml:"pci" json:"pci" yaml:"pci"`
FanSpeed string `xml:"fan_speed" json:"fanSpeed" yaml:"fanSpeed"`
PerformanceState string `xml:"performance_state" json:"performanceState" yaml:"performanceState"`
ClocksEventReasons ClocksEventReasons `xml:"clocks_event_reasons" json:"clocksEventReasons" yaml:"clocksEventReasons"`
SparseOperationMode string `xml:"sparse_operation_mode" json:"sparseOperationMode" yaml:"sparseOperationMode"`
FbMemoryUsage FbMemoryUsage `xml:"fb_memory_usage" json:"fbMemoryUsage" yaml:"fbMemoryUsage"`
Bar1MemoryUsage Bar1MemoryUsage `xml:"bar1_memory_usage" json:"bar1MemoryUsage" yaml:"bar1MemoryUsage"`
CcProtectedMemoryUsage CcProtectedMemoryUsage `xml:"cc_protected_memory_usage" json:"ccProtectedMemoryUsage" yaml:"ccProtectedMemoryUsage"`
ComputeMode string `xml:"compute_mode" json:"computeMode" yaml:"computeMode"`
Utilization Utilization `xml:"utilization" json:"utilization" yaml:"utilization"`
EncoderStats EncoderStats `xml:"encoder_stats" json:"encoderStats" yaml:"encoderStats"`
FbcStats FbcStats `xml:"fbc_stats" json:"fbcStats" yaml:"fbcStats"`
DramEncryptionMode DramEncryptionMode `xml:"dram_encryption_mode" json:"dramEncryptionMode" yaml:"dramEncryptionMode"`
EccMode EccMode `xml:"ecc_mode" json:"eccMode" yaml:"eccMode"`
EccErrors EccErrors `xml:"ecc_errors" json:"eccErrors" yaml:"eccErrors"`
RetiredPages RetiredPages `xml:"retired_pages" json:"retiredPages" yaml:"retiredPages"`
RemappedRows RemappedRows `xml:"remapped_rows" json:"remappedRows" yaml:"remappedRows"`
Temperature Temperature `xml:"temperature" json:"temperature" yaml:"temperature"`
SupportedGpuTargetTemp SupportedGpuTargetTemp `xml:"supported_gpu_target_temp" json:"supportedGpuTargetTemp" yaml:"supportedGpuTargetTemp"`
GpuPowerReadings PowerReadings `xml:"gpu_power_readings" json:"gpuPowerReadings" yaml:"gpuPowerReadings"`
GpuMemoryPowerReadings MemoryPowerReadings `xml:"gpu_memory_power_readings" json:"gpuMemoryPowerReadings" yaml:"gpuMemoryPowerReadings"`
ModulePowerReadings ModulePowerReadings `xml:"module_power_readings" json:"modulePowerReadings" yaml:"modulePowerReadings"`
PowerSmoothing string `xml:"power_smoothing" json:"powerSmoothing" yaml:"powerSmoothing"`
PowerProfiles PowerProfiles `xml:"power_profiles" json:"powerProfiles" yaml:"powerProfiles"`
Clocks Clocks `xml:"clocks" json:"clocks" yaml:"clocks"`
ApplicationsClocks ApplicationsClocks `xml:"applications_clocks" json:"applicationsClocks" yaml:"applicationsClocks"`
DefaultApplicationsClocks DefaultApplicationsClocks `xml:"default_applications_clocks" json:"defaultApplicationsClocks" yaml:"defaultApplicationsClocks"`
DeferredClocks DeferredClocks `xml:"deferred_clocks" json:"deferredClocks" yaml:"deferredClocks"`
MaxClocks MaxClocks `xml:"max_clocks" json:"maxClocks" yaml:"maxClocks"`
MaxCustomerBoostClocks MaxCustomerBoostClocks `xml:"max_customer_boost_clocks" json:"maxCustomerBoostClocks" yaml:"maxCustomerBoostClocks"`
ClockPolicy ClockPolicy `xml:"clock_policy" json:"clockPolicy" yaml:"clockPolicy"`
Voltage Voltage `xml:"voltage" json:"voltage" yaml:"voltage"`
Fabric Fabric `xml:"fabric" json:"fabric" yaml:"fabric"`
SupportedClocks SupportedClocks `xml:"supported_clocks" json:"supportedClocks" yaml:"supportedClocks"`
Processes string `xml:"processes" json:"processes" yaml:"processes"`
AccountedProcesses string `xml:"accounted_processes" json:"accountedProcesses" yaml:"accountedProcesses"`
Capabilities Capabilities `xml:"capabilities" json:"capabilities" yaml:"capabilities"`
}
type Health ¶
type Health struct {
Bandwidth string `xml:"bandwidth" json:"bandwidth" yaml:"bandwidth"`
RouteRecoveryInProgress string `xml:"route_recovery_in_progress" json:"routeRecoveryInProgress" yaml:"routeRecoveryInProgress"`
RouteUnhealthy string `xml:"route_unhealthy" json:"routeUnhealthy" yaml:"routeUnhealthy"`
AccessTimeoutRecovery string `xml:"access_timeout_recovery" json:"accessTimeoutRecovery" yaml:"accessTimeoutRecovery"`
}
type Ibmnpu ¶
type Ibmnpu struct {
RelaxedOrderingMode string `xml:"relaxed_ordering_mode" json:"relaxedOrderingMode" yaml:"relaxedOrderingMode"`
}
type InforomBbxFlush ¶
type InforomVersion ¶
type InforomVersion struct {
ImgVersion string `xml:"img_version" json:"imgVersion" yaml:"imgVersion"`
OemObject string `xml:"oem_object" json:"oemObject" yaml:"oemObject"`
EccObject string `xml:"ecc_object" json:"eccObject" yaml:"eccObject"`
PwrObject string `xml:"pwr_object" json:"pwrObject" yaml:"pwrObject"`
}
type LinkWidths ¶
type MaxClocks ¶
type MaxClocks struct {
GraphicsClock string `xml:"graphics_clock" json:"graphicsClock" yaml:"graphicsClock"`
SmClock string `xml:"sm_clock" json:"smClock" yaml:"smClock"`
MemClock string `xml:"mem_clock" json:"memClock" yaml:"memClock"`
VideoClock string `xml:"video_clock" json:"videoClock" yaml:"videoClock"`
}
type MaxCustomerBoostClocks ¶
type MaxCustomerBoostClocks struct {
GraphicsClock string `xml:"graphics_clock" json:"graphicsClock" yaml:"graphicsClock"`
}
type MemoryPowerReadings ¶
type MemoryPowerReadings struct {
PowerDraw string `xml:"power_draw" json:"powerDraw" yaml:"powerDraw"`
}
type ModulePowerReadings ¶
type ModulePowerReadings struct {
PowerState string `xml:"power_state" json:"powerState" yaml:"powerState"`
PowerDraw string `xml:"power_draw" json:"powerDraw" yaml:"powerDraw"`
CurrentPowerLimit string `xml:"current_power_limit" json:"currentPowerLimit" yaml:"currentPowerLimit"`
RequestedPowerLimit string `xml:"requested_power_limit" json:"requestedPowerLimit" yaml:"requestedPowerLimit"`
DefaultPowerLimit string `xml:"default_power_limit" json:"defaultPowerLimit" yaml:"defaultPowerLimit"`
MinPowerLimit string `xml:"min_power_limit" json:"minPowerLimit" yaml:"minPowerLimit"`
MaxPowerLimit string `xml:"max_power_limit" json:"maxPowerLimit" yaml:"maxPowerLimit"`
}
type NVSMIDevice ¶
type NVSMIDevice struct {
Timestamp string `xml:"timestamp" json:"timestamp" yaml:"timestamp"`
DriverVersion string `xml:"driver_version" json:"driverVersion" yaml:"driverVersion"`
CudaVersion string `xml:"cuda_version" json:"cudaVersion" yaml:"cudaVersion"`
AttachedGpus int `xml:"attached_gpus" json:"attachedGPUs" yaml:"attachedGPUs"`
GPUs []GPU `xml:"gpu" json:"gpu" yaml:"gpu"`
}
type OperationMode ¶
type Pci ¶
type Pci struct {
PciBus string `xml:"pci_bus" json:"pciBus" yaml:"pciBus"`
PciDevice string `xml:"pci_device" json:"pciDevice" yaml:"pciDevice"`
PciDomain string `xml:"pci_domain" json:"pciDomain" yaml:"pciDomain"`
PciBaseClass string `xml:"pci_base_class" json:"pciBaseClass" yaml:"pciBaseClass"`
PciSubClass string `xml:"pci_sub_class" json:"pciSubClass" yaml:"pciSubClass"`
PciDeviceID string `xml:"pci_device_id" json:"pciDeviceId" yaml:"pciDeviceId"`
PciBusID string `xml:"pci_bus_id" json:"pciBusId" yaml:"pciBusId"`
PciSubSystemID string `xml:"pci_sub_system_id" json:"pciSubSystemId" yaml:"pciSubSystemId"`
PciGpuLinkInfo PciGpuLinkInfo `xml:"pci_gpu_link_info" json:"pciGPULinkInfo" yaml:"pciGPULinkInfo"`
PciBridgeChip PciBridgeChip `xml:"pci_bridge_chip" json:"pciBridgeChip" yaml:"pciBridgeChip"`
ReplayCounter string `xml:"replay_counter" json:"replayCounter" yaml:"replayCounter"`
ReplayRolloverCounter string `xml:"replay_rollover_counter" json:"replayRolloverCounter" yaml:"replayRolloverCounter"`
TxUtil string `xml:"tx_util" json:"txUtil" yaml:"txUtil"`
RxUtil string `xml:"rx_util" json:"rxUtil" yaml:"rxUtil"`
AtomicCapsOutbound string `xml:"atomic_caps_outbound" json:"atomicCapsOutbound" yaml:"atomicCapsOutbound"`
AtomicCapsInbound string `xml:"atomic_caps_inbound" json:"atomicCapsInbound" yaml:"atomicCapsInbound"`
}
type PciBridgeChip ¶
type PciGpuLinkInfo ¶
type PciGpuLinkInfo struct {
PcieGen PcieGen `xml:"pcie_gen" json:"pcieGen" yaml:"pcieGen"`
LinkWidths LinkWidths `xml:"link_widths" json:"linkWidths" yaml:"linkWidths"`
}
type PcieGen ¶
type PcieGen struct {
MaxLinkGen string `xml:"max_link_gen" json:"maxLinkGen" yaml:"maxLinkGen"`
CurrentLinkGen string `xml:"current_link_gen" json:"currentLinkGen" yaml:"currentLinkGen"`
DeviceCurrentLinkGen string `xml:"device_current_link_gen" json:"deviceCurrentLinkGen" yaml:"deviceCurrentLinkGen"`
MaxDeviceLinkGen string `xml:"max_device_link_gen" json:"maxDeviceLinkGen" yaml:"maxDeviceLinkGen"`
MaxHostLinkGen string `xml:"max_host_link_gen" json:"maxHostLinkGen" yaml:"maxHostLinkGen"`
}
type PlatformInfo ¶
type PlatformInfo struct {
ChassisSerialNumber string `xml:"chassis_serial_number" json:"chassisSerialNumber" yaml:"chassisSerialNumber"`
SlotNumber string `xml:"slot_number" json:"slotNumber" yaml:"slotNumber"`
TrayIndex string `xml:"tray_index" json:"trayIndex" yaml:"trayIndex"`
HostID string `xml:"host_id" json:"hostId" yaml:"hostId"`
PeerType string `xml:"peer_type" json:"peerType" yaml:"peerType"`
ModuleID string `xml:"module_id" json:"moduleId" yaml:"moduleId"`
}
type PowerProfiles ¶
type PowerProfiles struct {
PowerProfileRequestedProfiles string `xml:"power_profile_requested_profiles" json:"powerProfileRequestedProfiles" yaml:"powerProfileRequestedProfiles"`
PowerProfileEnforcedProfiles string `xml:"power_profile_enforced_profiles" json:"powerProfileEnforcedProfiles" yaml:"powerProfileEnforcedProfiles"`
}
type PowerReadings ¶
type PowerReadings struct {
PowerState string `xml:"power_state" json:"powerState" yaml:"powerState"`
PowerDraw string `xml:"power_draw" json:"powerDraw" yaml:"powerDraw"`
CurrentPowerLimit string `xml:"current_power_limit" json:"currentPowerLimit" yaml:"currentPowerLimit"`
RequestedPowerLimit string `xml:"requested_power_limit" json:"requestedPowerLimit" yaml:"requestedPowerLimit"`
DefaultPowerLimit string `xml:"default_power_limit" json:"defaultPowerLimit" yaml:"defaultPowerLimit"`
MinPowerLimit string `xml:"min_power_limit" json:"minPowerLimit" yaml:"minPowerLimit"`
MaxPowerLimit string `xml:"max_power_limit" json:"maxPowerLimit" yaml:"maxPowerLimit"`
}
type RemappedRows ¶
type RemappedRows struct {
RemappedRowCorr string `xml:"remapped_row_corr" json:"remappedRowCorr" yaml:"remappedRowCorr"`
RemappedRowUnc string `xml:"remapped_row_unc" json:"remappedRowUnc" yaml:"remappedRowUnc"`
RemappedRowPending string `xml:"remapped_row_pending" json:"remappedRowPending" yaml:"remappedRowPending"`
RemappedRowFailure string `xml:"remapped_row_failure" json:"remappedRowFailure" yaml:"remappedRowFailure"`
RowRemapperHistogram RowRemapperHistogram `xml:"row_remapper_histogram" json:"rowRemapperHistogram" yaml:"rowRemapperHistogram"`
}
type ResetStatus ¶
type RetiredPages ¶
type RetiredPages struct {
MultipleSingleBitRetirement MultipleSingleBitRetirement `xml:"multiple_single_bit_retirement" json:"multipleSingleBitRetirement" yaml:"multipleSingleBitRetirement"`
DoubleBitRetirement DoubleBitRetirement `xml:"double_bit_retirement" json:"doubleBitRetirement" yaml:"doubleBitRetirement"`
PendingBlacklist string `xml:"pending_blacklist" json:"pendingBlacklist" yaml:"pendingBlacklist"`
PendingRetirement string `xml:"pending_retirement" json:"pendingRetirement" yaml:"pendingRetirement"`
}
type RowRemapperHistogram ¶
type RowRemapperHistogram struct {
RowRemapperHistogramMax string `xml:"row_remapper_histogram_max" json:"rowRemapperHistogramMax" yaml:"rowRemapperHistogramMax"`
RowRemapperHistogramHigh string `xml:"row_remapper_histogram_high" json:"rowRemapperHistogramHigh" yaml:"rowRemapperHistogramHigh"`
RowRemapperHistogramPartial string `xml:"row_remapper_histogram_partial" json:"rowRemapperHistogramPartial" yaml:"rowRemapperHistogramPartial"`
RowRemapperHistogramLow string `xml:"row_remapper_histogram_low" json:"rowRemapperHistogramLow" yaml:"rowRemapperHistogramLow"`
RowRemapperHistogramNone string `xml:"row_remapper_histogram_none" json:"rowRemapperHistogramNone" yaml:"rowRemapperHistogramNone"`
}
type SupportedClocks ¶
type SupportedClocks struct {
SupportedMemClock SupportedMemClock `xml:"supported_mem_clock" json:"supportedMemClock" yaml:"supportedMemClock"`
}
type SupportedGpuTargetTemp ¶
type SupportedMemClock ¶
type Temperature ¶
type Temperature struct {
GpuTemp string `xml:"gpu_temp" json:"gpuTemp" yaml:"gpuTemp"`
GpuTempTlimit string `xml:"gpu_temp_tlimit" json:"gpuTempTlimit" yaml:"gpuTempTlimit"`
GpuTempMaxTlimitThreshold string `xml:"gpu_temp_max_tlimit_threshold" json:"gpuTempMaxTlimitThreshold" yaml:"gpuTempMaxTlimitThreshold"`
GpuTempSlowTlimitThreshold string `xml:"gpu_temp_slow_tlimit_threshold" json:"gpuTempSlowTlimitThreshold" yaml:"gpuTempSlowTlimitThreshold"`
GpuTempMaxGpuTlimitThreshold string `xml:"gpu_temp_max_gpu_tlimit_threshold" json:"gpuTempMaxGPUTlimitThreshold" yaml:"gpuTempMaxGPUTlimitThreshold"`
GpuTargetTemperature string `xml:"gpu_target_temperature" json:"gpuTargetTemperature" yaml:"gpuTargetTemperature"`
MemoryTemp string `xml:"memory_temp" json:"memoryTemp" yaml:"memoryTemp"`
GpuTempMaxMemTlimitThreshold string `xml:"gpu_temp_max_mem_tlimit_threshold" json:"gpuTempMaxMemTlimitThreshold" yaml:"gpuTempMaxMemTlimitThreshold"`
}
type Utilization ¶
type Utilization struct {
GpuUtil string `xml:"gpu_util" json:"gpuUtil" yaml:"gpuUtil"`
MemoryUtil string `xml:"memory_util" json:"memoryUtil" yaml:"memoryUtil"`
EncoderUtil string `xml:"encoder_util" json:"encoderUtil" yaml:"encoderUtil"`
DecoderUtil string `xml:"decoder_util" json:"decoderUtil" yaml:"decoderUtil"`
JpegUtil string `xml:"jpeg_util" json:"jpegUtil" yaml:"jpegUtil"`
OfaUtil string `xml:"ofa_util" json:"ofaUtil" yaml:"ofaUtil"`
}
type VirtualizationMode ¶
type VirtualizationMode struct {
VirtualizationMode string `xml:"virtualization_mode" json:"virtualizationMode" yaml:"virtualizationMode"`
HostVgpuMode string `xml:"host_vgpu_mode" json:"hostVGPUMode" yaml:"hostVGPUMode"`
VgpuHeterogeneousMode string `xml:"vgpu_heterogeneous_mode" json:"vgpuHeterogeneousMode" yaml:"vgpuHeterogeneousMode"`
}
type Volatile ¶
type Volatile struct {
SramCorrectable string `xml:"sram_correctable" json:"sramCorrectable" yaml:"sramCorrectable"`
SramUncorrectableParity string `xml:"sram_uncorrectable_parity" json:"sramUncorrectableParity" yaml:"sramUncorrectableParity"`
SramUncorrectableSecded string `xml:"sram_uncorrectable_secded" json:"sramUncorrectableSecded" yaml:"sramUncorrectableSecded"`
DramCorrectable string `xml:"dram_correctable" json:"dramCorrectable" yaml:"dramCorrectable"`
DramUncorrectable string `xml:"dram_uncorrectable" json:"dramUncorrectable" yaml:"dramUncorrectable"`
}