|
|
@ -19,6 +19,7 @@ const (
|
|
|
|
|
|
|
|
|
|
|
|
NvidiaGPUDevice = "NVIDIA"
|
|
|
|
NvidiaGPUDevice = "NVIDIA"
|
|
|
|
AscendGPUDevice = "Ascend"
|
|
|
|
AscendGPUDevice = "Ascend"
|
|
|
|
|
|
|
|
Ascend310PGPUDevice = "Ascend310P"
|
|
|
|
HygonGPUDevice = "DCU"
|
|
|
|
HygonGPUDevice = "DCU"
|
|
|
|
CambriconGPUDevice = "MLU"
|
|
|
|
CambriconGPUDevice = "MLU"
|
|
|
|
|
|
|
|
|
|
|
@ -27,14 +28,31 @@ const (
|
|
|
|
NVIDIAPriority = "nvidia.com/priority"
|
|
|
|
NVIDIAPriority = "nvidia.com/priority"
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
type ascendDeviceConfig struct {
|
|
|
|
|
|
|
|
Usedmem int32
|
|
|
|
|
|
|
|
Usedcores int32
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var (
|
|
|
|
var (
|
|
|
|
InRequestDevices map[string]string
|
|
|
|
InRequestDevices map[string]string
|
|
|
|
SupportDevices map[string]string
|
|
|
|
SupportDevices map[string]string
|
|
|
|
|
|
|
|
ascendDeviceConfigs map[string]map[int32]ascendDeviceConfig
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
func init() {
|
|
|
|
InRequestDevices = make(map[string]string)
|
|
|
|
InRequestDevices = make(map[string]string)
|
|
|
|
SupportDevices = make(map[string]string)
|
|
|
|
SupportDevices = make(map[string]string)
|
|
|
|
|
|
|
|
ascendDeviceConfigs = map[string]map[int32]ascendDeviceConfig{
|
|
|
|
|
|
|
|
"Ascend910B": {
|
|
|
|
|
|
|
|
16384: {Usedmem: 16384, Usedcores: 25},
|
|
|
|
|
|
|
|
32768: {Usedmem: 32768, Usedcores: 50},
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
"Ascend310P": {
|
|
|
|
|
|
|
|
3072: {Usedmem: 3072, Usedcores: 13},
|
|
|
|
|
|
|
|
6144: {Usedmem: 6144, Usedcores: 25},
|
|
|
|
|
|
|
|
12288: {Usedmem: 12288, Usedcores: 50},
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
}
|
|
|
|
initMLUDevice()
|
|
|
|
initMLUDevice()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -186,11 +204,13 @@ func DecodeNpuContainerDevices(str string) (ContainerDevices, error) {
|
|
|
|
devmem, _ := strconv.ParseInt(tmpstr[2], 10, 32)
|
|
|
|
devmem, _ := strconv.ParseInt(tmpstr[2], 10, 32)
|
|
|
|
tmpdev.Usedmem = int32(devmem)
|
|
|
|
tmpdev.Usedmem = int32(devmem)
|
|
|
|
tmpdev.Usedcores = 100
|
|
|
|
tmpdev.Usedcores = 100
|
|
|
|
if tmpdev.Usedmem == 16384 {
|
|
|
|
|
|
|
|
tmpdev.Usedcores = 25
|
|
|
|
if configs, exists := ascendDeviceConfigs[tmpdev.Type]; exists {
|
|
|
|
} else if tmpdev.Usedmem == 32768 {
|
|
|
|
if config, ok := configs[tmpdev.Usedmem]; ok {
|
|
|
|
tmpdev.Usedcores = 50
|
|
|
|
tmpdev.Usedcores = config.Usedcores
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
contdev = append(contdev, tmpdev)
|
|
|
|
contdev = append(contdev, tmpdev)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -262,7 +282,7 @@ func DecodePodDevices(pod *corev1.Pod, log *log.Helper) (PodDevices, error) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
pd[devType] = make(PodSingleDevice, 0)
|
|
|
|
pd[devType] = make(PodSingleDevice, 0)
|
|
|
|
switch devType {
|
|
|
|
switch devType {
|
|
|
|
case AscendGPUDevice:
|
|
|
|
case AscendGPUDevice, Ascend310PGPUDevice:
|
|
|
|
for _, s := range strings.Split(str, OnePodMultiContainerSplitSymbol) {
|
|
|
|
for _, s := range strings.Split(str, OnePodMultiContainerSplitSymbol) {
|
|
|
|
cd, err := DecodeNpuContainerDevices(s)
|
|
|
|
cd, err := DecodeNpuContainerDevices(s)
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|