|
|
@@ -2993,33 +2993,33 @@ func GetCloudbrainCluster(task models.Cloudbrain, ctx *context.Context) string { |
|
|
|
return "" |
|
|
|
} |
|
|
|
func GetCloudbrainCardDuration(task models.Cloudbrain) string { |
|
|
|
CardNum, _, _ := GetCloudbrainCardNumAndType(task) |
|
|
|
CardDuration := models.ConvertDurationToStr(int64(CardNum) * task.Duration) |
|
|
|
return CardDuration |
|
|
|
cardNum, _, _ := GetCloudbrainCardNumAndType(task) |
|
|
|
cardDuration := models.ConvertDurationToStr(int64(cardNum) * task.Duration) |
|
|
|
return cardDuration |
|
|
|
} |
|
|
|
func GetCloudbrainWaitTime(task models.Cloudbrain) string { |
|
|
|
var WaitTime string |
|
|
|
var waitTime string |
|
|
|
if task.Status == string(models.JobWaiting) { |
|
|
|
WaitTimeInt := time.Now().Unix() - task.CreatedUnix.AsTime().Unix() |
|
|
|
WaitTime = models.ConvertDurationToStr(WaitTimeInt) |
|
|
|
if WaitTimeInt < 0 { |
|
|
|
WaitTime = "00:00:00" |
|
|
|
waitTimeInt := time.Now().Unix() - task.CreatedUnix.AsTime().Unix() |
|
|
|
waitTime = models.ConvertDurationToStr(waitTimeInt) |
|
|
|
if waitTimeInt < 0 { |
|
|
|
waitTime = "00:00:00" |
|
|
|
} |
|
|
|
} else if task.Status == string(models.JobStopped) && task.StartTime.AsTime().Unix() == 0 { |
|
|
|
WaitTimeInt := task.EndTime.AsTime().Unix() - task.CreatedUnix.AsTime().Unix() |
|
|
|
WaitTime = models.ConvertDurationToStr(WaitTimeInt) |
|
|
|
if WaitTimeInt < 0 { |
|
|
|
WaitTime = "00:00:00" |
|
|
|
waitTimeInt := task.EndTime.AsTime().Unix() - task.CreatedUnix.AsTime().Unix() |
|
|
|
waitTime = models.ConvertDurationToStr(waitTimeInt) |
|
|
|
if waitTimeInt < 0 { |
|
|
|
waitTime = "00:00:00" |
|
|
|
|
|
|
|
} |
|
|
|
} else { |
|
|
|
WaitTimeInt := task.StartTime.AsTime().Unix() - task.CreatedUnix.AsTime().Unix() |
|
|
|
WaitTime = models.ConvertDurationToStr(WaitTimeInt) |
|
|
|
if WaitTimeInt < 0 { |
|
|
|
WaitTime = "00:00:00" |
|
|
|
waitTimeInt := task.StartTime.AsTime().Unix() - task.CreatedUnix.AsTime().Unix() |
|
|
|
waitTime = models.ConvertDurationToStr(waitTimeInt) |
|
|
|
if waitTimeInt < 0 { |
|
|
|
waitTime = "00:00:00" |
|
|
|
} |
|
|
|
} |
|
|
|
return WaitTime |
|
|
|
return waitTime |
|
|
|
} |
|
|
|
|
|
|
|
func GetCloudbrainCardNumAndType(task models.Cloudbrain) (int, string, error) { |
|
|
@@ -3029,11 +3029,11 @@ func GetCloudbrainCardNumAndType(task models.Cloudbrain) (int, string, error) { |
|
|
|
if !models.GpuInfosMapInitFlag { |
|
|
|
models.InitCloudbrainOneGpuInfoMap() |
|
|
|
} |
|
|
|
FlavorName, err := GetCloudbrainFlavorName(task) |
|
|
|
flavorName, err := GetCloudbrainFlavorName(task) |
|
|
|
if err != nil { |
|
|
|
return 0, "", nil |
|
|
|
} |
|
|
|
return getCardNumAndTypeByFlavorname(FlavorName) |
|
|
|
return getCardNumAndTypeByFlavorname(flavorName) |
|
|
|
} |
|
|
|
|
|
|
|
func getCardNumAndTypeByFlavorname(FlavorName string) (int, string, error) { |
|
|
@@ -3058,36 +3058,36 @@ func getCardNumAndTypeByFlavorname(FlavorName string) (int, string, error) { |
|
|
|
|
|
|
|
func GetCloudbrainFlavorName(task models.Cloudbrain) (string, error) { |
|
|
|
if task.Type == models.TypeCloudBrainOne { |
|
|
|
ResourceSpec, GpuInfo, err := getCloudBrainOneResourceSpec(task) |
|
|
|
resourceSpec, gpuInfo, err := getCloudBrainOneResourceSpec(task) |
|
|
|
if err != nil { |
|
|
|
log.Info("getCloudBrainOneResourceSpec err:", err) |
|
|
|
return "", err |
|
|
|
} else { |
|
|
|
if ResourceSpec == nil || GpuInfo == nil { |
|
|
|
err := errors.New("ResourceSpec or GpuInfo is nil") |
|
|
|
if resourceSpec == nil || gpuInfo == nil { |
|
|
|
err := errors.New("resourceSpec or gpuInfo is nil") |
|
|
|
return "", err |
|
|
|
} else { |
|
|
|
CloudbrainOneFlavorName := "GPU:" + strconv.Itoa(ResourceSpec.GpuNum) + "*Nvidia-" + GpuInfo.Value + |
|
|
|
" | CPU:" + strconv.Itoa(ResourceSpec.CpuNum) + "核" + strconv.Itoa(ResourceSpec.MemMiB) + "MB" |
|
|
|
CloudbrainOneFlavorName := "GPU:" + strconv.Itoa(resourceSpec.GpuNum) + "*Nvidia-" + gpuInfo.Value + |
|
|
|
" | CPU:" + strconv.Itoa(resourceSpec.CpuNum) + "核" + strconv.Itoa(resourceSpec.MemMiB) + "MB" |
|
|
|
return CloudbrainOneFlavorName, nil |
|
|
|
} |
|
|
|
} |
|
|
|
} else if (task.Type == models.TypeCloudBrainTwo || task.Type == models.TypeC2Net) && task.FlavorName != "" { |
|
|
|
ReplaceFlavorName := strings.ReplaceAll(task.FlavorName, ":", ":") |
|
|
|
return ReplaceFlavorName, nil |
|
|
|
replaceFlavorName := strings.ReplaceAll(task.FlavorName, ":", ":") |
|
|
|
return replaceFlavorName, nil |
|
|
|
} else if task.Type == models.TypeCloudBrainTwo && task.FlavorName == "" && task.FlavorCode != "" { |
|
|
|
index := strings.LastIndex(task.FlavorCode, ".") |
|
|
|
cardNum, err := strconv.Atoi(strings.TrimSpace(task.FlavorCode[index+1 : len(task.FlavorCode)])) |
|
|
|
cloudbrainTwoFlavorName := getFlavorNameByFlavorCode(task.FlavorCode) |
|
|
|
return cloudbrainTwoFlavorName, nil |
|
|
|
} else if task.Type == models.TypeCloudBrainTwo && task.JobType == string(models.JobTypeDebug) && task.FlavorName == "" && task.FlavorCode == "" { |
|
|
|
tasks, err := models.GetModelartsReDebugTaskByJobId(task.JobID) |
|
|
|
if err != nil { |
|
|
|
log.Error("strconv.Atoi failed: %v", err) |
|
|
|
return "", err |
|
|
|
} |
|
|
|
CloudbrainTwoFlavorName := "Ascend:" + strings.TrimSpace(task.FlavorCode[index+1:len(task.FlavorCode)]) + |
|
|
|
"*Ascend-910(" + strconv.Itoa(cardNum*32) + "GB)|ARM:" + strconv.Itoa(cardNum*24) + |
|
|
|
"核" + strconv.Itoa(cardNum*256) + "GB" |
|
|
|
return CloudbrainTwoFlavorName, nil |
|
|
|
if len(tasks) >= 1 { |
|
|
|
return getFlavorNameByFlavorCode(tasks[0].FlavorCode), nil |
|
|
|
} |
|
|
|
return "", nil |
|
|
|
} |
|
|
|
|
|
|
|
return "", nil |
|
|
|
} |
|
|
|
|
|
|
@@ -3112,3 +3112,15 @@ func getCloudBrainOneResourceSpec(task models.Cloudbrain) (*models.ResourceSpec, |
|
|
|
} |
|
|
|
return nil, nil, nil |
|
|
|
} |
|
|
|
func getFlavorNameByFlavorCode(flavorCode string) string { |
|
|
|
index := strings.LastIndex(flavorCode, ".") |
|
|
|
cardNum, err := strconv.Atoi(strings.TrimSpace(flavorCode[index+1 : len(flavorCode)])) |
|
|
|
if err != nil { |
|
|
|
log.Error("strconv.Atoi failed: %v", err) |
|
|
|
return "" |
|
|
|
} |
|
|
|
cloudbrainTwoFlavorName := "Ascend:" + strings.TrimSpace(flavorCode[index+1:len(flavorCode)]) + |
|
|
|
"*Ascend-910(" + strconv.Itoa(cardNum*32) + "GB)|ARM:" + strconv.Itoa(cardNum*24) + |
|
|
|
"核" + strconv.Itoa(cardNum*256) + "GB" |
|
|
|
return cloudbrainTwoFlavorName |
|
|
|
} |