mindspore 2.4.10__cp310-cp310-win_amd64.whl → 2.6.0__cp310-cp310-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.
- mindspore/.commit_id +1 -1
- mindspore/Microsoft.VisualStudio.Telemetry.dll +0 -0
- mindspore/Newtonsoft.Json.dll +0 -0
- mindspore/__init__.py +13 -6
- mindspore/_c_dataengine.cp310-win_amd64.pyd +0 -0
- mindspore/_c_expression.cp310-win_amd64.pyd +0 -0
- mindspore/_c_mindrecord.cp310-win_amd64.pyd +0 -0
- mindspore/_check_jit_forbidden_api.py +3 -0
- mindspore/_checkparam.py +3 -38
- mindspore/_deprecated/__init__.py +17 -0
- mindspore/_deprecated/jit.py +198 -0
- mindspore/_extends/builtin_operations.py +1 -1
- mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +1 -1
- mindspore/_extends/parse/__init__.py +6 -7
- mindspore/_extends/parse/compile_config.py +83 -0
- mindspore/_extends/parse/deprecated/__init__.py +0 -0
- mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +394 -0
- mindspore/_extends/parse/jit_fallback_modules/__init__.py +0 -0
- mindspore/_extends/parse/jit_fallback_modules/check_utils.py +123 -0
- mindspore/_extends/parse/jit_fallback_modules/third_party_modules.py +50 -0
- mindspore/_extends/parse/parser.py +47 -198
- mindspore/_extends/parse/resources.py +1 -5
- mindspore/_extends/parse/standard_method.py +229 -99
- mindspore/_extends/pijit/__init__.py +2 -2
- mindspore/_extends/pijit/pijit_func_white_list.py +17 -12
- mindspore/_extends/pijit/tensor_func_list.py +27 -0
- mindspore/_extends/utils.py +1 -1
- mindspore/amp.py +11 -5
- mindspore/atlprov.dll +0 -0
- mindspore/avcodec-59.dll +0 -0
- mindspore/avdevice-59.dll +0 -0
- mindspore/avfilter-8.dll +0 -0
- mindspore/avformat-59.dll +0 -0
- mindspore/avutil-57.dll +0 -0
- mindspore/boost/__init__.py +2 -2
- mindspore/boost/base.py +3 -7
- mindspore/boost/boost_cell_wrapper.py +138 -43
- mindspore/c1.dll +0 -0
- mindspore/c1xx.dll +0 -0
- mindspore/c2.dll +0 -0
- mindspore/common/__init__.py +6 -3
- mindspore/common/_grad_function.py +56 -0
- mindspore/common/_pijit_context.py +14 -5
- mindspore/common/_register_for_tensor.py +1 -2
- mindspore/common/_stub_tensor.py +30 -14
- mindspore/common/_tensor_cpp_method.py +17 -0
- mindspore/common/_tensor_docs.py +4760 -0
- mindspore/common/api.py +480 -372
- mindspore/common/auto_dynamic_shape.py +41 -44
- mindspore/common/dtype.py +39 -36
- mindspore/common/dump.py +9 -6
- mindspore/common/file_system.py +9 -1
- mindspore/common/generator.py +5 -0
- mindspore/common/hook_handle.py +6 -2
- mindspore/common/initializer.py +13 -10
- mindspore/common/jit_begin_end.py +94 -0
- mindspore/common/jit_config.py +6 -1
- mindspore/common/jit_context.py +76 -0
- mindspore/common/jit_trace.py +378 -0
- mindspore/common/lazy_inline.py +9 -3
- mindspore/common/mindir_util.py +10 -2
- mindspore/common/mutable.py +5 -4
- mindspore/common/parameter.py +135 -52
- mindspore/common/seed.py +2 -2
- mindspore/common/sparse_tensor.py +23 -17
- mindspore/common/tensor.py +975 -1981
- mindspore/communication/__init__.py +7 -5
- mindspore/communication/_comm_helper.py +52 -2
- mindspore/communication/comm_func.py +240 -181
- mindspore/communication/management.py +95 -26
- mindspore/context.py +324 -573
- mindspore/dataset/__init__.py +65 -37
- mindspore/dataset/audio/__init__.py +2 -8
- mindspore/dataset/audio/transforms.py +3 -17
- mindspore/dataset/callback/ds_callback.py +2 -1
- mindspore/dataset/core/config.py +87 -6
- mindspore/dataset/engine/cache_admin.py +3 -3
- mindspore/dataset/engine/cache_client.py +6 -5
- mindspore/dataset/engine/datasets.py +292 -267
- mindspore/dataset/engine/datasets_audio.py +22 -8
- mindspore/dataset/engine/datasets_standard_format.py +46 -27
- mindspore/dataset/engine/datasets_text.py +78 -48
- mindspore/dataset/engine/datasets_user_defined.py +183 -117
- mindspore/dataset/engine/datasets_vision.py +120 -44
- mindspore/dataset/engine/iterators.py +283 -63
- mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
- mindspore/dataset/engine/obs/util.py +8 -0
- mindspore/dataset/engine/queue.py +40 -0
- mindspore/dataset/engine/samplers.py +289 -43
- mindspore/dataset/engine/serializer_deserializer.py +3 -2
- mindspore/dataset/engine/validators.py +53 -11
- mindspore/dataset/text/__init__.py +7 -6
- mindspore/dataset/text/transforms.py +6 -5
- mindspore/dataset/text/utils.py +3 -3
- mindspore/dataset/transforms/__init__.py +0 -9
- mindspore/dataset/transforms/py_transforms_util.py +17 -0
- mindspore/dataset/transforms/transforms.py +31 -14
- mindspore/dataset/utils/browse_dataset.py +1 -1
- mindspore/dataset/vision/__init__.py +2 -9
- mindspore/dataset/vision/transforms.py +202 -158
- mindspore/dataset/vision/utils.py +7 -5
- mindspore/dataset/vision/validators.py +1 -2
- mindspore/device_context/__init__.py +21 -0
- mindspore/device_context/ascend/__init__.py +25 -0
- mindspore/device_context/ascend/device.py +72 -0
- mindspore/device_context/ascend/op_debug.py +153 -0
- mindspore/device_context/ascend/op_precision.py +193 -0
- mindspore/device_context/ascend/op_tuning.py +123 -0
- mindspore/{ops_generate/gen_constants.py → device_context/cpu/__init__.py} +6 -17
- mindspore/device_context/cpu/device.py +62 -0
- mindspore/device_context/cpu/op_tuning.py +43 -0
- mindspore/device_context/gpu/__init__.py +21 -0
- mindspore/device_context/gpu/device.py +70 -0
- mindspore/device_context/gpu/op_precision.py +67 -0
- mindspore/device_context/gpu/op_tuning.py +175 -0
- mindspore/device_manager.py +170 -0
- mindspore/dnnl.dll +0 -0
- mindspore/dpcmi.dll +0 -0
- mindspore/experimental/es/embedding_service.py +35 -27
- mindspore/experimental/llm_boost/__init__.py +1 -0
- mindspore/experimental/llm_boost/ascend_native/__init__.py +22 -0
- mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +209 -0
- mindspore/experimental/llm_boost/ascend_native/llm_boost.py +52 -0
- mindspore/experimental/llm_boost/atb/boost_base.py +2 -3
- mindspore/experimental/llm_boost/atb/llama_boost.py +6 -1
- mindspore/experimental/llm_boost/register.py +1 -0
- mindspore/experimental/map_parameter.py +4 -4
- mindspore/experimental/optim/adadelta.py +6 -6
- mindspore/experimental/optim/adagrad.py +4 -4
- mindspore/experimental/optim/adam.py +7 -0
- mindspore/experimental/optim/adamax.py +4 -4
- mindspore/experimental/optim/adamw.py +4 -0
- mindspore/experimental/optim/asgd.py +1 -1
- mindspore/experimental/optim/lr_scheduler.py +73 -46
- mindspore/experimental/optim/radam.py +34 -31
- mindspore/experimental/optim/rprop.py +1 -1
- mindspore/experimental/optim/sgd.py +1 -1
- mindspore/hal/contiguous_tensors_handle.py +6 -10
- mindspore/hal/device.py +55 -53
- mindspore/hal/event.py +52 -52
- mindspore/hal/memory.py +179 -120
- mindspore/hal/stream.py +150 -109
- mindspore/include/api/context.h +0 -1
- mindspore/include/dataset/constants.h +7 -4
- mindspore/include/dataset/execute.h +2 -2
- mindspore/jpeg62.dll +0 -0
- mindspore/log.py +50 -0
- mindspore/mindrecord/__init__.py +21 -8
- mindspore/mindrecord/config.py +17 -316
- mindspore/mindrecord/filereader.py +1 -9
- mindspore/mindrecord/filewriter.py +5 -15
- mindspore/mindrecord/mindpage.py +1 -9
- mindspore/mindspore_backend_common.dll +0 -0
- mindspore/mindspore_backend_manager.dll +0 -0
- mindspore/mindspore_common.dll +0 -0
- mindspore/mindspore_core.dll +0 -0
- mindspore/mindspore_dump.dll +0 -0
- mindspore/mindspore_frontend.dll +0 -0
- mindspore/mindspore_glog.dll +0 -0
- mindspore/mindspore_memory_pool.dll +0 -0
- mindspore/mindspore_ms_backend.dll +0 -0
- mindspore/mindspore_ops.dll +0 -0
- mindspore/{mindspore_backend.dll → mindspore_ops_host.dll} +0 -0
- mindspore/mindspore_ops_kernel_common.dll +0 -0
- mindspore/mindspore_profiler.dll +0 -0
- mindspore/mindspore_pyboost.dll +0 -0
- mindspore/mindspore_pynative.dll +0 -0
- mindspore/mindspore_res_manager.dll +0 -0
- mindspore/mindspore_runtime_pipeline.dll +0 -0
- mindspore/mint/__init__.py +798 -761
- mindspore/mint/distributed/__init__.py +70 -4
- mindspore/mint/distributed/distributed.py +2679 -44
- mindspore/mint/linalg/__init__.py +8 -0
- mindspore/mint/nn/__init__.py +743 -22
- mindspore/mint/nn/functional.py +716 -23
- mindspore/mint/nn/layer/__init__.py +21 -4
- mindspore/mint/nn/layer/_functions.py +334 -0
- mindspore/mint/nn/layer/activation.py +276 -1
- mindspore/mint/nn/layer/basic.py +123 -0
- mindspore/mint/nn/layer/conv.py +933 -0
- mindspore/mint/nn/layer/normalization.py +223 -28
- mindspore/mint/nn/layer/padding.py +797 -0
- mindspore/mint/nn/layer/pooling.py +235 -0
- mindspore/mint/optim/__init__.py +3 -1
- mindspore/mint/optim/adam.py +223 -0
- mindspore/mint/optim/adamw.py +26 -19
- mindspore/mint/optim/sgd.py +171 -0
- mindspore/mint/special/__init__.py +2 -1
- mindspore/msobj140.dll +0 -0
- mindspore/mspdb140.dll +0 -0
- mindspore/mspdbcore.dll +0 -0
- mindspore/mspdbst.dll +0 -0
- mindspore/mspft140.dll +0 -0
- mindspore/msvcdis140.dll +0 -0
- mindspore/msvcp140_1.dll +0 -0
- mindspore/msvcp140_2.dll +0 -0
- mindspore/msvcp140_atomic_wait.dll +0 -0
- mindspore/msvcp140_codecvt_ids.dll +0 -0
- mindspore/multiprocessing/__init__.py +5 -0
- mindspore/nn/__init__.py +4 -1
- mindspore/nn/cell.py +1373 -192
- mindspore/nn/dynamic_lr.py +2 -1
- mindspore/nn/layer/activation.py +29 -27
- mindspore/nn/layer/basic.py +51 -35
- mindspore/nn/layer/channel_shuffle.py +3 -3
- mindspore/nn/layer/container.py +1 -1
- mindspore/nn/layer/conv.py +53 -42
- mindspore/nn/layer/embedding.py +12 -11
- mindspore/nn/layer/normalization.py +56 -49
- mindspore/nn/layer/padding.py +4 -3
- mindspore/nn/layer/pooling.py +120 -42
- mindspore/nn/layer/rnn_cells.py +1 -1
- mindspore/nn/layer/rnns.py +2 -1
- mindspore/nn/layer/timedistributed.py +5 -5
- mindspore/nn/layer/transformer.py +59 -36
- mindspore/nn/learning_rate_schedule.py +8 -4
- mindspore/nn/loss/loss.py +58 -55
- mindspore/nn/optim/ada_grad.py +7 -5
- mindspore/nn/optim/adadelta.py +11 -9
- mindspore/nn/optim/adafactor.py +1 -1
- mindspore/nn/optim/adam.py +19 -15
- mindspore/nn/optim/adamax.py +8 -7
- mindspore/nn/optim/adasum.py +5 -5
- mindspore/nn/optim/asgd.py +3 -1
- mindspore/nn/optim/ftrl.py +11 -9
- mindspore/nn/optim/lamb.py +1 -1
- mindspore/nn/optim/lars.py +1 -4
- mindspore/nn/optim/lazyadam.py +12 -10
- mindspore/nn/optim/momentum.py +7 -6
- mindspore/nn/optim/optimizer.py +3 -3
- mindspore/nn/optim/proximal_ada_grad.py +12 -10
- mindspore/nn/optim/rmsprop.py +13 -12
- mindspore/nn/optim/rprop.py +11 -9
- mindspore/nn/optim/sgd.py +9 -6
- mindspore/nn/optim/tft_wrapper.py +5 -2
- mindspore/nn/optim/thor.py +2 -1
- mindspore/nn/probability/bijector/bijector.py +17 -11
- mindspore/nn/probability/bijector/gumbel_cdf.py +5 -5
- mindspore/nn/probability/bijector/invert.py +2 -2
- mindspore/nn/probability/bijector/scalar_affine.py +3 -3
- mindspore/nn/probability/bijector/softplus.py +3 -2
- mindspore/nn/probability/distribution/beta.py +3 -3
- mindspore/nn/probability/distribution/categorical.py +1 -1
- mindspore/nn/probability/distribution/cauchy.py +4 -2
- mindspore/nn/probability/distribution/exponential.py +6 -7
- mindspore/nn/probability/distribution/gamma.py +2 -2
- mindspore/nn/probability/distribution/gumbel.py +2 -2
- mindspore/nn/probability/distribution/half_normal.py +5 -3
- mindspore/nn/probability/distribution/logistic.py +5 -3
- mindspore/nn/probability/distribution/poisson.py +1 -1
- mindspore/nn/probability/distribution/uniform.py +5 -3
- mindspore/nn/reinforcement/_tensors_queue.py +1 -1
- mindspore/nn/reinforcement/tensor_array.py +1 -1
- mindspore/nn/utils/init.py +13 -11
- mindspore/nn/wrap/__init__.py +6 -6
- mindspore/nn/wrap/cell_wrapper.py +181 -122
- mindspore/nn/wrap/grad_reducer.py +45 -36
- mindspore/nn/wrap/loss_scale.py +6 -7
- mindspore/numpy/array_creations.py +63 -65
- mindspore/numpy/array_ops.py +149 -144
- mindspore/numpy/logic_ops.py +41 -42
- mindspore/numpy/math_ops.py +361 -359
- mindspore/numpy/utils.py +17 -18
- mindspore/numpy/utils_const.py +5 -6
- mindspore/opencv_core452.dll +0 -0
- mindspore/opencv_imgcodecs452.dll +0 -0
- mindspore/opencv_imgproc452.dll +0 -0
- mindspore/ops/__init__.py +5 -3
- mindspore/ops/_grad_experimental/grad_comm_ops.py +112 -16
- mindspore/ops/_grad_experimental/grad_debug_ops.py +14 -2
- mindspore/ops/_grad_experimental/grad_inner_ops.py +9 -0
- mindspore/ops/_grad_experimental/grad_math_ops.py +2 -1
- mindspore/ops/_grad_experimental/taylor_rule.py +29 -0
- mindspore/ops/_op_impl/cpu/__init__.py +1 -0
- mindspore/ops/_op_impl/cpu/raise_op.py +28 -0
- mindspore/ops/_register_for_op.py +0 -11
- mindspore/{ops_generate → ops/_utils}/arg_dtype_cast.py +123 -4
- mindspore/{ops_generate → ops/_utils}/arg_handler.py +3 -65
- mindspore/ops/_vmap/vmap_array_ops.py +52 -25
- mindspore/ops/_vmap/vmap_base.py +0 -2
- mindspore/ops/_vmap/vmap_grad_nn_ops.py +21 -14
- mindspore/ops/_vmap/vmap_math_ops.py +15 -16
- mindspore/ops/_vmap/vmap_nn_ops.py +29 -42
- mindspore/ops/auto_generate/__init__.py +4 -3
- mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +258 -46
- mindspore/ops/auto_generate/gen_extend_func.py +757 -185
- mindspore/ops/auto_generate/gen_ops_def.py +4197 -2243
- mindspore/ops/auto_generate/gen_ops_prim.py +16976 -6055
- mindspore/ops/auto_generate/pyboost_inner_prim.py +221 -87
- mindspore/ops/composite/__init__.py +2 -1
- mindspore/ops/composite/base.py +20 -25
- mindspore/ops/composite/math_ops.py +6 -16
- mindspore/ops/composite/multitype_ops/__init__.py +5 -2
- mindspore/ops/composite/multitype_ops/_compile_utils.py +228 -30
- mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -2
- mindspore/ops/composite/multitype_ops/add_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/div_impl.py +6 -4
- mindspore/ops/composite/multitype_ops/equal_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/floordiv_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/getitem_impl.py +3 -2
- mindspore/ops/composite/multitype_ops/greater_equal_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/greater_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/in_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/invert_impl.py +50 -0
- mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/less_equal_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/less_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/logic_not_impl.py +3 -2
- mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/mod_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/mul_impl.py +3 -2
- mindspore/ops/composite/multitype_ops/negative_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/not_equal_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/not_in_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/ones_like_impl.py +18 -0
- mindspore/ops/composite/multitype_ops/pow_impl.py +2 -30
- mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/sub_impl.py +2 -1
- mindspore/ops/function/__init__.py +40 -2
- mindspore/ops/function/_add_attr_func.py +58 -0
- mindspore/ops/function/array_func.py +2089 -2403
- mindspore/ops/function/clip_func.py +80 -23
- mindspore/ops/function/debug_func.py +57 -57
- mindspore/ops/function/grad/__init__.py +1 -0
- mindspore/ops/function/grad/grad_func.py +104 -71
- mindspore/ops/function/image_func.py +2 -2
- mindspore/ops/function/linalg_func.py +47 -78
- mindspore/ops/function/math_func.py +4351 -3813
- mindspore/ops/function/nn_func.py +1712 -637
- mindspore/ops/function/other_func.py +159 -1
- mindspore/ops/function/parameter_func.py +18 -84
- mindspore/ops/function/random_func.py +452 -387
- mindspore/ops/function/reshard_func.py +4 -70
- mindspore/ops/function/sparse_func.py +3 -3
- mindspore/ops/function/sparse_unary_func.py +6 -6
- mindspore/ops/function/spectral_func.py +25 -58
- mindspore/ops/function/vmap_func.py +26 -18
- mindspore/ops/functional.py +23 -7
- mindspore/ops/functional_overload.py +1548 -0
- mindspore/ops/op_info_register.py +32 -244
- mindspore/ops/operations/__init__.py +23 -15
- mindspore/ops/operations/_custom_ops_utils.py +235 -0
- mindspore/ops/operations/_embedding_cache_ops.py +4 -4
- mindspore/ops/operations/_grad_ops.py +2 -43
- mindspore/ops/operations/_infer_ops.py +2 -1
- mindspore/ops/operations/_inner_ops.py +43 -84
- mindspore/ops/operations/_ms_kernel.py +4 -10
- mindspore/ops/operations/_rl_inner_ops.py +1 -1
- mindspore/ops/operations/_scalar_ops.py +3 -2
- mindspore/ops/operations/_sequence_ops.py +1 -1
- mindspore/ops/operations/_tensor_array.py +1 -1
- mindspore/ops/operations/array_ops.py +81 -324
- mindspore/ops/operations/comm_ops.py +154 -108
- mindspore/ops/operations/custom_ops.py +298 -87
- mindspore/ops/operations/debug_ops.py +157 -59
- mindspore/ops/operations/inner_ops.py +7 -5
- mindspore/ops/operations/linalg_ops.py +1 -57
- mindspore/ops/operations/manually_defined/_inner.py +1 -1
- mindspore/ops/operations/manually_defined/ops_def.py +928 -180
- mindspore/ops/operations/math_ops.py +32 -234
- mindspore/ops/operations/nn_ops.py +212 -531
- mindspore/ops/operations/other_ops.py +62 -9
- mindspore/ops/operations/random_ops.py +13 -7
- mindspore/ops/operations/reshard_ops.py +1 -1
- mindspore/ops/operations/sparse_ops.py +2 -2
- mindspore/ops/primitive.py +66 -53
- mindspore/ops/tensor_method.py +1895 -0
- mindspore/ops_generate/__init__.py +0 -5
- mindspore/ops_generate/aclnn/__init__.py +0 -0
- mindspore/ops_generate/aclnn/aclnn_kernel_register_auto_cc_generator.py +135 -0
- mindspore/ops_generate/aclnn/gen_aclnn_implement.py +257 -0
- mindspore/ops_generate/api/__init__.py +0 -0
- mindspore/ops_generate/api/add_tensor_docs_generator.py +56 -0
- mindspore/ops_generate/api/cpp_create_prim_instance_helper_generator.py +105 -0
- mindspore/ops_generate/api/functional_map_cpp_generator.py +504 -0
- mindspore/ops_generate/api/functional_overload_py_generator.py +112 -0
- mindspore/ops_generate/api/functions_cc_generator.py +237 -0
- mindspore/ops_generate/api/gen_api.py +103 -0
- mindspore/ops_generate/api/op_api_proto.py +235 -0
- mindspore/ops_generate/api/tensor_func_reg_cpp_generator.py +461 -0
- mindspore/ops_generate/common/__init__.py +0 -0
- mindspore/ops_generate/common/base_generator.py +11 -0
- mindspore/ops_generate/common/gen_constants.py +91 -0
- mindspore/ops_generate/common/gen_utils.py +348 -0
- mindspore/ops_generate/common/op_proto.py +473 -0
- mindspore/ops_generate/common/template.py +523 -0
- mindspore/ops_generate/gen_ops.py +22 -1069
- mindspore/ops_generate/op_def/__init__.py +0 -0
- mindspore/ops_generate/op_def/gen_op_def.py +90 -0
- mindspore/ops_generate/op_def/lite_ops_cpp_generator.py +191 -0
- mindspore/ops_generate/op_def/ops_def_cc_generator.py +296 -0
- mindspore/ops_generate/op_def/ops_def_h_generator.py +74 -0
- mindspore/ops_generate/op_def/ops_name_h_generator.py +83 -0
- mindspore/ops_generate/op_def/ops_primitive_h_generator.py +125 -0
- mindspore/ops_generate/op_def_py/__init__.py +0 -0
- mindspore/ops_generate/op_def_py/gen_op_def_py.py +47 -0
- mindspore/ops_generate/op_def_py/op_def_py_generator.py +132 -0
- mindspore/ops_generate/op_def_py/op_prim_py_generator.py +489 -0
- mindspore/ops_generate/pyboost/__init__.py +0 -0
- mindspore/ops_generate/pyboost/auto_grad_impl_cc_generator.py +139 -0
- mindspore/ops_generate/pyboost/auto_grad_reg_cc_generator.py +93 -0
- mindspore/ops_generate/pyboost/gen_pyboost_func.py +175 -0
- mindspore/ops_generate/pyboost/op_template_parser.py +517 -0
- mindspore/ops_generate/pyboost/pyboost_functions_cpp_generator.py +407 -0
- mindspore/ops_generate/pyboost/pyboost_functions_h_generator.py +100 -0
- mindspore/ops_generate/pyboost/pyboost_functions_py_generator.py +148 -0
- mindspore/ops_generate/pyboost/pyboost_grad_function_cpp_generator.py +155 -0
- mindspore/ops_generate/pyboost/pyboost_inner_prim_generator.py +132 -0
- mindspore/ops_generate/pyboost/pyboost_native_grad_functions_generator.py +272 -0
- mindspore/ops_generate/pyboost/pyboost_op_cpp_code_generator.py +938 -0
- mindspore/ops_generate/pyboost/pyboost_overload_functions_cpp_generator.py +357 -0
- mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +179 -36
- mindspore/ops_generate/resources/__init__.py +0 -0
- mindspore/ops_generate/resources/resource_list.py +30 -0
- mindspore/ops_generate/resources/resource_loader.py +36 -0
- mindspore/ops_generate/resources/resource_manager.py +64 -0
- mindspore/ops_generate/resources/yaml_loader.py +88 -0
- mindspore/ops_generate/tensor_py_cc_generator.py +122 -0
- mindspore/parallel/__init__.py +7 -3
- mindspore/parallel/_auto_parallel_context.py +159 -40
- mindspore/parallel/_cell_wrapper.py +132 -15
- mindspore/parallel/_parallel_serialization.py +107 -5
- mindspore/parallel/_ps_context.py +1 -1
- mindspore/parallel/_recovery_context.py +7 -2
- mindspore/parallel/_tensor.py +142 -18
- mindspore/parallel/_utils.py +199 -23
- mindspore/parallel/algo_parameter_config.py +4 -4
- mindspore/parallel/auto_parallel.py +732 -0
- mindspore/parallel/checkpoint_convert.py +159 -0
- mindspore/parallel/checkpoint_transform.py +700 -35
- mindspore/parallel/cluster/process_entity/_api.py +276 -50
- mindspore/parallel/cluster/process_entity/_utils.py +41 -6
- mindspore/parallel/cluster/run.py +21 -4
- mindspore/parallel/function/__init__.py +24 -0
- mindspore/parallel/function/reshard_func.py +258 -0
- mindspore/parallel/nn/__init__.py +25 -0
- mindspore/parallel/nn/parallel_cell_wrapper.py +263 -0
- mindspore/parallel/nn/parallel_grad_reducer.py +169 -0
- mindspore/parallel/parameter_broadcast.py +25 -14
- mindspore/parallel/shard.py +137 -59
- mindspore/parallel/transform_safetensors.py +364 -305
- mindspore/pgodb140.dll +0 -0
- mindspore/pgort140.dll +0 -0
- mindspore/profiler/__init__.py +22 -5
- mindspore/profiler/analysis/__init__.py +0 -0
- mindspore/profiler/analysis/parser/__init__.py +0 -0
- mindspore/profiler/analysis/parser/ascend_cann_parser.py +170 -0
- mindspore/profiler/analysis/parser/base_parser.py +158 -0
- mindspore/profiler/analysis/parser/framework_cann_relation_parser.py +45 -0
- mindspore/profiler/analysis/parser/ms_framework_parser.py +142 -0
- mindspore/profiler/analysis/parser/ms_minddata_parser.py +145 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/__init__.py +0 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +264 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/base_timeline_assembler.py +40 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +109 -0
- mindspore/profiler/analysis/parser/timeline_creator/__init__.py +0 -0
- mindspore/profiler/analysis/parser/timeline_creator/base_timeline_creator.py +44 -0
- mindspore/profiler/analysis/parser/timeline_creator/cpu_op_timeline_creator.py +90 -0
- mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +76 -0
- mindspore/profiler/analysis/parser/timeline_creator/msprof_timeline_creator.py +103 -0
- mindspore/profiler/analysis/parser/timeline_creator/scope_layer_timeline_creator.py +134 -0
- mindspore/profiler/analysis/parser/timeline_event/__init__.py +0 -0
- mindspore/profiler/analysis/parser/timeline_event/base_event.py +233 -0
- mindspore/profiler/analysis/parser/timeline_event/cpu_op_event.py +47 -0
- mindspore/profiler/analysis/parser/timeline_event/flow_event.py +36 -0
- mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +415 -0
- mindspore/profiler/analysis/parser/timeline_event/msprof_event.py +73 -0
- mindspore/profiler/analysis/parser/timeline_event/scope_layer_event.py +53 -0
- mindspore/profiler/analysis/parser/timeline_event/timeline_event_pool.py +146 -0
- mindspore/profiler/analysis/task_manager.py +131 -0
- mindspore/profiler/analysis/time_converter.py +84 -0
- mindspore/profiler/analysis/viewer/__init__.py +0 -0
- mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +372 -0
- mindspore/profiler/analysis/viewer/ascend_integrate_viewer.py +87 -0
- mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +250 -0
- mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +320 -0
- mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +327 -0
- mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +376 -0
- mindspore/profiler/analysis/viewer/ascend_timeline_viewer.py +58 -0
- mindspore/profiler/analysis/viewer/base_viewer.py +26 -0
- mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +96 -0
- mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +581 -0
- mindspore/profiler/analysis/work_flow.py +73 -0
- mindspore/profiler/common/ascend_msprof_exporter.py +139 -0
- mindspore/profiler/common/command_executor.py +90 -0
- mindspore/profiler/common/constant.py +186 -3
- mindspore/profiler/common/file_manager.py +208 -0
- mindspore/profiler/common/log.py +130 -0
- mindspore/profiler/common/msprof_cmd_tool.py +221 -0
- mindspore/profiler/common/path_manager.py +395 -0
- mindspore/profiler/common/process_bar.py +168 -0
- mindspore/profiler/common/process_pool.py +9 -3
- mindspore/profiler/common/profiler_context.py +500 -0
- mindspore/profiler/common/profiler_info.py +304 -0
- mindspore/profiler/common/profiler_meta_data.py +74 -0
- mindspore/profiler/common/profiler_output_path.py +284 -0
- mindspore/profiler/common/profiler_parameters.py +251 -0
- mindspore/profiler/common/profiler_path_manager.py +179 -0
- mindspore/profiler/common/record_function.py +76 -0
- mindspore/profiler/common/tlv_decoder.py +76 -0
- mindspore/profiler/common/util.py +75 -2
- mindspore/profiler/dynamic_profiler.py +341 -75
- mindspore/profiler/envprofiler.py +163 -0
- mindspore/profiler/experimental_config.py +197 -0
- mindspore/profiler/mstx.py +242 -0
- mindspore/profiler/platform/__init__.py +21 -0
- mindspore/profiler/platform/base_profiler.py +40 -0
- mindspore/profiler/platform/cpu_profiler.py +124 -0
- mindspore/profiler/platform/gpu_profiler.py +74 -0
- mindspore/profiler/platform/npu_profiler.py +335 -0
- mindspore/profiler/profiler.py +1073 -90
- mindspore/profiler/profiler_action_controller.py +187 -0
- mindspore/profiler/profiler_interface.py +118 -0
- mindspore/profiler/schedule.py +243 -0
- mindspore/rewrite/api/node.py +15 -13
- mindspore/rewrite/api/symbol_tree.py +2 -3
- mindspore/run_check/_check_version.py +27 -20
- mindspore/run_check/run_check.py +1 -1
- mindspore/runtime/__init__.py +37 -0
- mindspore/runtime/device.py +27 -0
- mindspore/runtime/event.py +209 -0
- mindspore/runtime/executor.py +177 -0
- mindspore/runtime/memory.py +416 -0
- mindspore/runtime/stream.py +460 -0
- mindspore/runtime/thread_bind_core.py +401 -0
- mindspore/safeguard/rewrite_obfuscation.py +12 -9
- mindspore/swresample-4.dll +0 -0
- mindspore/swscale-6.dll +0 -0
- mindspore/tbbmalloc.dll +0 -0
- mindspore/tinyxml2.dll +0 -0
- mindspore/train/__init__.py +8 -8
- mindspore/train/_utils.py +96 -27
- mindspore/train/amp.py +9 -5
- mindspore/train/callback/__init__.py +2 -2
- mindspore/train/callback/_callback.py +2 -16
- mindspore/train/callback/_checkpoint.py +53 -55
- mindspore/train/callback/_cluster_monitor.py +14 -18
- mindspore/train/callback/_early_stop.py +1 -1
- mindspore/train/callback/_flops_collector.py +103 -68
- mindspore/train/callback/_history.py +8 -5
- mindspore/train/callback/_lambda_callback.py +2 -2
- mindspore/train/callback/_landscape.py +0 -3
- mindspore/train/callback/_loss_monitor.py +2 -1
- mindspore/train/callback/_on_request_exit.py +6 -5
- mindspore/train/callback/_reduce_lr_on_plateau.py +11 -6
- mindspore/train/callback/_summary_collector.py +52 -19
- mindspore/train/callback/_time_monitor.py +2 -1
- mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +228 -108
- mindspore/train/data_sink.py +25 -2
- mindspore/train/dataset_helper.py +15 -16
- mindspore/train/loss_scale_manager.py +8 -7
- mindspore/train/metrics/accuracy.py +3 -3
- mindspore/train/metrics/confusion_matrix.py +9 -9
- mindspore/train/metrics/error.py +3 -3
- mindspore/train/metrics/hausdorff_distance.py +4 -4
- mindspore/train/metrics/mean_surface_distance.py +3 -3
- mindspore/train/metrics/metric.py +0 -12
- mindspore/train/metrics/occlusion_sensitivity.py +4 -2
- mindspore/train/metrics/precision.py +11 -10
- mindspore/train/metrics/recall.py +9 -9
- mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
- mindspore/train/mind_ir_pb2.py +174 -46
- mindspore/train/model.py +269 -136
- mindspore/train/serialization.py +622 -978
- mindspore/train/summary/_summary_adapter.py +2 -2
- mindspore/train/summary/summary_record.py +2 -3
- mindspore/train/train_thor/model_thor.py +1 -1
- mindspore/turbojpeg.dll +0 -0
- mindspore/utils/__init__.py +6 -3
- mindspore/utils/dryrun.py +140 -0
- mindspore/utils/hooks.py +81 -0
- mindspore/utils/runtime_execution_order_check.py +552 -0
- mindspore/utils/utils.py +138 -4
- mindspore/vcmeta.dll +0 -0
- mindspore/vcruntime140.dll +0 -0
- mindspore/vcruntime140_1.dll +0 -0
- mindspore/version.py +1 -1
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/METADATA +3 -3
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/RECORD +587 -418
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/entry_points.txt +1 -1
- mindspore/_install_custom.py +0 -43
- mindspore/common/_register_for_adapter.py +0 -74
- mindspore/common/_tensor_overload.py +0 -139
- mindspore/mindspore_np_dtype.dll +0 -0
- mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
- mindspore/ops/auto_generate/gen_arg_handler.py +0 -197
- mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
- mindspore/ops_generate/gen_aclnn_implement.py +0 -263
- mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
- mindspore/ops_generate/gen_pyboost_func.py +0 -1052
- mindspore/ops_generate/gen_utils.py +0 -209
- mindspore/ops_generate/op_proto.py +0 -145
- mindspore/ops_generate/template.py +0 -261
- mindspore/profiler/envprofiling.py +0 -254
- mindspore/profiler/profiling.py +0 -1926
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/WHEEL +0 -0
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# Copyright 2020-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
|
+
"""CPU platform profiler."""
|
|
16
|
+
import mindspore._c_expression as c_expression
|
|
17
|
+
|
|
18
|
+
from mindspore.profiler.common.registry import PROFILERS
|
|
19
|
+
from mindspore.profiler.common.constant import DeviceTarget, ProfilerActivity
|
|
20
|
+
from mindspore.profiler.common.util import print_msg_with_pid
|
|
21
|
+
from mindspore.profiler.common.profiler_context import ProfilerContext
|
|
22
|
+
from mindspore.profiler.common.profiler_path_manager import ProfilerPathManager
|
|
23
|
+
from mindspore.profiler.platform.base_profiler import BaseProfiler
|
|
24
|
+
from mindspore.profiler.analysis.time_converter import TimeConverter
|
|
25
|
+
from mindspore.profiler.analysis.task_manager import TaskManager
|
|
26
|
+
from mindspore.profiler.analysis.parser.ms_framework_parser import FrameworkParser
|
|
27
|
+
from mindspore.profiler.analysis.parser.framework_cann_relation_parser import FrameworkCannRelationParser
|
|
28
|
+
from mindspore.profiler.analysis.viewer.ms_dataset_viewer import MsDatasetViewer
|
|
29
|
+
from mindspore.profiler.analysis.viewer.ascend_timeline_viewer import AscendTimelineViewer
|
|
30
|
+
from mindspore.profiler.common.log import ProfilerLogger
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
@PROFILERS.register_module(DeviceTarget.CPU.value)
|
|
34
|
+
class CpuProfiler(BaseProfiler):
|
|
35
|
+
"""
|
|
36
|
+
CPU platform profiler
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
def __init__(self) -> None:
|
|
40
|
+
super().__init__()
|
|
41
|
+
self._prof_ctx = ProfilerContext()
|
|
42
|
+
self._profiler = c_expression.Profiler.get_instance(DeviceTarget.CPU.value)
|
|
43
|
+
self._prof_path_mgr = ProfilerPathManager()
|
|
44
|
+
self._prof_mgr = c_expression.ProfilerManager.get_instance()
|
|
45
|
+
ProfilerLogger.init(self._prof_ctx.ascend_ms_dir)
|
|
46
|
+
self._logger = ProfilerLogger.get_instance()
|
|
47
|
+
|
|
48
|
+
def start(self) -> None:
|
|
49
|
+
"""Start profiling."""
|
|
50
|
+
self._logger.info("CpuProfiler start.")
|
|
51
|
+
self._profiler.init(self._prof_ctx.framework_path)
|
|
52
|
+
self._logger.info("CpuProfiler framework_path: %s", self._prof_ctx.framework_path)
|
|
53
|
+
self._profiler.step_profiling_enable(True)
|
|
54
|
+
|
|
55
|
+
if ProfilerActivity.CPU in self._prof_ctx.activities:
|
|
56
|
+
self._profiler.enable_op_time()
|
|
57
|
+
|
|
58
|
+
if self._prof_ctx.profile_memory:
|
|
59
|
+
self._profiler.enable_profile_memory()
|
|
60
|
+
|
|
61
|
+
def stop(self) -> None:
|
|
62
|
+
"""Stop profiling."""
|
|
63
|
+
self._logger.info("CpuProfiler stop.")
|
|
64
|
+
self._profiler.stop()
|
|
65
|
+
|
|
66
|
+
def analyse(self, **kwargs) -> None:
|
|
67
|
+
"""Analyse profiling data."""
|
|
68
|
+
if ProfilerContext().device_target_set != {DeviceTarget.CPU.value}:
|
|
69
|
+
return
|
|
70
|
+
self._logger.info("CpuProfiler analyse.")
|
|
71
|
+
CPUProfilerAnalysis.online_analyse()
|
|
72
|
+
|
|
73
|
+
def finalize(self) -> None:
|
|
74
|
+
"""Finalize profiling data."""
|
|
75
|
+
self._logger.info("CpuProfiler finalize.")
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
class CPUProfilerAnalysis:
|
|
79
|
+
"""
|
|
80
|
+
CPU profiler analysis interface
|
|
81
|
+
"""
|
|
82
|
+
|
|
83
|
+
@classmethod
|
|
84
|
+
def online_analyse(cls):
|
|
85
|
+
"""
|
|
86
|
+
Online analysis for CPU
|
|
87
|
+
"""
|
|
88
|
+
cls._pre_analyse_online()
|
|
89
|
+
cls._run_tasks(**ProfilerContext().to_dict())
|
|
90
|
+
|
|
91
|
+
@classmethod
|
|
92
|
+
def _pre_analyse_online(cls):
|
|
93
|
+
"""
|
|
94
|
+
Pre-process for online analysis
|
|
95
|
+
"""
|
|
96
|
+
ProfilerPathManager().create_output_path()
|
|
97
|
+
TimeConverter.init_parameters(freq=100.0, cntvct=0, localtime_diff=0)
|
|
98
|
+
|
|
99
|
+
@classmethod
|
|
100
|
+
def _run_tasks(cls, **kwargs) -> None:
|
|
101
|
+
"""
|
|
102
|
+
Run tasks for online analysis
|
|
103
|
+
"""
|
|
104
|
+
ascend_ms_dir = kwargs.get("ascend_ms_dir", "")
|
|
105
|
+
print_msg_with_pid(f"Start parsing profiling data: {ascend_ms_dir}")
|
|
106
|
+
task_mgr = cls._construct_task_mgr(**kwargs)
|
|
107
|
+
task_mgr.run()
|
|
108
|
+
|
|
109
|
+
@classmethod
|
|
110
|
+
def _construct_task_mgr(cls, **kwargs) -> TaskManager:
|
|
111
|
+
"""
|
|
112
|
+
Construct task manager based on activities and parameters
|
|
113
|
+
"""
|
|
114
|
+
task_mgr = TaskManager()
|
|
115
|
+
|
|
116
|
+
task_mgr.create_flow(
|
|
117
|
+
FrameworkParser(**kwargs)
|
|
118
|
+
.register_post_hook(MsDatasetViewer(**kwargs).save),
|
|
119
|
+
FrameworkCannRelationParser()
|
|
120
|
+
.register_post_hook(AscendTimelineViewer(**kwargs).save),
|
|
121
|
+
flow_name="cpu_flow", show_process=True
|
|
122
|
+
)
|
|
123
|
+
|
|
124
|
+
return task_mgr
|
|
@@ -0,0 +1,74 @@
|
|
|
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
|
+
"""GPU platform profiler."""
|
|
16
|
+
import mindspore._c_dataengine as cde
|
|
17
|
+
import mindspore._c_expression as c_expression
|
|
18
|
+
from mindspore.profiler.common.registry import PROFILERS
|
|
19
|
+
from mindspore.profiler.common.constant import DeviceTarget, ProfilerActivity
|
|
20
|
+
|
|
21
|
+
from mindspore.profiler.common.profiler_context import ProfilerContext
|
|
22
|
+
from mindspore.profiler.platform.base_profiler import BaseProfiler
|
|
23
|
+
from mindspore.profiler.common.log import ProfilerLogger
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@PROFILERS.register_module(DeviceTarget.GPU.value)
|
|
27
|
+
class GpuProfiler(BaseProfiler):
|
|
28
|
+
"""
|
|
29
|
+
GPU platform profiler
|
|
30
|
+
"""
|
|
31
|
+
def __init__(self) -> None:
|
|
32
|
+
super().__init__()
|
|
33
|
+
self._prof_ctx = ProfilerContext()
|
|
34
|
+
self._profiler = c_expression.Profiler.get_instance(DeviceTarget.GPU.value)
|
|
35
|
+
ProfilerLogger.init(self._prof_ctx.ascend_ms_dir)
|
|
36
|
+
self._logger = ProfilerLogger.get_instance()
|
|
37
|
+
|
|
38
|
+
self._profiler.init(self._prof_ctx.output_path)
|
|
39
|
+
self._profiler.sync_enable(self._prof_ctx.sync_enable)
|
|
40
|
+
|
|
41
|
+
if self._prof_ctx.data_process:
|
|
42
|
+
self._md_profiler = cde.GlobalContext.profiling_manager()
|
|
43
|
+
self._md_profiler.init()
|
|
44
|
+
|
|
45
|
+
def start(self) -> None:
|
|
46
|
+
"""Start profiling."""
|
|
47
|
+
self._logger.info("GpuProfiler start.")
|
|
48
|
+
|
|
49
|
+
if self._prof_ctx.data_process:
|
|
50
|
+
self._profiler.data_process_enable(True)
|
|
51
|
+
self._md_profiler.start()
|
|
52
|
+
|
|
53
|
+
if ProfilerActivity.GPU in self._prof_ctx.activities:
|
|
54
|
+
self._profiler.enable_op_time()
|
|
55
|
+
|
|
56
|
+
if ProfilerActivity.CPU in self._prof_ctx.activities:
|
|
57
|
+
self._profiler.step_profiling_enable(True)
|
|
58
|
+
|
|
59
|
+
def stop(self) -> None:
|
|
60
|
+
"""Stop profiling."""
|
|
61
|
+
self._logger.info("GpuProfiler stop.")
|
|
62
|
+
self._profiler.stop()
|
|
63
|
+
|
|
64
|
+
if self._prof_ctx.data_process:
|
|
65
|
+
self._md_profiler.stop()
|
|
66
|
+
self._md_profiler.save(self._prof_ctx.output_path)
|
|
67
|
+
|
|
68
|
+
def analyse(self, **kwargs) -> None:
|
|
69
|
+
"""Analyse profiling data."""
|
|
70
|
+
self._logger.info("GpuProfiler analyse.")
|
|
71
|
+
|
|
72
|
+
def finalize(self) -> None:
|
|
73
|
+
"""Finalize profiling data."""
|
|
74
|
+
self._logger.info("GpuProfiler finalize.")
|
|
@@ -0,0 +1,335 @@
|
|
|
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
|
+
"""NPU platform profiler."""
|
|
16
|
+
import os
|
|
17
|
+
import glob
|
|
18
|
+
import json
|
|
19
|
+
from typing import List, Optional
|
|
20
|
+
|
|
21
|
+
from mindspore import context
|
|
22
|
+
from mindspore import log as logger
|
|
23
|
+
import mindspore._c_dataengine as cde
|
|
24
|
+
import mindspore._c_expression as c_expression
|
|
25
|
+
|
|
26
|
+
from mindspore.profiler.common.path_manager import PathManager
|
|
27
|
+
from mindspore.profiler.common.registry import PROFILERS
|
|
28
|
+
from mindspore.profiler.common.constant import (
|
|
29
|
+
DeviceTarget,
|
|
30
|
+
ProfilerActivity,
|
|
31
|
+
AnalysisMode,
|
|
32
|
+
ExportType,
|
|
33
|
+
)
|
|
34
|
+
from mindspore._c_expression import _framework_profiler_enable_mi, _framework_profiler_disable_mi
|
|
35
|
+
from mindspore.profiler.common.profiler_context import ProfilerContext
|
|
36
|
+
from mindspore.profiler.platform.base_profiler import BaseProfiler
|
|
37
|
+
from mindspore.profiler.common.profiler_path_manager import ProfilerPathManager
|
|
38
|
+
from mindspore.profiler.common.profiler_info import ProfilerInfo
|
|
39
|
+
from mindspore.profiler.common.process_pool import MultiProcessPool
|
|
40
|
+
from mindspore.profiler.analysis.task_manager import TaskManager
|
|
41
|
+
from mindspore.profiler.analysis.time_converter import TimeConverter
|
|
42
|
+
from mindspore.profiler.analysis.parser.ascend_cann_parser import AscendMsprofParser
|
|
43
|
+
from mindspore.profiler.analysis.parser.ms_framework_parser import FrameworkParser
|
|
44
|
+
from mindspore.profiler.analysis.parser.ms_minddata_parser import MindDataParser
|
|
45
|
+
from mindspore.profiler.analysis.parser.framework_cann_relation_parser import FrameworkCannRelationParser
|
|
46
|
+
from mindspore.profiler.analysis.viewer.ms_dataset_viewer import MsDatasetViewer
|
|
47
|
+
from mindspore.profiler.analysis.viewer.ascend_timeline_viewer import AscendTimelineViewer
|
|
48
|
+
from mindspore.profiler.analysis.viewer.ascend_kernel_details_viewer import AscendKernelDetailsViewer
|
|
49
|
+
from mindspore.profiler.analysis.viewer.ascend_step_trace_time_viewer import AscendStepTraceTimeViewer
|
|
50
|
+
from mindspore.profiler.analysis.viewer.ascend_communication_viewer import AscendCommunicationViewer
|
|
51
|
+
from mindspore.profiler.analysis.viewer.ascend_integrate_viewer import AscendIntegrateViewer
|
|
52
|
+
from mindspore.profiler.analysis.viewer.ascend_memory_viewer import AscendMemoryViewer
|
|
53
|
+
from mindspore.profiler.analysis.viewer.ascend_op_memory_viewer import AscendOpMemoryViewer
|
|
54
|
+
from mindspore.profiler.analysis.viewer.ms_minddata_viewer import (
|
|
55
|
+
MindDataPipelineRawViewer,
|
|
56
|
+
MindDataPiplineSummaryViewer,
|
|
57
|
+
)
|
|
58
|
+
from mindspore.profiler.common.util import print_msg_with_pid
|
|
59
|
+
from mindspore.profiler.common.log import ProfilerLogger
|
|
60
|
+
from mindspore.profiler.mstx import Mstx
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
@PROFILERS.register_module(DeviceTarget.NPU.value)
|
|
64
|
+
class NpuProfiler(BaseProfiler):
|
|
65
|
+
"""
|
|
66
|
+
NPU platform profiler
|
|
67
|
+
"""
|
|
68
|
+
|
|
69
|
+
def __init__(self) -> None:
|
|
70
|
+
super().__init__()
|
|
71
|
+
self._prof_ctx = ProfilerContext()
|
|
72
|
+
self._prof_info = ProfilerInfo()
|
|
73
|
+
self._prof_path_mgr = ProfilerPathManager()
|
|
74
|
+
ProfilerLogger.init(self._prof_ctx.ascend_ms_dir)
|
|
75
|
+
self._logger = ProfilerLogger.get_instance()
|
|
76
|
+
|
|
77
|
+
self._profiler = c_expression.Profiler.get_instance(DeviceTarget.NPU.value)
|
|
78
|
+
# initialize profiler backend
|
|
79
|
+
self._profiler.init(
|
|
80
|
+
self._prof_ctx.ascend_ms_dir,
|
|
81
|
+
int(self._prof_ctx.device_id),
|
|
82
|
+
json.dumps(self._prof_ctx.npu_profiler_params),
|
|
83
|
+
)
|
|
84
|
+
self._logger.info("NpuProfiler init profiler backend params %s",
|
|
85
|
+
json.dumps(self._prof_ctx.npu_profiler_params, indent=4))
|
|
86
|
+
|
|
87
|
+
# record original profiler params
|
|
88
|
+
self._prof_info.profiler_parameters = self._prof_ctx.original_params
|
|
89
|
+
self._prof_info.ms_profiler_info = {
|
|
90
|
+
"context_mode": context.get_context("mode"),
|
|
91
|
+
"rank_id": self._prof_ctx.rank_id,
|
|
92
|
+
"device_id": self._prof_ctx.device_id,
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
# initialize minddata profiler
|
|
96
|
+
if self._prof_ctx.data_process:
|
|
97
|
+
self._md_profiler = cde.GlobalContext.profiling_manager()
|
|
98
|
+
self._md_profiler.init()
|
|
99
|
+
self._logger.info("NpuProfiler init minddata profiler")
|
|
100
|
+
|
|
101
|
+
self._prof_mgr = c_expression.ProfilerManager.get_instance()
|
|
102
|
+
|
|
103
|
+
def start(self) -> None:
|
|
104
|
+
"""Start profiling."""
|
|
105
|
+
self._logger.info("NpuProfiler start.")
|
|
106
|
+
|
|
107
|
+
Mstx.enable = self._prof_ctx.npu_profiler_params.get("mstx", False)
|
|
108
|
+
|
|
109
|
+
if ProfilerActivity.CPU in self._prof_ctx.activities:
|
|
110
|
+
_framework_profiler_enable_mi()
|
|
111
|
+
self._prof_mgr.set_profile_framework("time")
|
|
112
|
+
self._logger.info("NpuProfiler start enable framework")
|
|
113
|
+
|
|
114
|
+
if self._profiler:
|
|
115
|
+
self._profiler.start()
|
|
116
|
+
|
|
117
|
+
if self._prof_ctx.data_process:
|
|
118
|
+
self._md_profiler.start()
|
|
119
|
+
self._logger.info("NpuProfiler start minddata profiler")
|
|
120
|
+
|
|
121
|
+
def stop(self) -> None:
|
|
122
|
+
"""Stop profiling."""
|
|
123
|
+
self._logger.info("NpuProfiler stop.")
|
|
124
|
+
|
|
125
|
+
Mstx.enable = False
|
|
126
|
+
|
|
127
|
+
if self._profiler:
|
|
128
|
+
self._profiler.stop()
|
|
129
|
+
|
|
130
|
+
if ProfilerActivity.CPU in self._prof_ctx.activities:
|
|
131
|
+
_framework_profiler_disable_mi()
|
|
132
|
+
self._prof_mgr.set_profile_framework("NULL")
|
|
133
|
+
self._logger.info("NpuProfiler stop disable framework")
|
|
134
|
+
|
|
135
|
+
if self._prof_ctx.data_process:
|
|
136
|
+
self._md_profiler.stop()
|
|
137
|
+
self._md_profiler.save(self._prof_ctx.framework_path)
|
|
138
|
+
|
|
139
|
+
self._prof_info.save(self._prof_ctx.ascend_ms_dir, self._prof_ctx.rank_id)
|
|
140
|
+
|
|
141
|
+
def analyse(self, **kwargs) -> None:
|
|
142
|
+
"""Analyse the profiling data."""
|
|
143
|
+
self._logger.info("NpuProfiler analyse.")
|
|
144
|
+
|
|
145
|
+
NPUProfilerAnalysis.online_analyse()
|
|
146
|
+
|
|
147
|
+
def finalize(self) -> None:
|
|
148
|
+
"""Finalize profiling data."""
|
|
149
|
+
self._logger.info("NpuProfiler finalize.")
|
|
150
|
+
if self._profiler:
|
|
151
|
+
self._profiler.finalize()
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
class NPUProfilerAnalysis:
|
|
155
|
+
"""
|
|
156
|
+
NPU profiler analysis interface
|
|
157
|
+
"""
|
|
158
|
+
|
|
159
|
+
@classmethod
|
|
160
|
+
def online_analyse(cls, async_mode: bool = False):
|
|
161
|
+
"""
|
|
162
|
+
Online analysis for NPU
|
|
163
|
+
"""
|
|
164
|
+
cls._pre_analyse_online()
|
|
165
|
+
if async_mode:
|
|
166
|
+
ProfilerContext().mode = AnalysisMode.ASYNC_MODE.value
|
|
167
|
+
MultiProcessPool().add_async_job(cls._run_tasks, **ProfilerContext().to_dict())
|
|
168
|
+
else:
|
|
169
|
+
ProfilerContext().mode = AnalysisMode.SYNC_MODE.value
|
|
170
|
+
cls._run_tasks(**ProfilerContext().to_dict())
|
|
171
|
+
|
|
172
|
+
@classmethod
|
|
173
|
+
def offline_analyse(
|
|
174
|
+
cls,
|
|
175
|
+
path: str,
|
|
176
|
+
pretty: bool,
|
|
177
|
+
step_list: Optional[List[int]],
|
|
178
|
+
data_simplification: bool,
|
|
179
|
+
) -> None:
|
|
180
|
+
"""Analyze profiling data in offline mode."""
|
|
181
|
+
ProfilerLogger.init(path)
|
|
182
|
+
cls._pre_analyse_offline(path, pretty, step_list, data_simplification)
|
|
183
|
+
cls._run_tasks(**ProfilerContext().to_dict())
|
|
184
|
+
|
|
185
|
+
@classmethod
|
|
186
|
+
def _pre_analyse_online(cls):
|
|
187
|
+
"""
|
|
188
|
+
Pre-process for online analysis
|
|
189
|
+
"""
|
|
190
|
+
prof_ctx = ProfilerContext()
|
|
191
|
+
if ProfilerActivity.NPU in prof_ctx.activities:
|
|
192
|
+
prof_dir = glob.glob(os.path.join(prof_ctx.ascend_ms_dir, "PROF_*"))
|
|
193
|
+
if not prof_dir:
|
|
194
|
+
logger.error(f"No PROF_* directory found in {prof_ctx.ascend_ms_dir}")
|
|
195
|
+
return
|
|
196
|
+
|
|
197
|
+
prof_ctx.msprof_profile_path = prof_dir[0]
|
|
198
|
+
ProfilerPathManager().clean_analysis_cache()
|
|
199
|
+
ProfilerPathManager().create_output_path()
|
|
200
|
+
ProfilerInfo().load_time_parameters(
|
|
201
|
+
prof_ctx.msprof_profile_path, prof_ctx.msprof_profile_host_path
|
|
202
|
+
)
|
|
203
|
+
TimeConverter.init_parameters(**ProfilerInfo().time_parameters)
|
|
204
|
+
|
|
205
|
+
elif prof_ctx.activities == [ProfilerActivity.CPU]:
|
|
206
|
+
ProfilerPathManager().create_output_path()
|
|
207
|
+
TimeConverter.init_parameters(freq=100.0, cntvct=0, localtime_diff=0)
|
|
208
|
+
|
|
209
|
+
@classmethod
|
|
210
|
+
def _pre_analyse_offline(
|
|
211
|
+
cls,
|
|
212
|
+
ascend_ms_dir: str,
|
|
213
|
+
pretty: bool,
|
|
214
|
+
step_list: Optional[List[int]],
|
|
215
|
+
data_simplification: bool,
|
|
216
|
+
) -> None:
|
|
217
|
+
"""Pre-process profiling data for offline analysis."""
|
|
218
|
+
prof_ctx = ProfilerContext()
|
|
219
|
+
prof_info = ProfilerInfo()
|
|
220
|
+
prof_info_file_path = PathManager.get_profiler_info_path(ascend_ms_dir)
|
|
221
|
+
prof_info.load_info(prof_info_file_path)
|
|
222
|
+
prof_ctx.device_id = prof_info.ms_profiler_info["device_id"]
|
|
223
|
+
prof_ctx.rank_id = prof_info.ms_profiler_info["rank_id"]
|
|
224
|
+
prof_ctx.set_params()
|
|
225
|
+
prof_ctx.load_offline_profiler_params(prof_info.profiler_parameters)
|
|
226
|
+
prof_ctx.jit_level = prof_info.jit_level
|
|
227
|
+
prof_ctx.context_mode = prof_info.context_mode
|
|
228
|
+
|
|
229
|
+
if ProfilerActivity.NPU in prof_ctx.activities:
|
|
230
|
+
prof_dir = glob.glob(os.path.join(ascend_ms_dir, "PROF_*"))
|
|
231
|
+
if not prof_dir:
|
|
232
|
+
logger.error(f"No PROF_* directory found in {ascend_ms_dir}")
|
|
233
|
+
return
|
|
234
|
+
prof_path_mgr = ProfilerPathManager()
|
|
235
|
+
|
|
236
|
+
# set PROF_XXX path
|
|
237
|
+
prof_ctx.ascend_ms_dir = ascend_ms_dir
|
|
238
|
+
prof_ctx.msprof_profile_path = prof_dir[0]
|
|
239
|
+
prof_info.load_time_parameters(
|
|
240
|
+
prof_ctx.msprof_profile_path, prof_ctx.msprof_profile_host_path
|
|
241
|
+
)
|
|
242
|
+
prof_ctx.pretty = pretty
|
|
243
|
+
prof_ctx.step_list = step_list
|
|
244
|
+
prof_ctx.data_simplification = data_simplification
|
|
245
|
+
prof_path_mgr.clean_analysis_cache()
|
|
246
|
+
prof_path_mgr.create_output_path()
|
|
247
|
+
TimeConverter.init_parameters(**prof_info.time_parameters)
|
|
248
|
+
elif [ProfilerActivity.CPU] == prof_ctx.activities:
|
|
249
|
+
prof_ctx.ascend_ms_dir = ascend_ms_dir
|
|
250
|
+
ProfilerPathManager().create_output_path()
|
|
251
|
+
TimeConverter.init_parameters(freq=100.0, cntvct=0, localtime_diff=0)
|
|
252
|
+
|
|
253
|
+
@classmethod
|
|
254
|
+
def _run_tasks(cls, **kwargs) -> None:
|
|
255
|
+
"""
|
|
256
|
+
Run tasks for online analysis
|
|
257
|
+
"""
|
|
258
|
+
ascend_ms_dir = kwargs.get("ascend_ms_dir", "")
|
|
259
|
+
print_msg_with_pid(f"Start parsing profiling data in {kwargs.get('mode')} mode at: {ascend_ms_dir}")
|
|
260
|
+
task_mgr = cls._construct_task_mgr(**kwargs)
|
|
261
|
+
task_mgr.run()
|
|
262
|
+
ProfilerLogger.get_instance().info(json.dumps(task_mgr.cost_time, indent=4))
|
|
263
|
+
activities = kwargs.get("activities")
|
|
264
|
+
if activities and ProfilerActivity.NPU.value in activities:
|
|
265
|
+
ProfilerPathManager().move_db_file()
|
|
266
|
+
if kwargs.get("data_simplification") and ProfilerActivity.NPU.value in kwargs.get("activities"):
|
|
267
|
+
ProfilerPathManager().simplify_data()
|
|
268
|
+
|
|
269
|
+
@classmethod
|
|
270
|
+
def _construct_task_mgr(cls, **kwargs) -> TaskManager:
|
|
271
|
+
"""
|
|
272
|
+
Construct task manager based on activities and parameters
|
|
273
|
+
"""
|
|
274
|
+
task_mgr = TaskManager()
|
|
275
|
+
activities = kwargs.get("activities", [])
|
|
276
|
+
export_type = kwargs.get("export_type", [])
|
|
277
|
+
enable_data_process = kwargs.get("data_process", False)
|
|
278
|
+
|
|
279
|
+
# CANN flow parser
|
|
280
|
+
cann_flow_parsers = []
|
|
281
|
+
|
|
282
|
+
if export_type == [ExportType.Db.value]:
|
|
283
|
+
cann_flow_parsers.append(
|
|
284
|
+
AscendMsprofParser(**kwargs)
|
|
285
|
+
)
|
|
286
|
+
task_mgr.create_flow(
|
|
287
|
+
*cann_flow_parsers, flow_name="cann_flow", show_process=True
|
|
288
|
+
)
|
|
289
|
+
return task_mgr
|
|
290
|
+
|
|
291
|
+
if ProfilerActivity.NPU.value in activities:
|
|
292
|
+
cann_flow_parsers.append(
|
|
293
|
+
AscendMsprofParser(**kwargs)
|
|
294
|
+
.register_post_hook(AscendMemoryViewer(**kwargs).save)
|
|
295
|
+
.register_post_hook(AscendOpMemoryViewer(**kwargs).save)
|
|
296
|
+
)
|
|
297
|
+
|
|
298
|
+
if ProfilerActivity.CPU.value in activities:
|
|
299
|
+
cann_flow_parsers.append(
|
|
300
|
+
FrameworkParser(**kwargs).register_post_hook(
|
|
301
|
+
MsDatasetViewer(**kwargs).save
|
|
302
|
+
)
|
|
303
|
+
)
|
|
304
|
+
|
|
305
|
+
if ProfilerActivity.NPU.value in activities:
|
|
306
|
+
cann_flow_parsers.append(
|
|
307
|
+
FrameworkCannRelationParser(**kwargs)
|
|
308
|
+
.register_post_hook(AscendTimelineViewer(**kwargs).save)
|
|
309
|
+
.register_post_hook(AscendKernelDetailsViewer(**kwargs).save)
|
|
310
|
+
.register_post_hook(AscendStepTraceTimeViewer(**kwargs).save)
|
|
311
|
+
.register_post_hook(AscendIntegrateViewer(**kwargs).save)
|
|
312
|
+
.register_post_hook(AscendCommunicationViewer(**kwargs).save)
|
|
313
|
+
)
|
|
314
|
+
elif ProfilerActivity.CPU.value in activities:
|
|
315
|
+
cann_flow_parsers.append(
|
|
316
|
+
FrameworkCannRelationParser().register_post_hook(
|
|
317
|
+
AscendTimelineViewer(**kwargs).save
|
|
318
|
+
)
|
|
319
|
+
)
|
|
320
|
+
|
|
321
|
+
task_mgr.create_flow(
|
|
322
|
+
*cann_flow_parsers, flow_name="cann_flow", show_process=True
|
|
323
|
+
)
|
|
324
|
+
|
|
325
|
+
# MindData flow parser
|
|
326
|
+
if enable_data_process:
|
|
327
|
+
task_mgr.create_flow(
|
|
328
|
+
MindDataParser(**kwargs)
|
|
329
|
+
.register_post_hook(MindDataPipelineRawViewer(**kwargs).save)
|
|
330
|
+
.register_post_hook(MindDataPiplineSummaryViewer(**kwargs).save),
|
|
331
|
+
flow_name="minddata_flow",
|
|
332
|
+
show_process=False,
|
|
333
|
+
)
|
|
334
|
+
|
|
335
|
+
return task_mgr
|