refactor: integrate Olares daemon's code & CI into main repo (#1381)
This commit is contained in:
42
daemon/pkg/utils/gpu_linux.go
Normal file
42
daemon/pkg/utils/gpu_linux.go
Normal file
@@ -0,0 +1,42 @@
|
||||
//go:build linux
|
||||
// +build linux
|
||||
|
||||
package utils
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/jaypipes/ghw"
|
||||
"k8s.io/klog/v2"
|
||||
"k8s.io/utils/ptr"
|
||||
)
|
||||
|
||||
func GetGpuInfo() (*string, error) {
|
||||
gpu, err := ghw.GPU()
|
||||
if err != nil {
|
||||
klog.Errorf("Error getting GPU info: %v", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var first string
|
||||
for _, card := range gpu.GraphicsCards {
|
||||
if card.DeviceInfo == nil || card.DeviceInfo.Vendor == nil || card.DeviceInfo.Product == nil {
|
||||
continue
|
||||
}
|
||||
info := fmt.Sprintf("%s %s", card.DeviceInfo.Vendor.Name, card.DeviceInfo.Product.Name)
|
||||
if strings.Contains(strings.ToLower(info), "nvidia") {
|
||||
return ptr.To(info), nil
|
||||
}
|
||||
|
||||
if first == "" {
|
||||
first = info
|
||||
}
|
||||
}
|
||||
|
||||
if first == "" {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
return ptr.To(first), nil
|
||||
}
|
||||
Reference in New Issue
Block a user