Browse Source

提交代码。

Signed-off-by: zouap <zouap@pcl.ac.cn>
pull/2480/head
zouap 3 years ago
parent
commit
f70d0022ee
3 changed files with 56 additions and 2 deletions
  1. +17
    -0
      models/ai_model_manage.go
  2. +31
    -1
      routers/repo/ai_model_convert.go
  3. +8
    -1
      templates/repo/modelmanage/convertIndex.tmpl

+ 17
- 0
models/ai_model_manage.go View File

@@ -110,6 +110,23 @@ func ModelComputeAndSetDuration(task *AiModelConvert, result JobResultPayload) {
task.TrainJobDuration = ConvertDurationToStr(d)
}

func ModelConvertSetDuration(task *AiModelConvert) {
var d int64
if task.StartTime == 0 {
d = 0
} else if task.EndTime == 0 {
d = time.Now().Unix() - task.StartTime.AsTime().Unix()
} else {
d = task.EndTime.AsTime().Unix() - task.StartTime.AsTime().Unix()
}

if d < 0 {
d = 0
}
task.RunTime = d
task.TrainJobDuration = ConvertDurationToStr(d)
}

func UpdateModelConvertModelArts(id string, CloudBrainTaskId string, VersionId string) error {
var sess *xorm.Session
sess = x.ID(id)


+ 31
- 1
routers/repo/ai_model_convert.go View File

@@ -17,6 +17,7 @@ import (
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/modelarts"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/timeutil"
uuid "github.com/satori/go.uuid"
)

@@ -35,6 +36,7 @@ const (
GpuQueue = "openidgx"
Success = "S000"
GPU_PYTORCH_IMAGE = "dockerhub.pcl.ac.cn:5000/user-images/openi:tensorRT_7_zouap"
GPU_TENSORFLOW_IMAGE = "dockerhub.pcl.ac.cn:5000/user-images/openi:tf2onnx"

PytorchBootFile = "convert_pytorch.py"
MindsporeBootFile = "convert_mindspore.py"
@@ -267,9 +269,11 @@ func downloadConvertCode(repopath string, codePath, branchName string) error {

func createGpuTrainJob(modelConvert *models.AiModelConvert, ctx *context.Context, modelRelativePath string) error {
command := ""
IMAGE_URL := GPU_PYTORCH_IMAGE
if modelConvert.SrcEngine == PYTORCH_ENGINE {
command = getGpuModelConvertCommand(modelConvert.ID, modelConvert.ModelPath, modelConvert, PytorchBootFile)
} else if modelConvert.SrcEngine == TENSORFLOW_ENGINE {
IMAGE_URL = GPU_TENSORFLOW_IMAGE
command = getGpuModelConvertCommand(modelConvert.ID, modelConvert.ModelPath, modelConvert, TensorFlowGpuBootFile)
}
log.Info("command=" + command)
@@ -301,7 +305,7 @@ func createGpuTrainJob(modelConvert *models.AiModelConvert, ctx *context.Context
JobName: modelConvert.ID,
RetryCount: 1,
GpuType: GpuQueue,
Image: GPU_PYTORCH_IMAGE,
Image: IMAGE_URL,
TaskRoles: []models.TaskRole{
{
Name: SubTaskName,
@@ -397,6 +401,32 @@ func isCloudBrainTask(task *models.AiModelConvert) bool {
func StopModelConvert(ctx *context.Context) {
id := ctx.Params(":id")
log.Info("stop model convert start.id=" + id)
job, err := models.QueryModelConvertById(ctx.Query("ID"))
if err != nil {
ctx.ServerError("Not found task.", err)
return
}
if isCloudBrainTask(job) {
err = cloudbrain.StopJob(job.CloudBrainTaskId)
if err != nil {
log.Error("Stop cloudbrain Job(%s) failed:%v", job.CloudBrainTaskId, err)
}
} else {
_, err = modelarts.StopTrainJob(job.CloudBrainTaskId, job.ModelArtsVersionId)
if err != nil {
log.Error("Stop modelarts Job(%s) failed:%v", job.CloudBrainTaskId, err)
}
}
job.Status = string(models.JobStopped)
if job.EndTime == 0 {
job.EndTime = timeutil.TimeStampNow()
}
models.ModelConvertSetDuration(job)
err = models.UpdateModelConvert(job)
if err != nil {
log.Error("UpdateModelConvert failed:", err)
}

}

func ShowModelConvertInfo(ctx *context.Context) {


+ 8
- 1
templates/repo/modelmanage/convertIndex.tmpl View File

@@ -107,12 +107,19 @@
<!-- 删除任务 -->
<form id="delForm-{{.ID}}" action="{{$.RepoLink}}/modelmanage/delete_model_convert/{{.ID}}" method="post">
<input type="hidden" name="debugListType" value="all">
{{$.CsrfTokenHtml}}
<a id="ai-delete-{{.ID}}" class='ui basic ai_delete blue button' style="border-radius: .28571429rem;">
{{$.i18n.Tr "repo.delete"}}
</a>
</form>

<form id="downloadForm-{{.ID}}" action="{{$.RepoLink}}/modelmanage/download_model_convert/{{.ID}}" method="post">
{{$.CsrfTokenHtml}}
<a id="ai-delete-{{.ID}}" class='ui basic ai_stop {{if eq .Status "SUCCEEDED"}}blue {{else}}disabled {{end}}button' style="border-radius: .28571429rem;">
下载
</a>
</form>

</div>
</div>
</div>


Loading…
Cancel
Save