Browse Source

Merge branch 'V20220801' into zouap

tags/v1.22.7.2^2
zouap 3 years ago
parent
commit
408ba4cb0a
10 changed files with 90 additions and 56 deletions
  1. +31
    -0
      models/cloudbrain.go
  2. +0
    -15
      models/cloudbrain_static.go
  3. +46
    -34
      routers/repo/cloudbrain.go
  4. +1
    -1
      routers/routes/routes.go
  5. +2
    -1
      templates/repo/cloudbrain/inference/new.tmpl
  6. +2
    -1
      templates/repo/cloudbrain/trainjob/new.tmpl
  7. +2
    -1
      templates/repo/grampus/trainjob/gpu/new.tmpl
  8. +2
    -1
      templates/repo/grampus/trainjob/npu/new.tmpl
  9. +2
    -1
      templates/repo/modelarts/inferencejob/new.tmpl
  10. +2
    -1
      templates/repo/modelarts/trainjob/new.tmpl

+ 31
- 0
models/cloudbrain.go View File

@@ -1680,6 +1680,37 @@ func GetCloudbrainsNeededStopByUserID(userID int64) ([]*Cloudbrain, error) {
return cloudBrains, err
}

func GetWaittingTop() ([]*CloudbrainInfo, error) {
sess := x.NewSession()
defer sess.Close()
var cond = builder.NewCond()
cond = cond.And(
builder.Eq{"cloudbrain.status": string(JobWaiting)},
)
sess.OrderBy("cloudbrain.created_unix ASC limit 1")
cloudbrains := make([]*CloudbrainInfo, 0, 1)
if err := sess.Table(&Cloudbrain{}).Where(cond).
Find(&cloudbrains); err != nil {
log.Info("find error.")
}
return cloudbrains, nil
}
func GetModelartsReDebugTaskByJobId(jobID string) ([]*Cloudbrain, error) {
sess := x.NewSession()
defer sess.Close()
var cond = builder.NewCond()
cond = cond.And(
builder.Eq{"cloudbrain.job_id": jobID},
)
sess.OrderBy("cloudbrain.created_unix ASC limit 1")
cloudbrains := make([]*Cloudbrain, 0, 10)
if err := sess.Table(&Cloudbrain{}).Unscoped().Where(cond).
Find(&cloudbrains); err != nil {
log.Info("find error.")
}
return cloudbrains, nil
}

func GetCloudbrainsNeededStopByRepoID(repoID int64) ([]*Cloudbrain, error) {
cloudBrains := make([]*Cloudbrain, 0)
err := x.Cols("job_id", "status", "type", "job_type", "version_id", "start_time").Where("repo_id=? AND status !=?", repoID, string(JobStopped)).Find(&cloudBrains)


+ 0
- 15
models/cloudbrain_static.go View File

@@ -211,21 +211,6 @@ func GetAllStatusCloudBrain() map[string]int {
return cloudBrainStatusResult
}

func GetWaittingTop() ([]*CloudbrainInfo, error) {
sess := x.NewSession()
defer sess.Close()
var cond = builder.NewCond()
cond = cond.And(
builder.Eq{"cloudbrain.status": string(JobWaiting)},
)
sess.OrderBy("cloudbrain.created_unix ASC limit 10")
cloudbrains := make([]*CloudbrainInfo, 0, 10)
if err := sess.Table(&Cloudbrain{}).Where(cond).
Find(&cloudbrains); err != nil {
log.Info("find error.")
}
return cloudbrains, nil
}
func GetRunningTop() ([]*CloudbrainInfo, error) {
sess := x.NewSession()
defer sess.Close()


+ 46
- 34
routers/repo/cloudbrain.go View File

@@ -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
}

+ 1
- 1
routers/routes/routes.go View File

@@ -1136,7 +1136,7 @@ func RegisterRoutes(m *macaron.Macaron) {
})
}, context.RepoRef())
m.Group("/modelmanage", func() {
m.Post("/create_model", reqRepoModelManageWriter, repo.SaveModel)
m.Post("/create_model", repo.SaveModel)
m.Post("/create_model_convert", reqRepoModelManageWriter, repo.SaveModelConvert)
m.Post("/create_new_model", repo.SaveNewNameModel)
m.Delete("/delete_model", repo.DeleteModel)


+ 2
- 1
templates/repo/cloudbrain/inference/new.tmpl View File

@@ -497,6 +497,7 @@
}
validate();
$('.ui.create_train_job.green.button').click(function(e) {
send_run_para()
send_run_para();
validate();
})
</script>

+ 2
- 1
templates/repo/cloudbrain/trainjob/new.tmpl View File

@@ -499,6 +499,7 @@
}
validate();
$('.ui.create_train_job.green.button').click(function (e) {
send_run_para()
send_run_para();
validate();
})
</script>

+ 2
- 1
templates/repo/grampus/trainjob/gpu/new.tmpl View File

@@ -446,6 +446,7 @@
}
validate();
$('.ui.create_train_job.green.button').click(function(e) {
send_run_para()
send_run_para();
validate();
})
</script>

+ 2
- 1
templates/repo/grampus/trainjob/npu/new.tmpl View File

@@ -478,6 +478,7 @@
validate();
$('.ui.create_train_job.green.button').click(function(e) {
get_name()
send_run_para()
send_run_para();
validate();
})
</script>

+ 2
- 1
templates/repo/modelarts/inferencejob/new.tmpl View File

@@ -522,6 +522,7 @@
validate();
$('.ui.create_train_job.green.button').click(function(e) {
send_run_para()
get_name()
get_name();
validate();
})
</script>

+ 2
- 1
templates/repo/modelarts/trainjob/new.tmpl View File

@@ -531,6 +531,7 @@
validate();
$('.ui.create_train_job.green.button').click(function (e) {
get_name()
send_run_para()
send_run_para();
validate();
})
</script>

Loading…
Cancel
Save