Browse Source

html

tags/v1.21.12.1
lewis 4 years ago
parent
commit
ace3bb77de
3 changed files with 55 additions and 9 deletions
  1. +1
    -0
      modules/auth/modelarts.go
  2. +30
    -1
      modules/modelarts/modelarts.go
  3. +24
    -8
      routers/repo/modelarts.go

+ 1
- 0
modules/auth/modelarts.go View File

@@ -20,6 +20,7 @@ type CreateModelArtsTrainJobForm struct {
Attachment string `form:"attachment" binding:"Required"` Attachment string `form:"attachment" binding:"Required"`
BootFile string `form:"boot_file" binding:"Required"` BootFile string `form:"boot_file" binding:"Required"`
WorkServerNumber int `form:"work_server_number" binding:"Required"` WorkServerNumber int `form:"work_server_number" binding:"Required"`
EngineID int `form:"engine_id" binding:"Required"`
Description string `form:"description"` Description string `form:"description"`
} }




+ 30
- 1
modules/modelarts/modelarts.go View File

@@ -11,6 +11,7 @@ import (
) )


const ( const (
//notebook
storageTypeOBS = "obs" storageTypeOBS = "obs"
autoStopDuration = 4 * 60 * 60 autoStopDuration = 4 * 60 * 60
flavor = "modelarts.kat1.xlarge" flavor = "modelarts.kat1.xlarge"
@@ -21,7 +22,20 @@ const (
NotebookType = "Ascend" NotebookType = "Ascend"
FlavorInfo = "Ascend: 1*Ascend 910 CPU: 24 核 96GiB (modelarts.kat1.xlarge)" FlavorInfo = "Ascend: 1*Ascend 910 CPU: 24 核 96GiB (modelarts.kat1.xlarge)"


//train-job
engineID = 118 engineID = 118

Engine = "Ascend-Powered-Engine"
EngineVersions = "{\"version\":[{\"id\":118,\"value\":\"MindSpore-1.0.0-c75-python3.7-euleros2.8-aarch64\"}," +
"{\"id\":119,\"value\":\"MindSpore-1.1.1-c76-python3.7-euleros2.8-aarch64\"}" +
"{\"id\":120,\"value\":\"MindSpore-1.1.1-c76-tr5-python3.7-euleros2.8-aarch64\"}" +
"{\"id\":117,\"value\":\"TF-1.15-c75-python3.7-euleros2.8-aarch64\"}" +
"]}"
FlavorInfos = "{\"flavor\":[{\"id\":1,\"value\":\"Ascend : 2 * Ascend 910 CPU:48 核 512GiB\"}," +
"{\"id\":2,\"value\":\"Ascend : 8 * Ascend 910 CPU:192 核 2048GiB\"}" +
"{\"id\":3,\"value\":\"Ascend : 4 * Ascend 910 CPU:96 核 1024GiB\"}" +
"{\"id\":4,\"value\":\"Ascend : 1 * Ascend 910 CPU:24 核 256GiB\"}" +
"]}"
CodePath = "/code/" CodePath = "/code/"
OutputPath = "/output/" OutputPath = "/output/"
JobPath = "/job/" JobPath = "/job/"
@@ -36,6 +50,21 @@ type GenerateTrainJobReq struct {
DataUrl string DataUrl string
TrainUrl string TrainUrl string
WorkServerNumber int WorkServerNumber int
EngineID int64
}

type VersionInfo struct {
Version []struct {
ID int `json:"id"`
Value string `json:"value"`
} `json:"version"`
}

type Flavor struct {
Info []struct {
ID int `json:"id"`
Value string `json:"value"`
} `json:"flavor"`
} }


func GenerateTask(ctx *context.Context, jobName, uuid, description string) error { func GenerateTask(ctx *context.Context, jobName, uuid, description string) error {
@@ -90,7 +119,7 @@ func GenerateTrainJob(ctx *context.Context, req *GenerateTrainJobReq) error {
AppUrl: req.CodeObsPath, AppUrl: req.CodeObsPath,
BootFileUrl: req.CodeObsPath + req.BootFile, BootFileUrl: req.CodeObsPath + req.BootFile,
DataUrl: req.DataUrl, DataUrl: req.DataUrl,
EngineID: engineID,
EngineID: req.EngineID,
TrainUrl: req.TrainUrl, TrainUrl: req.TrainUrl,
}, },




+ 24
- 8
routers/repo/modelarts.go View File

@@ -5,6 +5,7 @@ import (
"code.gitea.io/gitea/modules/modelarts" "code.gitea.io/gitea/modules/modelarts"
"code.gitea.io/gitea/modules/obs" "code.gitea.io/gitea/modules/obs"
"code.gitea.io/gitea/modules/storage" "code.gitea.io/gitea/modules/storage"
"encoding/json"
"errors" "errors"
"github.com/unknwon/com" "github.com/unknwon/com"
"io" "io"
@@ -297,10 +298,23 @@ func TrainJobNew(ctx *context.Context) {
} }


ctx.Data["attachments"] = attachs ctx.Data["attachments"] = attachs
ctx.Data["dataset_path"] = modelarts.DataSetMountPath
ctx.Data["env"] = modelarts.NotebookEnv
ctx.Data["notebook_type"] = modelarts.NotebookType
ctx.Data["flavor"] = modelarts.FlavorInfo
ctx.Data["engine"] = modelarts.Engine

var versionInfos modelarts.VersionInfo
if err = json.Unmarshal([]byte(modelarts.EngineVersions), &versionInfos); err != nil {
ctx.ServerError("json.Unmarshal failed:", err)
return
}

ctx.Data["engine_versions"] = versionInfos

var flavorInfos modelarts.Flavor
if err = json.Unmarshal([]byte(modelarts.FlavorInfos), &flavorInfos); err != nil {
ctx.ServerError("json.Unmarshal failed:", err)
return
}

ctx.Data["flavor_infos"] = flavorInfos
ctx.HTML(200, tplModelArtsTrainJobNew) ctx.HTML(200, tplModelArtsTrainJobNew)
} }


@@ -310,12 +324,13 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm)
uuid := form.Attachment uuid := form.Attachment
description := form.Description description := form.Description
workServerNumber := form.WorkServerNumber workServerNumber := form.WorkServerNumber
engineID := form.EngineID
bootFile := form.BootFile bootFile := form.BootFile
repo := ctx.Repo.Repository repo := ctx.Repo.Repository
codeLocalPath := setting.JobPath + jobName + modelarts.CodePath codeLocalPath := setting.JobPath + jobName + modelarts.CodePath
codeObsPath := setting.Bucket + modelarts.JobPath + jobName + modelarts.CodePath
outputObsPath := setting.Bucket + modelarts.JobPath + jobName + modelarts.OutputPath
dataPath := setting.Bucket + "/" + setting.BasePath + path.Join(uuid[0:1], uuid[1:2]) + "/" + uuid + "/"
codeObsPath := "/" + setting.Bucket + modelarts.JobPath + jobName + modelarts.CodePath
outputObsPath := "/" + setting.Bucket + modelarts.JobPath + jobName + modelarts.OutputPath
dataPath := "/" + setting.Bucket + "/" + setting.BasePath + path.Join(uuid[0:1], uuid[1:2]) + "/" + uuid + "/"


if err := git.Clone(repo.RepoPath(), codeLocalPath, git.CloneRepoOptions{}); err != nil { if err := git.Clone(repo.RepoPath(), codeLocalPath, git.CloneRepoOptions{}); err != nil {
log.Error("Failed to clone repository: %s (%v)", repo.FullName(), err) log.Error("Failed to clone repository: %s (%v)", repo.FullName(), err)
@@ -335,9 +350,10 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm)
DataUrl: dataPath, DataUrl: dataPath,
Description: description, Description: description,
CodeObsPath: codeObsPath, CodeObsPath: codeObsPath,
BootFile: bootFile,
BootFile: codeObsPath + "/" + bootFile,
TrainUrl: outputObsPath, TrainUrl: outputObsPath,
WorkServerNumber: workServerNumber, WorkServerNumber: workServerNumber,
EngineID: int64(engineID),
} }


err := modelarts.GenerateTrainJob(ctx, req) err := modelarts.GenerateTrainJob(ctx, req)


Loading…
Cancel
Save