mirror of
https://github.com/clearml/go-nvlib
synced 2025-02-07 13:21:24 +00:00
Add NewDeviceByUUID() and NewMigDeviceByUUID() calls to nvlib.device
Signed-off-by: Kevin Klues <kklues@nvidia.com>
This commit is contained in:
parent
5d4be6ac55
commit
264c5dab79
@ -26,7 +26,9 @@ type Interface interface {
|
|||||||
GetMigDevices() ([]MigDevice, error)
|
GetMigDevices() ([]MigDevice, error)
|
||||||
GetMigProfiles() ([]MigProfile, error)
|
GetMigProfiles() ([]MigProfile, error)
|
||||||
NewDevice(d nvml.Device) (Device, error)
|
NewDevice(d nvml.Device) (Device, error)
|
||||||
|
NewDeviceByUUID(uuid string) (Device, error)
|
||||||
NewMigDevice(d nvml.Device) (MigDevice, error)
|
NewMigDevice(d nvml.Device) (MigDevice, error)
|
||||||
|
NewMigDeviceByUUID(uuid string) (MigDevice, error)
|
||||||
NewMigProfile(giProfileID, ciProfileID, ciEngProfileID int, migMemorySizeMB, deviceMemorySizeBytes uint64) (MigProfile, error)
|
NewMigProfile(giProfileID, ciProfileID, ciEngProfileID int, migMemorySizeMB, deviceMemorySizeBytes uint64) (MigProfile, error)
|
||||||
ParseMigProfile(profile string) (MigProfile, error)
|
ParseMigProfile(profile string) (MigProfile, error)
|
||||||
VisitDevices(func(i int, d Device) error) error
|
VisitDevices(func(i int, d Device) error) error
|
||||||
|
@ -46,6 +46,15 @@ func (d *devicelib) NewDevice(dev nvml.Device) (Device, error) {
|
|||||||
return d.newDevice(dev)
|
return d.newDevice(dev)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NewDeviceByUUID builds a new Device from a UUID
|
||||||
|
func (d *devicelib) NewDeviceByUUID(uuid string) (Device, error) {
|
||||||
|
dev, ret := d.nvml.DeviceGetHandleByUUID(uuid)
|
||||||
|
if ret != nvml.SUCCESS {
|
||||||
|
return nil, fmt.Errorf("error getting device handle for uuid '%v': %v", uuid, ret)
|
||||||
|
}
|
||||||
|
return d.newDevice(dev)
|
||||||
|
}
|
||||||
|
|
||||||
// newDevice creates a device from an nvml.Device
|
// newDevice creates a device from an nvml.Device
|
||||||
func (d *devicelib) newDevice(dev nvml.Device) (*device, error) {
|
func (d *devicelib) newDevice(dev nvml.Device) (*device, error) {
|
||||||
return &device{dev, d}, nil
|
return &device{dev, d}, nil
|
||||||
|
@ -48,6 +48,15 @@ func (d *devicelib) NewMigDevice(handle nvml.Device) (MigDevice, error) {
|
|||||||
return &migdevice{handle, d, nil}, nil
|
return &migdevice{handle, d, nil}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NewMigDeviceByUUID builds a new MigDevice from a UUID
|
||||||
|
func (d *devicelib) NewMigDeviceByUUID(uuid string) (MigDevice, error) {
|
||||||
|
dev, ret := d.nvml.DeviceGetHandleByUUID(uuid)
|
||||||
|
if ret != nvml.SUCCESS {
|
||||||
|
return nil, fmt.Errorf("error getting device handle for uuid '%v': %v", uuid, ret)
|
||||||
|
}
|
||||||
|
return d.NewMigDevice(dev)
|
||||||
|
}
|
||||||
|
|
||||||
// GetProfile returns the MIG profile associated with a MIG device
|
// GetProfile returns the MIG profile associated with a MIG device
|
||||||
func (m *migdevice) GetProfile() (MigProfile, error) {
|
func (m *migdevice) GetProfile() (MigProfile, error) {
|
||||||
if m.profile != nil {
|
if m.profile != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user