Bump github.com/NVIDIA/go-nvlib from 0.6.1 to 0.7.0

Bumps [github.com/NVIDIA/go-nvlib](https://github.com/NVIDIA/go-nvlib) from 0.6.1 to 0.7.0.
- [Release notes](https://github.com/NVIDIA/go-nvlib/releases)
- [Commits](https://github.com/NVIDIA/go-nvlib/compare/v0.6.1...v0.7.0)

---
updated-dependencies:
- dependency-name: github.com/NVIDIA/go-nvlib
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
This commit is contained in:
dependabot[bot]
2025-01-16 08:25:38 +00:00
committed by GitHub
parent cb52e779ba
commit 2bc4201205
4 changed files with 46 additions and 4 deletions

View File

@@ -32,6 +32,7 @@ type Device interface {
GetMigDevices() ([]MigDevice, error)
GetMigProfiles() ([]MigProfile, error)
GetPCIBusID() (string, error)
IsFabricAttached() (bool, error)
IsMigCapable() (bool, error)
IsMigEnabled() (bool, error)
VisitMigDevices(func(j int, m MigDevice) error) error
@@ -208,6 +209,47 @@ func (d *device) IsMigEnabled() (bool, error) {
return (mode == nvml.DEVICE_MIG_ENABLE), nil
}
// IsFabricAttached checks if a device is attached to a GPU fabric.
func (d *device) IsFabricAttached() (bool, error) {
if d.lib.hasSymbol("nvmlDeviceGetGpuFabricInfo") {
info, ret := d.GetGpuFabricInfo()
if ret == nvml.ERROR_NOT_SUPPORTED {
return false, nil
}
if ret != nvml.SUCCESS {
return false, fmt.Errorf("error getting GPU Fabric Info: %v", ret)
}
if info.State != nvml.GPU_FABRIC_STATE_COMPLETED {
return false, nil
}
if nvml.Return(info.Status) != nvml.SUCCESS {
return false, nil
}
return true, nil
}
if d.lib.hasSymbol("nvmlDeviceGetGpuFabricInfoV") {
info, ret := d.GetGpuFabricInfoV().V2()
if ret == nvml.ERROR_NOT_SUPPORTED {
return false, nil
}
if ret != nvml.SUCCESS {
return false, fmt.Errorf("error getting GPU Fabric Info: %v", ret)
}
if info.State != nvml.GPU_FABRIC_STATE_COMPLETED {
return false, nil
}
if nvml.Return(info.Status) != nvml.SUCCESS {
return false, nil
}
return true, nil
}
return false, nil
}
// VisitMigDevices walks a top-level device and invokes a callback function for each MIG device configured on it.
func (d *device) VisitMigDevices(visit func(int, MigDevice) error) error {
capable, err := d.IsMigCapable()

2
vendor/modules.txt vendored
View File

@@ -1,4 +1,4 @@
# github.com/NVIDIA/go-nvlib v0.6.1
# github.com/NVIDIA/go-nvlib v0.7.0
## explicit; go 1.20
github.com/NVIDIA/go-nvlib/pkg/nvlib/device
github.com/NVIDIA/go-nvlib/pkg/nvlib/info