mindspore 2.4.1__cp39-cp39-win_amd64.whl → 2.5.0__cp39-cp39-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mindspore might be problematic. Click here for more details.

Files changed (395) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/Microsoft.VisualStudio.Telemetry.dll +0 -0
  3. mindspore/Newtonsoft.Json.dll +0 -0
  4. mindspore/__init__.py +8 -3
  5. mindspore/_c_dataengine.cp39-win_amd64.pyd +0 -0
  6. mindspore/_c_expression.cp39-win_amd64.pyd +0 -0
  7. mindspore/_c_mindrecord.cp39-win_amd64.pyd +0 -0
  8. mindspore/_checkparam.py +0 -5
  9. mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +1 -1
  10. mindspore/_extends/parse/compile_config.py +64 -0
  11. mindspore/_extends/parse/deprecated/__init__.py +0 -0
  12. mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +375 -0
  13. mindspore/_extends/parse/parser.py +23 -5
  14. mindspore/_extends/parse/standard_method.py +123 -27
  15. mindspore/_extends/pijit/pijit_func_white_list.py +1 -1
  16. mindspore/amp.py +7 -1
  17. mindspore/atlprov.dll +0 -0
  18. mindspore/avcodec-59.dll +0 -0
  19. mindspore/avdevice-59.dll +0 -0
  20. mindspore/avfilter-8.dll +0 -0
  21. mindspore/avformat-59.dll +0 -0
  22. mindspore/avutil-57.dll +0 -0
  23. mindspore/boost/boost_cell_wrapper.py +136 -41
  24. mindspore/c1.dll +0 -0
  25. mindspore/c1xx.dll +0 -0
  26. mindspore/c2.dll +0 -0
  27. mindspore/common/__init__.py +3 -1
  28. mindspore/common/_register_for_tensor.py +0 -1
  29. mindspore/common/_stub_tensor.py +25 -4
  30. mindspore/common/_tensor_cpp_method.py +17 -0
  31. mindspore/common/_tensor_docs.py +6132 -0
  32. mindspore/common/api.py +99 -25
  33. mindspore/common/dtype.py +34 -34
  34. mindspore/common/dump.py +2 -1
  35. mindspore/common/file_system.py +8 -1
  36. mindspore/common/generator.py +2 -0
  37. mindspore/common/hook_handle.py +3 -1
  38. mindspore/common/initializer.py +3 -4
  39. mindspore/common/lazy_inline.py +8 -2
  40. mindspore/common/mindir_util.py +10 -2
  41. mindspore/common/parameter.py +30 -27
  42. mindspore/common/tensor.py +713 -1337
  43. mindspore/communication/__init__.py +1 -1
  44. mindspore/communication/_comm_helper.py +10 -0
  45. mindspore/communication/comm_func.py +215 -173
  46. mindspore/communication/management.py +23 -20
  47. mindspore/context.py +292 -193
  48. mindspore/dataset/__init__.py +23 -19
  49. mindspore/dataset/callback/ds_callback.py +2 -1
  50. mindspore/dataset/core/config.py +84 -3
  51. mindspore/dataset/engine/cache_admin.py +3 -3
  52. mindspore/dataset/engine/cache_client.py +5 -4
  53. mindspore/dataset/engine/datasets.py +192 -149
  54. mindspore/dataset/engine/datasets_audio.py +14 -0
  55. mindspore/dataset/engine/datasets_standard_format.py +28 -11
  56. mindspore/dataset/engine/datasets_text.py +38 -1
  57. mindspore/dataset/engine/datasets_user_defined.py +125 -65
  58. mindspore/dataset/engine/datasets_vision.py +81 -8
  59. mindspore/dataset/engine/iterators.py +281 -63
  60. mindspore/dataset/engine/obs/util.py +8 -0
  61. mindspore/dataset/engine/queue.py +40 -0
  62. mindspore/dataset/engine/samplers.py +26 -2
  63. mindspore/dataset/engine/serializer_deserializer.py +1 -1
  64. mindspore/dataset/engine/validators.py +43 -11
  65. mindspore/dataset/transforms/py_transforms_util.py +17 -0
  66. mindspore/dataset/transforms/transforms.py +29 -12
  67. mindspore/dataset/vision/validators.py +1 -2
  68. mindspore/device_context/__init__.py +21 -0
  69. mindspore/device_context/ascend/__init__.py +25 -0
  70. mindspore/device_context/ascend/device.py +72 -0
  71. mindspore/device_context/ascend/op_debug.py +94 -0
  72. mindspore/device_context/ascend/op_precision.py +193 -0
  73. mindspore/device_context/ascend/op_tuning.py +127 -0
  74. mindspore/device_context/cpu/__init__.py +25 -0
  75. mindspore/device_context/cpu/device.py +62 -0
  76. mindspore/device_context/cpu/op_tuning.py +43 -0
  77. mindspore/device_context/gpu/__init__.py +21 -0
  78. mindspore/device_context/gpu/device.py +70 -0
  79. mindspore/device_context/gpu/op_precision.py +67 -0
  80. mindspore/device_context/gpu/op_tuning.py +175 -0
  81. mindspore/device_manager.py +134 -0
  82. mindspore/dnnl.dll +0 -0
  83. mindspore/dpcmi.dll +0 -0
  84. mindspore/experimental/llm_boost/__init__.py +3 -2
  85. mindspore/experimental/llm_boost/ascend_native/__init__.py +22 -0
  86. mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +211 -0
  87. mindspore/experimental/llm_boost/ascend_native/llm_boost.py +52 -0
  88. mindspore/experimental/llm_boost/atb/boost_base.py +239 -64
  89. mindspore/experimental/llm_boost/atb/llama_boost.py +52 -30
  90. mindspore/experimental/llm_boost/atb/qwen_boost.py +47 -24
  91. mindspore/experimental/llm_boost/register.py +1 -0
  92. mindspore/experimental/optim/adadelta.py +26 -22
  93. mindspore/experimental/optim/adam.py +3 -0
  94. mindspore/experimental/optim/lr_scheduler.py +33 -24
  95. mindspore/experimental/optim/radam.py +33 -30
  96. mindspore/hal/device.py +28 -0
  97. mindspore/hal/event.py +17 -0
  98. mindspore/hal/memory.py +94 -3
  99. mindspore/hal/stream.py +91 -6
  100. mindspore/include/api/context.h +1 -2
  101. mindspore/include/dataset/constants.h +2 -2
  102. mindspore/jpeg62.dll +0 -0
  103. mindspore/log.py +12 -0
  104. mindspore/mindrecord/__init__.py +1 -1
  105. mindspore/mindrecord/config.py +17 -316
  106. mindspore/mindrecord/filereader.py +1 -9
  107. mindspore/mindrecord/filewriter.py +5 -15
  108. mindspore/mindrecord/mindpage.py +1 -9
  109. mindspore/mindspore_backend.dll +0 -0
  110. mindspore/mindspore_common.dll +0 -0
  111. mindspore/mindspore_core.dll +0 -0
  112. mindspore/mindspore_glog.dll +0 -0
  113. mindspore/mindspore_ops.dll +0 -0
  114. mindspore/mint/__init__.py +824 -218
  115. mindspore/mint/distributed/__init__.py +66 -4
  116. mindspore/mint/distributed/distributed.py +2594 -44
  117. mindspore/mint/linalg/__init__.py +6 -0
  118. mindspore/mint/nn/__init__.py +473 -14
  119. mindspore/mint/nn/functional.py +486 -11
  120. mindspore/mint/nn/layer/__init__.py +17 -4
  121. mindspore/mint/nn/layer/_functions.py +330 -0
  122. mindspore/mint/nn/layer/activation.py +169 -1
  123. mindspore/mint/nn/layer/basic.py +123 -0
  124. mindspore/mint/nn/layer/conv.py +727 -0
  125. mindspore/mint/nn/layer/normalization.py +215 -19
  126. mindspore/mint/nn/layer/padding.py +797 -0
  127. mindspore/mint/nn/layer/pooling.py +170 -0
  128. mindspore/mint/optim/__init__.py +2 -1
  129. mindspore/mint/optim/adam.py +223 -0
  130. mindspore/mint/optim/adamw.py +26 -19
  131. mindspore/mint/special/__init__.py +2 -1
  132. mindspore/msobj140.dll +0 -0
  133. mindspore/mspdb140.dll +0 -0
  134. mindspore/mspdbcore.dll +0 -0
  135. mindspore/mspdbst.dll +0 -0
  136. mindspore/mspft140.dll +0 -0
  137. mindspore/msvcdis140.dll +0 -0
  138. mindspore/msvcp140_1.dll +0 -0
  139. mindspore/msvcp140_2.dll +0 -0
  140. mindspore/msvcp140_atomic_wait.dll +0 -0
  141. mindspore/msvcp140_codecvt_ids.dll +0 -0
  142. mindspore/multiprocessing/__init__.py +5 -0
  143. mindspore/nn/__init__.py +2 -0
  144. mindspore/nn/cell.py +142 -21
  145. mindspore/nn/dynamic_lr.py +2 -1
  146. mindspore/nn/layer/activation.py +6 -6
  147. mindspore/nn/layer/basic.py +35 -25
  148. mindspore/nn/layer/channel_shuffle.py +3 -3
  149. mindspore/nn/layer/conv.py +3 -0
  150. mindspore/nn/layer/embedding.py +3 -3
  151. mindspore/nn/layer/normalization.py +8 -7
  152. mindspore/nn/layer/padding.py +4 -3
  153. mindspore/nn/layer/pooling.py +55 -23
  154. mindspore/nn/layer/rnn_cells.py +1 -1
  155. mindspore/nn/layer/rnns.py +2 -1
  156. mindspore/nn/layer/timedistributed.py +5 -5
  157. mindspore/nn/layer/transformer.py +48 -26
  158. mindspore/nn/learning_rate_schedule.py +5 -3
  159. mindspore/nn/loss/loss.py +31 -36
  160. mindspore/nn/optim/ada_grad.py +1 -0
  161. mindspore/nn/optim/adadelta.py +2 -2
  162. mindspore/nn/optim/adam.py +1 -1
  163. mindspore/nn/optim/lars.py +1 -4
  164. mindspore/nn/optim/optimizer.py +1 -1
  165. mindspore/nn/optim/rprop.py +2 -2
  166. mindspore/nn/optim/thor.py +2 -1
  167. mindspore/nn/utils/__init__.py +22 -0
  168. mindspore/nn/utils/init.py +73 -0
  169. mindspore/nn/wrap/cell_wrapper.py +4 -6
  170. mindspore/nn/wrap/loss_scale.py +3 -4
  171. mindspore/numpy/array_creations.py +60 -62
  172. mindspore/numpy/array_ops.py +148 -143
  173. mindspore/numpy/logic_ops.py +41 -42
  174. mindspore/numpy/math_ops.py +361 -359
  175. mindspore/numpy/utils.py +16 -16
  176. mindspore/numpy/utils_const.py +4 -4
  177. mindspore/opencv_core452.dll +0 -0
  178. mindspore/opencv_imgcodecs452.dll +0 -0
  179. mindspore/opencv_imgproc452.dll +0 -0
  180. mindspore/ops/__init__.py +2 -1
  181. mindspore/ops/_grad_experimental/grad_comm_ops.py +107 -8
  182. mindspore/ops/_grad_experimental/grad_debug_ops.py +6 -1
  183. mindspore/ops/_grad_experimental/grad_inner_ops.py +9 -0
  184. mindspore/ops/_grad_experimental/grad_math_ops.py +2 -1
  185. mindspore/ops/_op_impl/cpu/__init__.py +1 -0
  186. mindspore/ops/_op_impl/cpu/raise_op.py +28 -0
  187. mindspore/ops/_vmap/vmap_array_ops.py +20 -19
  188. mindspore/ops/_vmap/vmap_base.py +0 -2
  189. mindspore/ops/_vmap/vmap_grad_nn_ops.py +19 -13
  190. mindspore/ops/_vmap/vmap_math_ops.py +11 -9
  191. mindspore/ops/_vmap/vmap_nn_ops.py +20 -34
  192. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +149 -12
  193. mindspore/ops/auto_generate/gen_arg_handler.py +0 -61
  194. mindspore/ops/auto_generate/gen_extend_func.py +554 -60
  195. mindspore/ops/auto_generate/gen_ops_def.py +1621 -115
  196. mindspore/ops/auto_generate/gen_ops_prim.py +8027 -3411
  197. mindspore/ops/auto_generate/pyboost_inner_prim.py +183 -79
  198. mindspore/ops/composite/base.py +1 -1
  199. mindspore/ops/composite/multitype_ops/_compile_utils.py +229 -30
  200. mindspore/ops/composite/multitype_ops/pow_impl.py +0 -29
  201. mindspore/ops/function/__init__.py +12 -0
  202. mindspore/ops/function/array_func.py +561 -159
  203. mindspore/ops/function/clip_func.py +64 -0
  204. mindspore/ops/function/debug_func.py +28 -20
  205. mindspore/ops/function/image_func.py +1 -1
  206. mindspore/ops/function/linalg_func.py +5 -4
  207. mindspore/ops/function/math_func.py +1664 -294
  208. mindspore/ops/function/nn_func.py +988 -317
  209. mindspore/ops/function/parameter_func.py +3 -56
  210. mindspore/ops/function/random_func.py +243 -33
  211. mindspore/ops/function/sparse_unary_func.py +1 -1
  212. mindspore/ops/functional.py +18 -5
  213. mindspore/ops/functional_overload.py +897 -0
  214. mindspore/ops/operations/__init__.py +3 -2
  215. mindspore/ops/operations/_embedding_cache_ops.py +4 -4
  216. mindspore/ops/operations/_grad_ops.py +2 -34
  217. mindspore/ops/operations/_infer_ops.py +2 -1
  218. mindspore/ops/operations/_inner_ops.py +38 -8
  219. mindspore/ops/operations/array_ops.py +45 -303
  220. mindspore/ops/operations/comm_ops.py +23 -17
  221. mindspore/ops/operations/custom_ops.py +7 -49
  222. mindspore/ops/operations/debug_ops.py +42 -47
  223. mindspore/ops/operations/inner_ops.py +6 -4
  224. mindspore/ops/operations/linalg_ops.py +3 -2
  225. mindspore/ops/operations/manually_defined/ops_def.py +185 -104
  226. mindspore/ops/operations/math_ops.py +11 -216
  227. mindspore/ops/operations/nn_ops.py +153 -310
  228. mindspore/ops/primitive.py +23 -21
  229. mindspore/ops/tensor_method.py +1669 -0
  230. mindspore/ops_generate/aclnn_kernel_register_auto_cc_generator.py +110 -0
  231. mindspore/ops_generate/add_tensor_docs_generator.py +54 -0
  232. mindspore/ops_generate/arg_handler.py +0 -61
  233. mindspore/ops_generate/auto_grad_impl_cc_generator.py +135 -0
  234. mindspore/ops_generate/auto_grad_reg_cc_generator.py +93 -0
  235. mindspore/ops_generate/base_generator.py +11 -0
  236. mindspore/ops_generate/cpp_create_prim_instance_helper_generator.py +108 -0
  237. mindspore/ops_generate/functional_map_cpp_generator.py +491 -0
  238. mindspore/ops_generate/functional_overload_py_generator.py +110 -0
  239. mindspore/ops_generate/functions_cc_generator.py +233 -0
  240. mindspore/ops_generate/gen_aclnn_implement.py +110 -114
  241. mindspore/ops_generate/gen_constants.py +157 -3
  242. mindspore/ops_generate/gen_ops.py +245 -990
  243. mindspore/ops_generate/gen_pyboost_func.py +97 -998
  244. mindspore/ops_generate/gen_utils.py +119 -33
  245. mindspore/ops_generate/lite_ops_cpp_generator.py +155 -0
  246. mindspore/ops_generate/op_api_proto.py +206 -0
  247. mindspore/ops_generate/op_def_py_generator.py +131 -0
  248. mindspore/ops_generate/op_prim_py_generator.py +480 -0
  249. mindspore/ops_generate/op_proto.py +373 -108
  250. mindspore/ops_generate/op_template_parser.py +436 -0
  251. mindspore/ops_generate/ops_def_cc_generator.py +288 -0
  252. mindspore/ops_generate/ops_def_h_generator.py +74 -0
  253. mindspore/ops_generate/ops_name_h_generator.py +68 -0
  254. mindspore/ops_generate/ops_primitive_h_generator.py +81 -0
  255. mindspore/ops_generate/pyboost_functions_cpp_generator.py +370 -0
  256. mindspore/ops_generate/pyboost_functions_h_generator.py +68 -0
  257. mindspore/ops_generate/pyboost_functions_py_generator.py +148 -0
  258. mindspore/ops_generate/pyboost_grad_function_cpp_generator.py +154 -0
  259. mindspore/ops_generate/pyboost_inner_prim_generator.py +131 -0
  260. mindspore/ops_generate/pyboost_native_grad_functions_generator.py +268 -0
  261. mindspore/ops_generate/pyboost_op_cpp_code_generator.py +851 -0
  262. mindspore/ops_generate/pyboost_overload_functions_cpp_generator.py +344 -0
  263. mindspore/ops_generate/pyboost_utils.py +92 -33
  264. mindspore/ops_generate/template.py +294 -44
  265. mindspore/ops_generate/tensor_func_reg_cpp_generator.py +422 -0
  266. mindspore/parallel/__init__.py +3 -3
  267. mindspore/parallel/_auto_parallel_context.py +44 -34
  268. mindspore/parallel/_cell_wrapper.py +22 -3
  269. mindspore/parallel/_parallel_serialization.py +13 -2
  270. mindspore/parallel/_utils.py +4 -2
  271. mindspore/parallel/algo_parameter_config.py +1 -1
  272. mindspore/parallel/checkpoint_transform.py +44 -0
  273. mindspore/parallel/cluster/process_entity/_api.py +131 -37
  274. mindspore/parallel/cluster/process_entity/_utils.py +41 -6
  275. mindspore/parallel/cluster/run.py +20 -3
  276. mindspore/parallel/parameter_broadcast.py +1 -1
  277. mindspore/parallel/shard.py +3 -0
  278. mindspore/parallel/transform_safetensors.py +119 -253
  279. mindspore/pgodb140.dll +0 -0
  280. mindspore/pgort140.dll +0 -0
  281. mindspore/profiler/__init__.py +17 -4
  282. mindspore/profiler/analysis/__init__.py +0 -0
  283. mindspore/profiler/analysis/parser/__init__.py +0 -0
  284. mindspore/profiler/analysis/parser/ascend_cann_parser.py +166 -0
  285. mindspore/profiler/analysis/parser/base_parser.py +158 -0
  286. mindspore/profiler/analysis/parser/framework_cann_relation_parser.py +45 -0
  287. mindspore/profiler/analysis/parser/ms_framework_parser.py +142 -0
  288. mindspore/profiler/analysis/parser/ms_minddata_parser.py +145 -0
  289. mindspore/profiler/analysis/parser/timeline_assembly_factory/__init__.py +0 -0
  290. mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +261 -0
  291. mindspore/profiler/analysis/parser/timeline_assembly_factory/base_timeline_assembler.py +40 -0
  292. mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +84 -0
  293. mindspore/profiler/analysis/parser/timeline_creator/__init__.py +0 -0
  294. mindspore/profiler/analysis/parser/timeline_creator/base_timeline_creator.py +44 -0
  295. mindspore/profiler/analysis/parser/timeline_creator/cpu_op_timeline_creator.py +90 -0
  296. mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +76 -0
  297. mindspore/profiler/analysis/parser/timeline_creator/msprof_timeline_creator.py +103 -0
  298. mindspore/profiler/analysis/parser/timeline_creator/scope_layer_timeline_creator.py +134 -0
  299. mindspore/profiler/analysis/parser/timeline_event/__init__.py +0 -0
  300. mindspore/profiler/analysis/parser/timeline_event/base_event.py +233 -0
  301. mindspore/profiler/analysis/parser/timeline_event/cpu_op_event.py +47 -0
  302. mindspore/profiler/analysis/parser/timeline_event/flow_event.py +36 -0
  303. mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +260 -0
  304. mindspore/profiler/analysis/parser/timeline_event/msprof_event.py +73 -0
  305. mindspore/profiler/analysis/parser/timeline_event/scope_layer_event.py +53 -0
  306. mindspore/profiler/analysis/parser/timeline_event/timeline_event_pool.py +146 -0
  307. mindspore/profiler/analysis/task_manager.py +131 -0
  308. mindspore/profiler/analysis/time_converter.py +84 -0
  309. mindspore/profiler/analysis/viewer/__init__.py +0 -0
  310. mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +333 -0
  311. mindspore/profiler/analysis/viewer/ascend_integrate_viewer.py +87 -0
  312. mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +252 -0
  313. mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +313 -0
  314. mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +322 -0
  315. mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +265 -0
  316. mindspore/profiler/analysis/viewer/ascend_timeline_viewer.py +58 -0
  317. mindspore/profiler/analysis/viewer/base_viewer.py +26 -0
  318. mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +97 -0
  319. mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +581 -0
  320. mindspore/profiler/analysis/work_flow.py +73 -0
  321. mindspore/profiler/common/ascend_msprof_exporter.py +138 -0
  322. mindspore/profiler/common/command_executor.py +90 -0
  323. mindspore/profiler/common/constant.py +174 -3
  324. mindspore/profiler/common/file_manager.py +208 -0
  325. mindspore/profiler/common/log.py +130 -0
  326. mindspore/profiler/common/msprof_cmd_tool.py +202 -0
  327. mindspore/profiler/common/path_manager.py +371 -0
  328. mindspore/profiler/common/process_bar.py +168 -0
  329. mindspore/profiler/common/process_pool.py +9 -3
  330. mindspore/profiler/common/profiler_context.py +476 -0
  331. mindspore/profiler/common/profiler_info.py +304 -0
  332. mindspore/profiler/common/profiler_output_path.py +284 -0
  333. mindspore/profiler/common/profiler_parameters.py +210 -0
  334. mindspore/profiler/common/profiler_path_manager.py +120 -0
  335. mindspore/profiler/common/record_function.py +76 -0
  336. mindspore/profiler/common/tlv_decoder.py +76 -0
  337. mindspore/profiler/common/util.py +75 -2
  338. mindspore/profiler/dynamic_profiler.py +270 -37
  339. mindspore/profiler/envprofiler.py +138 -0
  340. mindspore/profiler/mstx.py +199 -0
  341. mindspore/profiler/platform/__init__.py +21 -0
  342. mindspore/profiler/platform/base_profiler.py +40 -0
  343. mindspore/profiler/platform/cpu_profiler.py +124 -0
  344. mindspore/profiler/platform/gpu_profiler.py +74 -0
  345. mindspore/profiler/platform/npu_profiler.py +309 -0
  346. mindspore/profiler/profiler.py +580 -93
  347. mindspore/profiler/profiler_action_controller.py +187 -0
  348. mindspore/profiler/profiler_interface.py +114 -0
  349. mindspore/profiler/schedule.py +208 -0
  350. mindspore/rewrite/api/symbol_tree.py +1 -2
  351. mindspore/run_check/_check_version.py +18 -13
  352. mindspore/runtime/__init__.py +37 -0
  353. mindspore/runtime/device.py +27 -0
  354. mindspore/runtime/event.py +209 -0
  355. mindspore/runtime/executor.py +148 -0
  356. mindspore/runtime/memory.py +392 -0
  357. mindspore/runtime/stream.py +460 -0
  358. mindspore/runtime/thread_bind_core.py +401 -0
  359. mindspore/swresample-4.dll +0 -0
  360. mindspore/swscale-6.dll +0 -0
  361. mindspore/tbbmalloc.dll +0 -0
  362. mindspore/tinyxml2.dll +0 -0
  363. mindspore/train/__init__.py +2 -2
  364. mindspore/train/_utils.py +53 -18
  365. mindspore/train/amp.py +8 -4
  366. mindspore/train/callback/_checkpoint.py +32 -18
  367. mindspore/train/callback/_early_stop.py +1 -1
  368. mindspore/train/callback/_flops_collector.py +105 -69
  369. mindspore/train/callback/_history.py +1 -1
  370. mindspore/train/callback/_summary_collector.py +44 -6
  371. mindspore/train/callback/_tft_register.py +37 -15
  372. mindspore/train/dataset_helper.py +11 -11
  373. mindspore/train/metrics/precision.py +4 -5
  374. mindspore/train/mind_ir_pb2.py +167 -46
  375. mindspore/train/model.py +13 -14
  376. mindspore/train/serialization.py +461 -72
  377. mindspore/train/summary/summary_record.py +1 -2
  378. mindspore/train/train_thor/model_thor.py +1 -1
  379. mindspore/turbojpeg.dll +0 -0
  380. mindspore/utils/__init__.py +4 -2
  381. mindspore/utils/dryrun.py +138 -0
  382. mindspore/utils/runtime_execution_order_check.py +550 -0
  383. mindspore/vcmeta.dll +0 -0
  384. mindspore/vcruntime140.dll +0 -0
  385. mindspore/vcruntime140_1.dll +0 -0
  386. mindspore/version.py +1 -1
  387. {mindspore-2.4.1.dist-info → mindspore-2.5.0.dist-info}/METADATA +3 -4
  388. {mindspore-2.4.1.dist-info → mindspore-2.5.0.dist-info}/RECORD +391 -265
  389. {mindspore-2.4.1.dist-info → mindspore-2.5.0.dist-info}/entry_points.txt +1 -1
  390. mindspore/common/_tensor_overload.py +0 -139
  391. mindspore/mindspore_np_dtype.dll +0 -0
  392. mindspore/profiler/envprofiling.py +0 -254
  393. mindspore/profiler/profiling.py +0 -1926
  394. {mindspore-2.4.1.dist-info → mindspore-2.5.0.dist-info}/WHEEL +0 -0
  395. {mindspore-2.4.1.dist-info → mindspore-2.5.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,134 @@
1
+ # Copyright 2024 Huawei Technologies Co., Ltd
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ============================================================================
15
+
16
+ """Device manager interfaces."""
17
+
18
+ import os
19
+ from mindspore import log as logger
20
+ from mindspore._c_expression import DeviceManagerConf, DeviceContextManager, MSContext, CollectiveManager
21
+ from mindspore._checkparam import args_type_check
22
+ from mindspore.parallel._ps_context import _need_reset_device_target_for_ps
23
+
24
+ __all__ = ['set_device', 'set_deterministic']
25
+
26
+
27
+ @args_type_check(device_target=str, device_id=int)
28
+ def set_device(device_target, device_id=None):
29
+ """
30
+ Set device target and device id for running environment.
31
+
32
+ Note:
33
+ - The `device_target` must be set in the ["CPU", "GPU", "Ascend"], there is no default value.
34
+ - Suggest setting `device_target` and `device_id` before calling :func:`mindspore.communication.init`.
35
+
36
+ Args:
37
+ device_target (str): The target device to run, only support "Ascend", "GPU", and "CPU".
38
+ device_id (int): ID of the target device, the value must be in [0, device_num_per_host-1].
39
+ The frame will set different default behaviours according to the scenario:
40
+ if it is a single-card scenario, the frame will be set to 0.
41
+ In a distributed scenario where msrun is started, the framework will
42
+ automatically negotiate the available device_id values.
43
+ In a distributed scenario with other startup methods, the frame is set to 0.
44
+ "device_num_per_host" refers to the total number of devices on the host.
45
+
46
+ Examples:
47
+ >>> import mindspore as ms
48
+ >>> ms.set_device("Ascend", 1)
49
+ """
50
+ valid_targets = ["CPU", "GPU", "Ascend"]
51
+ if device_target not in valid_targets:
52
+ raise ValueError(f"The argument 'device_target' must be one of {valid_targets}, but got {device_target}.")
53
+ # If in Parameter Server mode, Ascend card should not be used by server and scheduler.
54
+ if _need_reset_device_target_for_ps(device_target):
55
+ logger.info("Reset device target to CPU when set_device.")
56
+ device_target = "CPU"
57
+
58
+ is_default = False
59
+ if device_id is None:
60
+ device_id = 0
61
+ is_default = True
62
+ if device_id < 0:
63
+ raise ValueError("The device id must bigger than or equal to 0.")
64
+
65
+ MSContext.get_instance().set_device_target_inner(device_target)
66
+
67
+ if DeviceManagerConf.get_instance().is_device_enable():
68
+ old_device_target = DeviceManagerConf.get_instance().get_device_target()
69
+ old_device_id = DeviceManagerConf.get_instance().get_device_id()
70
+ if old_device_target != device_target or old_device_id != device_id:
71
+ raise RuntimeError("The 'mindspore.set_device' can not be modified.")
72
+ return
73
+
74
+ device_context = DeviceContextManager.get_instance().get_device_context(device_target)
75
+ if device_context is not None and device_context.initialized():
76
+ raise RuntimeError("The runtime has been initialized, please set it before the kernel is executed, "
77
+ "or before calling 'mindspore.communication.init()'. "
78
+ "Suggest setting it as early as possible.")
79
+ DeviceManagerConf.get_instance().set_device(device_target, device_id, is_default)
80
+
81
+
82
+ @args_type_check(deterministic=bool)
83
+ def set_deterministic(deterministic):
84
+ """
85
+ Enables or disables deterministic computing.
86
+
87
+ When deterministic computing is enabled, the same output is generated if an operator is executed
88
+ for multiple times with the same hardware and input.This often slows down operator execution.
89
+ In distributed scenario, we suggest user to set deterministic mode before
90
+ calling :func:`mindspore.communication.init` to enable deterministic operation for
91
+ communication operators in the global communication group.
92
+
93
+ The framework not enabled deterministic computation by default.
94
+
95
+ Args:
96
+ deterministic (bool): Whether to enable deterministic computing.
97
+
98
+ Examples:
99
+ >>> import mindspore as ms
100
+ >>> ms.set_deterministic(True)
101
+ """
102
+ # Check the configuration environment whether valid.
103
+ if DeviceManagerConf.get_instance().is_deterministic_configured():
104
+ raise RuntimeError("The 'mindspore.set_deterministic' can not be set repeatedly.")
105
+
106
+ # Must wait for all async created groups to be initialized so that
107
+ # deterministic feature could be consistent between all processes.
108
+ CollectiveManager.get_instance().wait_all_comm_init()
109
+
110
+ # Check the hccl_deterministic and te_parallel_compiler.
111
+ hccl_deterministic = os.getenv("HCCL_DETERMINISTIC")
112
+ te_parallel_compiler = os.getenv("TE_PARALLEL_COMPILER")
113
+ if deterministic:
114
+ if hccl_deterministic and hccl_deterministic != "true":
115
+ logger.warning(f"Environment 'HCCL_DETERMINISTIC' should be 'true' when set deterministic='True', but "
116
+ f"got '{hccl_deterministic}'. 'HCCL_DETERMINISTIC' will be set to 'true'.")
117
+ if te_parallel_compiler and te_parallel_compiler != "1":
118
+ logger.warning(f"Environment 'TE_PARALLEL_COMPILER' should be '1' when set deterministic='True', but "
119
+ f"got '{te_parallel_compiler}'. 'TE_PARALLEL_COMPILER' will be set to '1'.")
120
+ os.environ["HCCL_DETERMINISTIC"] = "true"
121
+ os.environ["TE_PARALLEL_COMPILER"] = "1"
122
+ else:
123
+ if hccl_deterministic and hccl_deterministic != "false":
124
+ logger.warning(f"Environment 'HCCL_DETERMINISTIC' should not be set or be 'false' when set "
125
+ f"deterministic='False', but got '{hccl_deterministic}'. 'HCCL_DETERMINISTIC' "
126
+ f"will be unset.")
127
+ del os.environ["HCCL_DETERMINISTIC"]
128
+ if te_parallel_compiler and te_parallel_compiler != "0":
129
+ logger.warning(f"Environment 'TE_PARALLEL_COMPILER' should not be set or be '0' when set "
130
+ f"deterministic='False', but got '{te_parallel_compiler}'. 'TE_PARALLEL_COMPILER' "
131
+ f"will be unset.")
132
+ del os.environ["TE_PARALLEL_COMPILER"]
133
+
134
+ DeviceManagerConf.get_instance().set_deterministic(deterministic)
mindspore/dnnl.dll CHANGED
Binary file
mindspore/dpcmi.dll CHANGED
Binary file
@@ -15,7 +15,8 @@
15
15
  """LlmBoost Register"""
16
16
  from __future__ import absolute_import
17
17
 
18
- from mindspore.experimental.llm_boost.atb import *
18
+ from mindspore.experimental.llm_boost.atb import LlamaBoost, QwenBoost
19
+ from mindspore.experimental.llm_boost.ascend_native import *
19
20
  from mindspore.experimental.llm_boost.register import LlmBoostRegister
20
21
 
21
- __all__ = ['LlmBoostRegister']
22
+ __all__ = ["LlmBoostRegister"]
@@ -0,0 +1,22 @@
1
+ # Copyright 2024 Huawei Technologies Co., Ltd
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ============================================================================
15
+ """
16
+ Provide llm boost for inference, such as LlamaBoost.
17
+ """
18
+ from __future__ import absolute_import
19
+
20
+ from mindspore.experimental.llm_boost.ascend_native.llama_boost_ascend_native import LlamaBoostAscendNative
21
+
22
+ __all__ = ['LlamaBoostAscendNative']
@@ -0,0 +1,211 @@
1
+ # Copyright 2024 Huawei Technologies Co., Ltd
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ============================================================================
15
+ """AscendNative Llama Boost APIs."""
16
+
17
+ import os
18
+ import numpy as np
19
+ from mindspore.common import Tensor, dtype
20
+ from mindspore.experimental.llm_boost.ascend_native.llm_boost import LLMBoost
21
+ from mindspore.experimental.llm_boost.register import LlmBoostRegister, LlmBoostType
22
+
23
+
24
+ def RoundUp(val: int, align: int) -> int:
25
+ if align == 0:
26
+ return 0
27
+ return -(val // -align) * align
28
+
29
+
30
+ def ConvertTensor(nd_mat: np.ndarray, transpose: bool = True, nd2nz: bool = True) -> np.ndarray:
31
+ """ Transforms tensor format from Nd to Nz """
32
+ if transpose:
33
+ nd_mat = np.transpose(nd_mat)
34
+ if not nd2nz:
35
+ return nd_mat
36
+ block_size = (16, 16)
37
+ r = RoundUp(nd_mat.shape[0], block_size[0])
38
+ c = RoundUp(nd_mat.shape[1], block_size[1])
39
+ r_pad = r - nd_mat.shape[0]
40
+ c_pad = c - nd_mat.shape[1]
41
+ nd_mat = np.pad(nd_mat, ((0, r_pad), (0, c_pad)))
42
+ nz_mat = np.transpose(np.reshape(
43
+ nd_mat, (r, c // block_size[1], block_size[1])), (1, 0, 2))
44
+ nz_mat = nz_mat.reshape(r, c)
45
+ return nz_mat
46
+
47
+
48
+ @LlmBoostRegister.register(LlmBoostType.ASCEND_NATIVE, "Llama")
49
+ class LlamaBoostAscendNative(LLMBoost):
50
+ r"""
51
+ Implements an Llama model in a single kernel.
52
+ it forwards the python functions to the C++ binded object
53
+ """
54
+ def _get_from_dict(self, dictionary, name):
55
+ """ internal function to get a specific tensor from the dictionary """
56
+ all_relevant_layers = [value for key, value in dictionary.items() if name in key]
57
+ if all_relevant_layers:
58
+ return all_relevant_layers[0].asnumpy()
59
+ return None
60
+
61
+ def _get_quant_triplet_from_dict(self, dictionary, name):
62
+ """ internal function to get a weight triple tensor from the dictionary """
63
+ weights = self._get_from_dict(dictionary, name + "._handler.weight")
64
+ scale = self._get_from_dict(dictionary, name + "._weight_quantizer.scale")
65
+ offset = self._get_from_dict(dictionary, name + "._weight_quantizer.zp_neg")
66
+ return weights, scale, offset
67
+
68
+ def _prepare_single_layer(self, ckpt, config, id):
69
+ """ prepares the dictionary of weights of a single layer """
70
+ prefix = 'model.layers.' + str(id)
71
+ is_last = (id == config.num_layers-1)
72
+ layer = 'layers.' + str(id) + '.'
73
+ l_dict = {key: value for key, value in ckpt.items() if layer in key}
74
+ if config.n_kv_heads is None:
75
+ config.n_kv_heads = config.num_heads
76
+ start = 0
77
+ end = config.hidden_size
78
+ kv_start = 0
79
+ kv_end = int(config.hidden_size*config.n_kv_heads/config.num_heads)
80
+ ffn_hid = [value for key, value in l_dict.items() if "w3" in key][0].shape[0]
81
+ ffn_start = 0
82
+ ffn_end = ffn_hid
83
+ rank_size = int(os.getenv('RANK_SIZE', '1'))
84
+ #Emir if (config.parallel_mode != 2): # 2 - AUTO_PARALLEL
85
+ hid_size = end
86
+ kv_hid_size = kv_end
87
+ embed_size = config.vocab_size
88
+ rank_id = int(os.getenv('RANK_ID', '0'))
89
+ if (hid_size % rank_size == 0) and (ffn_hid % rank_size == 0) and (embed_size % rank_size == 0):
90
+ start = int(rank_id * hid_size / rank_size)
91
+ end = int((rank_id + 1) * hid_size / rank_size)
92
+ kv_start = int(rank_id * kv_hid_size / rank_size)
93
+ kv_end = int((rank_id + 1) * kv_hid_size / rank_size)
94
+ ffn_start = int(rank_id * ffn_hid / rank_size)
95
+ ffn_end = int((rank_id + 1) * ffn_hid / rank_size)
96
+ else:
97
+ raise RuntimeError("hidden size and ffn hidden size must be divided by rank size without remainder. \
98
+ hidden_size: ", hid_size, " ffn_hidden_size: ", ffn_hid, " rank_size: ", rank_size)
99
+ quant = (self._get_from_dict(l_dict, "_weight_quantizer") is not None)
100
+ unite_qkv = (config.num_heads == config.n_kv_heads)
101
+ self.dictionary[prefix + ".attention_norm.weight"] = \
102
+ Tensor(self._get_from_dict(l_dict, "attention_norm"), dtype=dtype.float16)
103
+ self.dictionary[prefix + ".ffn_norm.weight"] = \
104
+ Tensor(self._get_from_dict(l_dict, "ffn_norm"), dtype=dtype.float16)
105
+ if is_last:
106
+ self.dictionary['lm_head.weight'] = Tensor(ConvertTensor(ckpt['lm_head.weight'].asnumpy()[:, start:end]))
107
+
108
+ if not quant:
109
+ self._pack_attn_weights(l_dict, prefix, start, end, kv_start, kv_end, unite_qkv)
110
+ self._pack_ffn_weights(l_dict, prefix, ffn_start, ffn_end)
111
+ else:
112
+ self._pack_attn_quant_weights(l_dict, prefix, start, end, kv_start, kv_end, unite_qkv)
113
+ self._pack_ffn_quant_weights(l_dict, prefix, ffn_start, ffn_end)
114
+
115
+ def _pack_attn_weights(self, l_dict, prefix, start, end, kv_start, kv_end, unite_qkv):
116
+ """ prepares the dictionary of weights of an attention block """
117
+ wq = self._get_from_dict(l_dict, "wq")[start:end, :]
118
+ wk = self._get_from_dict(l_dict, "wk")[kv_start:kv_end, :]
119
+ wv = self._get_from_dict(l_dict, "wv")[kv_start:kv_end, :]
120
+ self.dictionary[prefix + ".attention.wo.weight"] = \
121
+ Tensor(ConvertTensor(self._get_from_dict(l_dict, "wo")[:, start:end]))
122
+ if unite_qkv:
123
+ self.dictionary[prefix + ".attention.wqkv.weight"] = Tensor(ConvertTensor(np.concatenate((wq, wk, wv))))
124
+ else:
125
+ self.dictionary[prefix + ".attention.wq.weight"] = Tensor(ConvertTensor(wq))
126
+ self.dictionary[prefix + ".attention.wkv.weight"] = Tensor(ConvertTensor(np.concatenate((wk, wv))))
127
+
128
+ def _pack_ffn_weights(self, l_dict, prefix, ffn_start, ffn_end):
129
+ """ prepares the dictionary of weights of an ffn block """
130
+ self.dictionary[prefix + ".feed_forward.w2.weight"] = \
131
+ Tensor(ConvertTensor(self._get_from_dict(l_dict, "w2")[:, ffn_start:ffn_end]))
132
+ w1 = self._get_from_dict(l_dict, "w1")[ffn_start:ffn_end, :]
133
+ w3 = self._get_from_dict(l_dict, "w3")[ffn_start:ffn_end, :]
134
+ self.dictionary[prefix + ".feed_forward.w13.weight"] = Tensor(ConvertTensor(np.concatenate((w1, w3))))
135
+
136
+ def _pack_attn_quant_weights(self, l_dict, prefix, start, end, kv_start, kv_end, unite_qkv):
137
+ """ prepares the dictionary of weights of a quantized attention block """
138
+ wq, wq_scale, wq_offset = self._get_quant_triplet_from_dict(l_dict, "wq")
139
+ wk, wk_scale, wk_offset = self._get_quant_triplet_from_dict(l_dict, "wk")
140
+ wv, wv_scale, wv_offset = self._get_quant_triplet_from_dict(l_dict, "wv")
141
+ wo, wo_scale, wo_offset = self._get_quant_triplet_from_dict(l_dict, "wo")
142
+ self.dictionary[prefix + ".attention.wo.weight"] = Tensor(ConvertTensor(wo[:, start:end], nd2nz=False))
143
+ self.dictionary[prefix + ".attention.wo.weight.scale"] = Tensor(wo_scale[start:end])
144
+ self.dictionary[prefix + ".attention.wo.weight.offset"] = Tensor(wo_offset[start:end])
145
+
146
+ if unite_qkv:
147
+ self.dictionary[prefix + ".attention.wqkv.weight"] = \
148
+ Tensor(ConvertTensor(np.concatenate((wq[start:end, :], wk[kv_start:kv_end, :], wv[kv_start:kv_end, :])),
149
+ nd2nz=False))
150
+ self.dictionary[prefix + ".attention.wqkv.weight.scale"] = \
151
+ Tensor(np.concatenate((wq_scale[start:end], wk_scale[kv_start:kv_end], wv_scale[kv_start:kv_end])))
152
+ self.dictionary[prefix + ".attention.wqkv.weight.offset"] = \
153
+ Tensor(np.concatenate((wq_offset[start:end], wk_offset[kv_start:kv_end], wv_offset[kv_start:kv_end])))
154
+ else:
155
+ self.dictionary[prefix + ".attention.wq.weight"] = Tensor(ConvertTensor(wq[start:end, :], nd2nz=False))
156
+ self.dictionary[prefix + ".attention.wq.weight.scale"] = Tensor(wq_scale[start:end])
157
+ self.dictionary[prefix + ".attention.wq.weight.offset"] = Tensor(wq_offset[start:end])
158
+ self.dictionary[prefix + ".attention.wkv.weight"] = \
159
+ Tensor(ConvertTensor(np.concatenate((wk[kv_start:kv_end, :], wv[kv_start:kv_end, :])), nd2nz=False))
160
+ self.dictionary[prefix + ".attention.wkv.weight.scale"] = \
161
+ Tensor(np.concatenate((wk_scale[kv_start:kv_end], wv_scale[kv_start:kv_end])))
162
+ self.dictionary[prefix + ".attention.wkv.weight.offset"] = \
163
+ Tensor(np.concatenate((wk_offset[kv_start:kv_end], wv_offset[kv_start:kv_end])))
164
+
165
+ def _pack_ffn_quant_weights(self, l_dict, prefix, ffn_start, ffn_end):
166
+ """ prepares the dictionary of weights of a quantized ffn block """
167
+ w1, w1_scale, w1_offset = self._get_quant_triplet_from_dict(l_dict, "w1")
168
+ w2, w2_scale, w2_offset = self._get_quant_triplet_from_dict(l_dict, "w2")
169
+ w3, w3_scale, w3_offset = self._get_quant_triplet_from_dict(l_dict, "w3")
170
+ self.dictionary[prefix + ".feed_forward.w2.weight"] = Tensor(ConvertTensor(w2[:, ffn_start:ffn_end],
171
+ nd2nz=False))
172
+ self.dictionary[prefix + ".feed_forward.w2.weight.scale"] = Tensor(w2_scale[ffn_start:ffn_end])
173
+ self.dictionary[prefix + ".feed_forward.w2.weight.offset"] = Tensor(w2_offset[ffn_start:ffn_end])
174
+
175
+ self.dictionary[prefix + ".feed_forward.w13.weight"] = \
176
+ Tensor(ConvertTensor(np.concatenate((w1[ffn_start:ffn_end, :], w3[ffn_start:ffn_end, :])), nd2nz=False))
177
+ self.dictionary[prefix + ".feed_forward.w13.weight.scale"] = \
178
+ Tensor(np.concatenate((w1_scale[ffn_start:ffn_end], w3_scale[ffn_start:ffn_end])))
179
+ self.dictionary[prefix + ".feed_forward.w13.weight.offset"] = \
180
+ Tensor(np.concatenate((w1_offset[ffn_start:ffn_end], w3_offset[ffn_start:ffn_end])))
181
+
182
+ def _prepare_cos_sin_arrays(self, config, theta=10000):
183
+ """ prepares the cosine and sine arrays """
184
+ head_dim = config.hidden_size // config.num_heads
185
+ max_position_embedding = \
186
+ config.max_position_embedding if config.max_position_embedding is not None else config.seq_length
187
+ freqs_base = np.arange(0, head_dim, 2)[: (head_dim // 2)].astype(np.float32)
188
+ freqs = 1.0 / (theta ** (freqs_base / head_dim))
189
+ t = np.arange(0, max_position_embedding, 1).astype(np.float32)
190
+ freqs = np.outer(t, freqs)
191
+ emb = np.concatenate((freqs, freqs), axis=-1)
192
+ freqs_cos = Tensor(np.cos(emb), dtype=dtype.float16)
193
+ sin = np.sin(emb)
194
+
195
+ sin[:, :int(emb.shape[1]/2)] = -sin[:, :int(emb.shape[1]/2)]
196
+ self.dictionary['model.cos.weight'] = freqs_cos
197
+ freqs_sin = Tensor(sin, dtype=dtype.float16)
198
+ self.dictionary['model.sin.weight'] = freqs_sin
199
+
200
+ def set_weights(self, ckpt_dict):
201
+ """ load the checkpoint """
202
+ self.dictionary = {}
203
+ self.dictionary['model.tok_embeddings.embedding_weight'] = \
204
+ Tensor(ckpt_dict['model.tok_embeddings.embedding_weight'].asnumpy())
205
+ self.dictionary['model.norm_out.weight'] = \
206
+ Tensor(ckpt_dict['model.norm_out.weight'].asnumpy(), dtype=dtype.float16)
207
+ self._prepare_cos_sin_arrays(self.config)
208
+ for layer_id in range(self.config.num_layers):
209
+ self._prepare_single_layer(ckpt_dict, self.config, layer_id)
210
+
211
+ self.binder.set_weights_map(self.dictionary)
@@ -0,0 +1,52 @@
1
+ # Copyright 2024 Huawei Technologies Co., Ltd
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ============================================================================
15
+ """LLMBoost APIs."""
16
+
17
+ from mindspore.common import Tensor
18
+
19
+ class LLMBoost():
20
+ r"""
21
+ Implements an LLM in a single kernel.
22
+ it forwards the python function to the C++ binded object
23
+ """
24
+ def __init__(self, config):
25
+ r"""
26
+ initialize the parameters of the llm binder.
27
+ config is simply the config object of the model
28
+ """
29
+ from mindspore._c_expression import LlmBoostBinder
30
+ self.config = config
31
+ self.binder = LlmBoostBinder("AscendNative", config.model_type)
32
+ self.binder.init_model(config.to_dict())
33
+
34
+ def init(self):
35
+ """
36
+ Initialize the object
37
+ returns True if object needs input manipulation by mindformers
38
+ """
39
+ return False
40
+
41
+ def set_kvcache(self, k_caches=None, v_caches=None):
42
+ return
43
+
44
+ def forward(self, input_ids, batch_valid_length, position_ids=None):
45
+ ret = self.binder.forward([input_ids, batch_valid_length], "nothing really")
46
+ return Tensor(ret[0])
47
+
48
+ def set_weights(self, ckpt_dict):
49
+ self.binder.set_weights_map(ckpt_dict)
50
+
51
+ def add_flags(self, is_first_iteration=False):
52
+ self.binder.add_flags(is_first_iteration=is_first_iteration)