You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

new.tmpl 16 kB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
3 years ago
4 years ago
3 years ago
3 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
3 years ago
4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362
  1. {{template "base/head" .}}
  2. <style>
  3. /* 遮罩层css效果图 */
  4. #mask {
  5. position: fixed;
  6. top: 0px;
  7. left: 0px;
  8. right: 0px;
  9. bottom: 0px;
  10. filter: alpha(opacity=60);
  11. background-color: #777;
  12. z-index: 1000;
  13. display: none;
  14. opacity: 0.8;
  15. -moz-opacity: 0.5;
  16. padding-top: 100px;
  17. color: #000000
  18. }
  19. /* 加载圈css效果图 */
  20. #loadingPage {
  21. margin: 200px auto;
  22. width: 50px;
  23. height: 40px;
  24. text-align: center;
  25. font-size: 10px;
  26. display: block;
  27. }
  28. #loadingPage>div {
  29. background-color: green;
  30. height: 100%;
  31. width: 6px;
  32. display: inline-block;
  33. -webkit-animation: sk-stretchdelay 1.2s infinite ease-in-out;
  34. animation: sk-stretchdelay 1.2s infinite ease-in-out;
  35. }
  36. #loadingPage .rect2 {
  37. -webkit-animation-delay: -1.1s;
  38. animation-delay: -1.1s;
  39. }
  40. #loadingPage .rect3 {
  41. -webkit-animation-delay: -1.0s;
  42. animation-delay: -1.0s;
  43. }
  44. #loadingPage .rect4 {
  45. -webkit-animation-delay: -0.9s;
  46. animation-delay: -0.9s;
  47. }
  48. #loadingPage .rect5 {
  49. -webkit-animation-delay: -0.8s;
  50. animation-delay: -0.8s;
  51. }
  52. @-webkit-keyframes sk-stretchdelay {
  53. 0%,
  54. 40%,
  55. 100% {
  56. -webkit-transform: scaleY(0.4)
  57. }
  58. 20% {
  59. -webkit-transform: scaleY(1.0)
  60. }
  61. }
  62. @keyframes sk-stretchdelay {
  63. 0%,
  64. 40%,
  65. 100% {
  66. transform: scaleY(0.4);
  67. -webkit-transform: scaleY(0.4);
  68. }
  69. 20% {
  70. transform: scaleY(1.0);
  71. -webkit-transform: scaleY(1.0);
  72. }
  73. }
  74. .inline.required.field.cloudbrain_benchmark {
  75. display: none;
  76. }
  77. .inline.required.field.cloudbrain_snn4imagenet {
  78. display: none;
  79. }
  80. .inline.required.field.cloudbrain_brainscore {
  81. display: none;
  82. }
  83. .select2-container .select2-selection--single{
  84. height:38px !important;
  85. }
  86. .select2-container--default .select2-selection--single {
  87. border : 1px solid rgba(34,36,38,.15) !important;
  88. }
  89. .select2-container--default .select2-selection--single .select2-selection__rendered{
  90. line-height: 38px !important;
  91. }
  92. </style>
  93. <div id="mask">
  94. <div id="loadingPage">
  95. <div class="rect1"></div>
  96. <div class="rect2"></div>
  97. <div class="rect3"></div>
  98. <div class="rect4"></div>
  99. <div class="rect5"></div>
  100. </div>
  101. </div>
  102. <div class="repository">
  103. {{template "repo/header" .}}
  104. <div class="repository new repo ui middle very relaxed page grid">
  105. <div class="column">
  106. {{template "base/alert" .}}
  107. <div class="ui negative message" id="messageInfo">
  108. <p></p>
  109. </div>
  110. <form id="form_id" class="ui form" action="{{.Link}}" method="post">
  111. {{.CsrfTokenHtml}}
  112. <h3 class="ui top attached header">
  113. {{.i18n.Tr "repo.cloudbrain.new"}}
  114. </h3>
  115. <div class="ui attached segment">
  116. <div class="inline required field">
  117. <label>计算资源</label>
  118. <div class="ui blue small menu compact selectcloudbrain">
  119. <a class="active item" href="{{.RepoLink}}/cloudbrain/create">
  120. <svg class="svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16">
  121. <path fill="none" d="M0 0h24v24H0z"/>
  122. <path d="M3 2.992C3 2.444 3.445 2 3.993 2h16.014a1 1 0 0 1 .993.992v18.016a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992zM19 11V4H5v7h14zm0 2H5v7h14v-7zM9 6h6v2H9V6zm0 9h6v2H9v-2z"/>
  123. </svg>
  124. CPU/GPU
  125. </a>
  126. <a class="item" href="{{.RepoLink}}/modelarts/notebook/create">
  127. <svg class="svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16">
  128. <path fill="none" d="M0 0h24v24H0z"/>
  129. <path d="M3 2.992C3 2.444 3.445 2 3.993 2h16.014a1 1 0 0 1 .993.992v18.016a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992zM19 11V4H5v7h14zm0 2H5v7h14v-7zM9 6h6v2H9V6zm0 9h6v2H9v-2z"/>
  130. </svg>
  131. Ascend NPU</a>
  132. </div>
  133. </div>
  134. <div class="inline required field">
  135. <label>任务名称</label>
  136. <input name="job_name" id="cloudbrain_job_name" placeholder="任务名称" value="{{.job_name}}" tabindex="3" autofocus required maxlength="254">
  137. </div>
  138. <div class="inline required field" style="{{if ((.is_benchmark_enabled) or (.is_snn4imagenet_enabled) or (.is_brainscore_enabled))}}display:block;{{else}}display:none;{{end}}">
  139. <label>任务类型</label>
  140. <select id="cloudbrain_job_type" class="ui search dropdown" placeholder="选择任务类型" style='width:385px' name="job_type">
  141. <option name="job_type" value="DEBUG">DEBUG</option>
  142. {{if .is_benchmark_enabled}}
  143. <option name="job_type" value="BENCHMARK">BENCHMARK</option>
  144. {{end}}
  145. {{if .is_snn4imagenet_enabled}}
  146. <option name="job_type" value="SNN4IMAGENET">SNN4IMAGENET</option>
  147. {{end}}
  148. {{if .is_brainscore_enabled}}
  149. <option name="job_type" value="BRAINSCORE">BRAINSCORE</option>
  150. {{end}}
  151. </select>
  152. </div>
  153. <div class="inline required field cloudbrain_benchmark">
  154. <label style="vertical-align: top; margin-top:9px">数据集类别</label>
  155. <select class="ui search dropdown" multiple="multiple" id="cloudbrain_benchmark_category" style='width:385px'>
  156. {{range .benchmark_categories}}
  157. <option value="{{.Value}}">{{.Value}}</option>
  158. {{end}}
  159. </select>
  160. <div class="mini ui buttons" style="vertical-align: top; margin-top:9px">
  161. <button class="ui button reset">重置</button>
  162. <div class="or"></div>
  163. <button class="ui positive button active all_selected">全选</button>
  164. </div>
  165. </div>
  166. <input id="store_category" type="hidden" name="get_benchmark_category">
  167. <div class="inline required field">
  168. <label>GPU类型</label>
  169. <select id="cloudbrain_gpu_type" class="ui search dropdown" placeholder="选择GPU类型" style='width:385px' name="gpu_type">
  170. {{range .gpu_types}}
  171. <option value="{{.Queue}}">{{.Value}}</option>
  172. {{end}}
  173. </select>
  174. </div>
  175. <div class="inline required field">
  176. <label>镜像</label>
  177. <input type="text" list="cloudbrain_image" placeholder="选择镜像" name="image" required autofocus maxlength="254">
  178. <datalist class="ui search" id="cloudbrain_image" style='width:385px;' name="image">
  179. {{range .images}}
  180. <option name="image" value="{{.Place}}">{{.PlaceView}}</option>
  181. {{end}}
  182. {{range .public_images}}
  183. <option name="image" value="{{.Place}}">{{.PlaceView}}</option>
  184. {{end}}
  185. </datalist>
  186. </div>
  187. <div class="inline required field">
  188. <label>数据集</label>
  189. <select id="cloudbrain_dataset" class="ui search dropdown" placeholder="选择数据集" style='width:385px' name="attachment" required>
  190. {{range .attachments}}
  191. <option name="attachment" value="{{.UUID}}">{{.Attachment.Name}}</option>
  192. {{end}}
  193. </select>
  194. </div>
  195. <div class="inline required field">
  196. <label>资源规格</label>
  197. <select id="cloudbrain_resource_spec" class="ui search dropdown" placeholder="选择资源规格" style='width:385px' name="resource_spec_id">
  198. {{range .resource_specs}}
  199. <option name="resource_spec_id" value="{{.Id}}">GPU数:{{.GpuNum}},CPU数:{{.CpuNum}},内存(MB):{{.MemMiB}},共享内存(MB):{{.ShareMemMiB}}</option>
  200. {{end}}
  201. </select>
  202. </div>
  203. <div class="inline required field">
  204. <label>数据集存放路径</label>
  205. <input name="dataset_path" id="cloudbrain_dataset_path" value="{{.dataset_path}}" tabindex="3" disabled autofocus required maxlength="254" readonly="readonly">
  206. </div>
  207. <div class="inline required field">
  208. <label>模型存放路径</label>
  209. <input name="model_path" id="cloudbrain_model_path" value="{{.model_path}}" tabindex="3" disabled autofocus required maxlength="254" readonly="readonly">
  210. </div>
  211. <div class="inline required field">
  212. <label>代码存放路径</label>
  213. <input name="code_path" id="cloudbrain_code_path" value="{{.code_path}}" tabindex="3" disabled autofocus required maxlength="254" readonly="readonly">
  214. </div>
  215. <div class="inline required field cloudbrain_benchmark">
  216. <label>benchmark脚本存放路径</label>
  217. <input name="benchmark_path" id="cloudbrain_benchmark_path" value="{{.benchmark_path}}" tabindex="3" disabled autofocus required maxlength="254" readonly="readonly">
  218. </div>
  219. <div class="inline required field cloudbrain_snn4imagenet">
  220. <label>snn4imagenet脚本存放路径</label>
  221. <input name="snn4imagenet_path" id="cloudbrain_snn4imagenet_path" value="{{.snn4imagenet_path}}" tabindex="3" disabled autofocus required maxlength="254" readonly="readonly">
  222. </div>
  223. <div class="inline required field cloudbrain_brainscore">
  224. <label>brainscore脚本存放路径</label>
  225. <input name="brainscore_path" id="cloudbrain_brainscore_path" value="{{.brainscore_path}}" tabindex="3" disabled autofocus required maxlength="254" readonly="readonly">
  226. </div>
  227. <div class="inline required field" hidden>
  228. <label>启动命令</label>
  229. <textarea name="command" rows="10" readonly="readonly">{{.command}}</textarea>
  230. </div>
  231. <div class="inline field">
  232. <label></label>
  233. <button class="ui green button" >
  234. {{.i18n.Tr "repo.cloudbrain.new"}}
  235. </button>
  236. <a class="ui button" href="{{.RepoLink}}/debugjob??debugListType=CPU/GPU">{{.i18n.Tr "repo.cloudbrain.cancel"}}</a>
  237. </div>
  238. </div>
  239. </form>
  240. </div>
  241. </div>
  242. </div>
  243. {{template "base/footer" .}}
  244. <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
  245. <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
  246. <script>
  247. // let url_href = window.location.pathname.split('create')[0]
  248. // $(".ui.button").attr('href',url_href)
  249. let form = document.getElementById('form_id');
  250. $('#messageInfo').css('display','none')
  251. form.onsubmit = function(e){
  252. let value_task = $("input[name='job_name']").val()
  253. let value_image = $("input[name='image']").val()
  254. let value_data = $("input[name='attachment']").val()
  255. let re = /^[a-z0-9][a-z0-9-_]{1,34}[a-z0-9-]$/
  256. let flag = re.test(value_task)
  257. if(!flag){
  258. $('#messageInfo').css('display','block')
  259. let str = '只能以小写字母或数字开头且只包含小写字母、数字、_和-,不能以_结尾,最长36个字符。'
  260. $('#messageInfo p').text(str)
  261. return false
  262. }
  263. // if(!value_image || !value_data){
  264. // console.log("------------------------")
  265. // return false
  266. // }
  267. let min_value_task = value_task.toLowerCase()
  268. $("input[name='job_name']").attr("value",min_value_task)
  269. document.getElementById("mask").style.display = "block"
  270. }
  271. // 页面加载完毕后遮罩层隐藏
  272. document.onreadystatechange = function() {
  273. if (document.readyState === "complete") {
  274. document.getElementById("mask").style.display = "none"
  275. }
  276. }
  277. $('#cloudbrain_benchmark_category')
  278. .dropdown({
  279. placeholder: "选择数据集类别",
  280. })
  281. $('select.dropdown')
  282. .dropdown();
  283. // $('#cloudbrain_image').select2({
  284. // placeholder: "选择镜像"
  285. // });
  286. $(".ui.button.reset").click(function(e){
  287. e.preventDefault()
  288. $('#cloudbrain_benchmark_category')
  289. .dropdown("clear", true)
  290. })
  291. $(".ui.positive.button.active.all_selected").click(function(e){
  292. e.preventDefault()
  293. var selected_value = new Array()
  294. $("#cloudbrain_benchmark_category option").each(function(){
  295. selected_value.push($(this).val())
  296. });
  297. $('#cloudbrain_benchmark_category')
  298. .dropdown("set exactly", selected_value)
  299. })
  300. $(function() {
  301. $("#cloudbrain_job_type").change(function() {
  302. if ($(this).val() == 'BENCHMARK') {
  303. $(".cloudbrain_benchmark").show();
  304. } else if ($(this).val() == 'SNN4IMAGENET') {
  305. $(".cloudbrain_snn4imagenet").show();
  306. } else if ($(this).val() == 'BRAINSCORE') {
  307. $(".cloudbrain_brainscore").show();
  308. } else {
  309. $(".cloudbrain_benchmark").hide();
  310. $(".cloudbrain_snn4imagenet").hide();
  311. $(".cloudbrain_brainscore").hide();
  312. }
  313. })
  314. })
  315. $('.ui.green.button').click(function() {
  316. selected_value = $("#cloudbrain_benchmark_category").val()
  317. $('#store_category').attr("value", selected_value)
  318. })
  319. </script>