|
|
|
@@ -2,7 +2,6 @@ package repo |
|
|
|
|
|
|
|
import ( |
|
|
|
"bufio" |
|
|
|
"code.gitea.io/gitea/services/cloudbrain/resource" |
|
|
|
"encoding/json" |
|
|
|
"errors" |
|
|
|
"fmt" |
|
|
|
@@ -16,6 +15,8 @@ import ( |
|
|
|
"time" |
|
|
|
"unicode/utf8" |
|
|
|
|
|
|
|
"code.gitea.io/gitea/services/cloudbrain/resource" |
|
|
|
|
|
|
|
"code.gitea.io/gitea/modules/notification" |
|
|
|
|
|
|
|
"code.gitea.io/gitea/modules/grampus" |
|
|
|
@@ -140,6 +141,71 @@ func cloudBrainNewDataPrepare(ctx *context.Context) error { |
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
|
|
func cloudBrainVersionNewDataPrepare(ctx *context.Context) error { |
|
|
|
ctx.Data["PageIsCloudBrain"] = true |
|
|
|
t := time.Now() |
|
|
|
var displayJobName = jobNamePrefixValid(cutString(ctx.User.Name, 5)) + t.Format("2006010215") + strconv.Itoa(int(t.Unix()))[5:] |
|
|
|
ctx.Data["display_job_name"] = displayJobName |
|
|
|
|
|
|
|
ctx.Data["command"] = cloudbrain.GetCloudbrainDebugCommand() |
|
|
|
ctx.Data["code_path"] = cloudbrain.CodeMountPath |
|
|
|
ctx.Data["dataset_path"] = cloudbrain.DataSetMountPath |
|
|
|
ctx.Data["model_path"] = cloudbrain.ModelMountPath |
|
|
|
ctx.Data["benchmark_path"] = cloudbrain.BenchMarkMountPath |
|
|
|
ctx.Data["is_benchmark_enabled"] = setting.IsBenchmarkEnabled |
|
|
|
|
|
|
|
if categories == nil { |
|
|
|
json.Unmarshal([]byte(setting.BenchmarkCategory), &categories) |
|
|
|
} |
|
|
|
ctx.Data["benchmark_categories"] = categories.Category |
|
|
|
|
|
|
|
ctx.Data["benchmark_types"] = GetBenchmarkTypes(ctx).BenchmarkType |
|
|
|
queuesDetail, _ := cloudbrain.GetQueuesDetail() |
|
|
|
if queuesDetail != nil { |
|
|
|
ctx.Data["QueuesDetail"] = queuesDetail |
|
|
|
} |
|
|
|
|
|
|
|
prepareCloudbrainOneSpecs(ctx) |
|
|
|
|
|
|
|
ctx.Data["snn4imagenet_path"] = cloudbrain.Snn4imagenetMountPath |
|
|
|
ctx.Data["is_snn4imagenet_enabled"] = setting.IsSnn4imagenetEnabled |
|
|
|
ctx.Data["brainscore_path"] = cloudbrain.BrainScoreMountPath |
|
|
|
ctx.Data["is_brainscore_enabled"] = setting.IsBrainScoreEnabled |
|
|
|
ctx.Data["benchmarkMode"] = ctx.Query("benchmarkMode") |
|
|
|
|
|
|
|
ctx.Data["branch_name"] = ctx.Cloudbrain.BranchName |
|
|
|
ctx.Data["image_name"] = ctx.Cloudbrain.Image |
|
|
|
ctx.Data["bootfile"] = ctx.Cloudbrain.BootFile |
|
|
|
ctx.Data["description"] = ctx.Cloudbrain.Description |
|
|
|
spec, _ := resource.GetCloudbrainSpec(ctx.Cloudbrain.ID) |
|
|
|
if spec != nil { |
|
|
|
log.Info("spec_id = %d", spec.ID) |
|
|
|
ctx.Data["spec_id"] = spec.ID |
|
|
|
} |
|
|
|
var Parameters modelarts.Parameters |
|
|
|
if err := json.Unmarshal([]byte(ctx.Cloudbrain.Parameters), &Parameters); err != nil { |
|
|
|
ctx.ServerError("json.Unmarshal failed:", err) |
|
|
|
return err |
|
|
|
} |
|
|
|
ctx.Data["params"] = Parameters.Parameter |
|
|
|
|
|
|
|
_, _, datasetNames, _, err := getDatasUrlListByUUIDS(ctx.Cloudbrain.Uuid) |
|
|
|
if err != nil { |
|
|
|
log.Info("query dataset error," + err.Error()) |
|
|
|
ctx.Data["dataset_name"] = "" |
|
|
|
} else { |
|
|
|
ctx.Data["dataset_name"] = datasetNames |
|
|
|
} |
|
|
|
ctx.Data["uuid"] = ctx.Cloudbrain.Uuid |
|
|
|
ctx.Data["compute_resource"] = ctx.Cloudbrain.ComputeResource |
|
|
|
|
|
|
|
ctx.Data["dataset_type"] = models.TypeCloudBrainOne |
|
|
|
waitCount := cloudbrain.GetWaitingCloudbrainCount(models.TypeC2Net, models.GPUResource, models.JobTypeTrain) |
|
|
|
ctx.Data["wait_count"] = waitCount |
|
|
|
|
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
|
|
func prepareCloudbrainOneSpecs(ctx *context.Context) { |
|
|
|
debugSpecs, _ := resource.FindAvailableSpecs(ctx.User.ID, models.FindSpecsOptions{ |
|
|
|
JobType: models.JobTypeDebug, |
|
|
|
@@ -342,6 +408,10 @@ func CloudBrainCreate(ctx *context.Context, form auth.CreateCloudBrainForm) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
func CloudBrainTrainJobVersionCreate(ctx *context.Context, form auth.CreateCloudBrainForm) { |
|
|
|
CloudBrainCreate(ctx, form) |
|
|
|
} |
|
|
|
|
|
|
|
func loadCodeAndMakeModelPath(repo *models.Repository, codePath string, branchName string, jobName string, resultPath string) string { |
|
|
|
err := downloadCode(repo, codePath, branchName) |
|
|
|
if err != nil { |
|
|
|
@@ -2548,6 +2618,15 @@ func CloudBrainTrainJobNew(ctx *context.Context) { |
|
|
|
ctx.HTML(http.StatusOK, tplCloudBrainTrainJobNew) |
|
|
|
} |
|
|
|
|
|
|
|
func CloudBrainTrainJobVersionNew(ctx *context.Context) { |
|
|
|
err := cloudBrainVersionNewDataPrepare(ctx) |
|
|
|
if err != nil { |
|
|
|
ctx.ServerError("get new train-job info failed", err) |
|
|
|
return |
|
|
|
} |
|
|
|
ctx.HTML(http.StatusOK, tplCloudBrainTrainJobNew) |
|
|
|
} |
|
|
|
|
|
|
|
func InferenceCloudBrainJobNew(ctx *context.Context) { |
|
|
|
err := cloudBrainNewDataPrepare(ctx) |
|
|
|
if err != nil { |
|
|
|
|