Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( UnavailableLib = errors.New("could not load NVML library") )
Functions ¶
func NewNvmlClient ¶
func NewNvmlClient() (*nvmlClient, error)
NewNvmlClient function creates new nvmlClient with real NvmlDriver implementation. Also, this func initializes NvmlDriver
Types ¶
type DeviceData ¶
type DeviceData struct {
UUID string
DeviceName *string
MemoryMiB *uint64
PowerW *uint
BAR1MiB *uint64
}
DeviceData represents common fields for Nvidia device
type DeviceInfo ¶
type DeviceInfo struct {
// The following fields are guaranteed to be retrieved from nvml
UUID string
PCIBusID string
DisplayState string
PersistenceMode string
// The following fields can be nil after call to nvml, because nvml was
// not able to retrieve this fields for specific nvidia card
Name *string
MemoryMiB *uint64
PowerW *uint
BAR1MiB *uint64
PCIBandwidthMBPerS *uint
CoresClockMHz *uint
MemoryClockMHz *uint
}
DeviceInfo represents nvml device data this struct is returned by NvmlDriver DeviceInfoByIndex and DeviceInfoAndStatusByIndex methods
type DeviceStatus ¶
type DeviceStatus struct {
// The following fields can be nil after call to nvml, because nvml was
// not able to retrieve this fields for specific nvidia card
PowerUsageW *uint
TemperatureC *uint
GPUUtilization *uint // %
MemoryUtilization *uint // %
EncoderUtilization *uint // %
DecoderUtilization *uint // %
BAR1UsedMiB *uint64
UsedMemoryMiB *uint64
ECCErrorsL1Cache *uint64
ECCErrorsL2Cache *uint64
ECCErrorsDevice *uint64
}
DeviceStatus represents nvml device status this struct is returned by NvmlDriver DeviceInfoAndStatusByIndex method
type FingerprintData ¶
type FingerprintData struct {
Devices []*FingerprintDeviceData
DriverVersion string
}
FingerprintData represets attributes of driver/devices
type FingerprintDeviceData ¶
type FingerprintDeviceData struct {
*DeviceData
PCIBandwidthMBPerS *uint
CoresClockMHz *uint
MemoryClockMHz *uint
DisplayState string
PersistenceMode string
PCIBusID string
}
FingerprintDeviceData is a superset of DeviceData it describes device specific fields returned from nvml queries during fingerprinting call
type NvmlClient ¶
type NvmlClient interface {
GetFingerprintData() (*FingerprintData, error)
GetStatsData() ([]*StatsData, error)
}
NvmlClient describes how users would use nvml library
type NvmlDriver ¶
type NvmlDriver interface {
Initialize() error
Shutdown() error
SystemDriverVersion() (string, error)
DeviceCount() (uint, error)
DeviceInfoByIndex(uint) (*DeviceInfo, error)
DeviceInfoAndStatusByIndex(uint) (*DeviceInfo, *DeviceStatus, error)
}
NvmlDriver represents set of methods to query nvml library
type StatsData ¶
type StatsData struct {
*DeviceData
PowerUsageW *uint
GPUUtilization *uint
MemoryUtilization *uint
EncoderUtilization *uint
DecoderUtilization *uint
TemperatureC *uint
UsedMemoryMiB *uint64
BAR1UsedMiB *uint64
ECCErrorsL1Cache *uint64
ECCErrorsL2Cache *uint64
ECCErrorsDevice *uint64
}
StatsData is a superset of DeviceData it represents statistics data returned for every Nvidia device