mindspore 2.5.0__cp311-cp311-win_amd64.whl → 2.6.0__cp311-cp311-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 +6 -4
- mindspore/_c_dataengine.cp311-win_amd64.pyd +0 -0
- mindspore/_c_expression.cp311-win_amd64.pyd +0 -0
- mindspore/_c_mindrecord.cp311-win_amd64.pyd +0 -0
- mindspore/_check_jit_forbidden_api.py +3 -0
- mindspore/_checkparam.py +3 -33
- mindspore/_deprecated/__init__.py +17 -0
- mindspore/_deprecated/jit.py +198 -0
- mindspore/_extends/builtin_operations.py +1 -1
- mindspore/_extends/parse/__init__.py +6 -7
- mindspore/_extends/parse/compile_config.py +19 -0
- mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +22 -3
- 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 +25 -194
- mindspore/_extends/parse/resources.py +1 -5
- mindspore/_extends/parse/standard_method.py +109 -75
- mindspore/_extends/pijit/__init__.py +2 -2
- mindspore/_extends/pijit/pijit_func_white_list.py +16 -11
- mindspore/_extends/pijit/tensor_func_list.py +27 -0
- mindspore/_extends/utils.py +1 -1
- mindspore/amp.py +4 -4
- 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 +2 -2
- mindspore/c1.dll +0 -0
- mindspore/c1xx.dll +0 -0
- mindspore/c2.dll +0 -0
- mindspore/common/__init__.py +4 -3
- mindspore/common/_grad_function.py +56 -0
- mindspore/common/_pijit_context.py +14 -5
- mindspore/common/_register_for_tensor.py +1 -1
- mindspore/common/_stub_tensor.py +5 -10
- mindspore/common/_tensor_cpp_method.py +1 -1
- mindspore/common/_tensor_docs.py +2014 -3386
- mindspore/common/api.py +386 -355
- mindspore/common/auto_dynamic_shape.py +41 -44
- mindspore/common/dtype.py +5 -2
- mindspore/common/dump.py +7 -5
- mindspore/common/file_system.py +3 -0
- mindspore/common/generator.py +3 -0
- mindspore/common/hook_handle.py +5 -3
- mindspore/common/initializer.py +10 -6
- 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 +2 -2
- mindspore/common/mutable.py +5 -4
- mindspore/common/parameter.py +106 -39
- mindspore/common/seed.py +2 -2
- mindspore/common/sparse_tensor.py +23 -17
- mindspore/common/tensor.py +332 -714
- mindspore/communication/__init__.py +7 -5
- mindspore/communication/_comm_helper.py +47 -2
- mindspore/communication/comm_func.py +70 -53
- mindspore/communication/management.py +83 -17
- mindspore/context.py +228 -571
- mindspore/dataset/__init__.py +44 -20
- mindspore/dataset/audio/__init__.py +2 -8
- mindspore/dataset/audio/transforms.py +3 -17
- mindspore/dataset/core/config.py +3 -3
- mindspore/dataset/engine/cache_client.py +1 -1
- mindspore/dataset/engine/datasets.py +102 -120
- mindspore/dataset/engine/datasets_audio.py +22 -22
- mindspore/dataset/engine/datasets_standard_format.py +43 -24
- mindspore/dataset/engine/datasets_text.py +78 -85
- mindspore/dataset/engine/datasets_user_defined.py +109 -77
- mindspore/dataset/engine/datasets_vision.py +111 -108
- mindspore/dataset/engine/iterators.py +5 -3
- mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
- mindspore/dataset/engine/samplers.py +279 -57
- mindspore/dataset/engine/serializer_deserializer.py +2 -1
- mindspore/dataset/engine/validators.py +10 -0
- 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/transforms.py +3 -3
- 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/device_context/ascend/op_debug.py +60 -1
- mindspore/device_context/ascend/op_tuning.py +0 -4
- mindspore/device_manager.py +39 -3
- mindspore/dnnl.dll +0 -0
- mindspore/dpcmi.dll +0 -0
- mindspore/experimental/es/embedding_service.py +35 -27
- mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +0 -2
- mindspore/experimental/map_parameter.py +4 -4
- mindspore/experimental/optim/adadelta.py +22 -26
- mindspore/experimental/optim/adagrad.py +4 -4
- mindspore/experimental/optim/adam.py +4 -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 +40 -22
- mindspore/experimental/optim/radam.py +5 -5
- 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 -81
- mindspore/hal/event.py +38 -55
- mindspore/hal/memory.py +115 -147
- mindspore/hal/stream.py +81 -125
- mindspore/include/dataset/constants.h +7 -4
- mindspore/include/dataset/execute.h +2 -2
- mindspore/jpeg62.dll +0 -0
- mindspore/log.py +40 -2
- mindspore/mindrecord/__init__.py +20 -7
- 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 +133 -702
- mindspore/mint/distributed/__init__.py +5 -1
- mindspore/mint/distributed/distributed.py +198 -113
- mindspore/mint/linalg/__init__.py +2 -0
- mindspore/mint/nn/__init__.py +280 -18
- mindspore/mint/nn/functional.py +282 -64
- mindspore/mint/nn/layer/__init__.py +4 -0
- mindspore/mint/nn/layer/_functions.py +7 -3
- mindspore/mint/nn/layer/activation.py +120 -13
- mindspore/mint/nn/layer/conv.py +234 -28
- mindspore/mint/nn/layer/normalization.py +15 -16
- mindspore/mint/nn/layer/padding.py +1 -1
- mindspore/mint/nn/layer/pooling.py +66 -1
- mindspore/mint/optim/__init__.py +2 -1
- mindspore/mint/optim/sgd.py +171 -0
- 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/nn/__init__.py +4 -1
- mindspore/nn/cell.py +1253 -179
- mindspore/nn/layer/activation.py +23 -21
- mindspore/nn/layer/basic.py +22 -16
- mindspore/nn/layer/container.py +1 -1
- mindspore/nn/layer/conv.py +53 -42
- mindspore/nn/layer/embedding.py +9 -8
- mindspore/nn/layer/normalization.py +48 -42
- mindspore/nn/layer/pooling.py +75 -31
- mindspore/nn/layer/transformer.py +11 -10
- mindspore/nn/learning_rate_schedule.py +4 -2
- mindspore/nn/loss/loss.py +27 -19
- mindspore/nn/optim/ada_grad.py +6 -5
- mindspore/nn/optim/adadelta.py +9 -7
- mindspore/nn/optim/adafactor.py +1 -1
- mindspore/nn/optim/adam.py +18 -14
- 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/lazyadam.py +12 -10
- mindspore/nn/optim/momentum.py +7 -6
- mindspore/nn/optim/optimizer.py +2 -2
- mindspore/nn/optim/proximal_ada_grad.py +12 -10
- mindspore/nn/optim/rmsprop.py +13 -12
- mindspore/nn/optim/rprop.py +9 -7
- mindspore/nn/optim/sgd.py +9 -6
- mindspore/nn/optim/tft_wrapper.py +5 -2
- 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/wrap/__init__.py +6 -6
- mindspore/nn/wrap/cell_wrapper.py +178 -117
- mindspore/nn/wrap/grad_reducer.py +45 -36
- mindspore/nn/wrap/loss_scale.py +3 -3
- mindspore/numpy/array_creations.py +3 -3
- mindspore/numpy/array_ops.py +1 -1
- mindspore/numpy/utils.py +1 -2
- mindspore/numpy/utils_const.py +1 -2
- mindspore/opencv_core452.dll +0 -0
- mindspore/opencv_imgcodecs452.dll +0 -0
- mindspore/opencv_imgproc452.dll +0 -0
- mindspore/ops/__init__.py +3 -2
- mindspore/ops/_grad_experimental/grad_comm_ops.py +18 -3
- mindspore/ops/_grad_experimental/grad_debug_ops.py +8 -1
- mindspore/ops/_grad_experimental/taylor_rule.py +29 -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 -4
- mindspore/ops/_vmap/vmap_array_ops.py +32 -6
- mindspore/ops/_vmap/vmap_grad_nn_ops.py +2 -1
- mindspore/ops/_vmap/vmap_math_ops.py +4 -7
- mindspore/ops/_vmap/vmap_nn_ops.py +9 -8
- mindspore/ops/auto_generate/__init__.py +4 -3
- mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +127 -52
- mindspore/ops/auto_generate/gen_extend_func.py +286 -208
- mindspore/ops/auto_generate/gen_ops_def.py +2783 -2335
- mindspore/ops/auto_generate/gen_ops_prim.py +8992 -2686
- mindspore/ops/auto_generate/pyboost_inner_prim.py +106 -76
- mindspore/ops/composite/__init__.py +2 -1
- mindspore/ops/composite/base.py +19 -24
- 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 +4 -5
- 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 -1
- 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 +28 -2
- mindspore/ops/function/_add_attr_func.py +58 -0
- mindspore/ops/function/array_func.py +1631 -2347
- mindspore/ops/function/clip_func.py +38 -45
- mindspore/ops/function/debug_func.py +36 -44
- mindspore/ops/function/grad/__init__.py +1 -0
- mindspore/ops/function/grad/grad_func.py +104 -71
- mindspore/ops/function/image_func.py +1 -1
- mindspore/ops/function/linalg_func.py +46 -78
- mindspore/ops/function/math_func.py +3024 -3855
- mindspore/ops/function/nn_func.py +678 -274
- mindspore/ops/function/other_func.py +159 -1
- mindspore/ops/function/parameter_func.py +17 -30
- mindspore/ops/function/random_func.py +216 -361
- mindspore/ops/function/reshard_func.py +4 -70
- mindspore/ops/function/sparse_func.py +3 -3
- mindspore/ops/function/sparse_unary_func.py +5 -5
- mindspore/ops/function/spectral_func.py +25 -58
- mindspore/ops/function/vmap_func.py +26 -18
- mindspore/ops/functional.py +8 -5
- mindspore/ops/functional_overload.py +655 -4
- mindspore/ops/op_info_register.py +32 -244
- mindspore/ops/operations/__init__.py +21 -14
- mindspore/ops/operations/_custom_ops_utils.py +235 -0
- mindspore/ops/operations/_grad_ops.py +1 -10
- mindspore/ops/operations/_inner_ops.py +5 -76
- 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 +39 -24
- mindspore/ops/operations/comm_ops.py +150 -107
- mindspore/ops/operations/custom_ops.py +287 -32
- mindspore/ops/operations/debug_ops.py +119 -16
- mindspore/ops/operations/inner_ops.py +1 -1
- mindspore/ops/operations/linalg_ops.py +1 -58
- mindspore/ops/operations/manually_defined/_inner.py +1 -1
- mindspore/ops/operations/manually_defined/ops_def.py +746 -79
- mindspore/ops/operations/math_ops.py +21 -18
- mindspore/ops/operations/nn_ops.py +67 -224
- 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 +43 -32
- mindspore/ops/tensor_method.py +243 -17
- mindspore/ops_generate/__init__.py +0 -5
- mindspore/ops_generate/aclnn/__init__.py +0 -0
- mindspore/ops_generate/{aclnn_kernel_register_auto_cc_generator.py → aclnn/aclnn_kernel_register_auto_cc_generator.py} +43 -18
- mindspore/ops_generate/{gen_aclnn_implement.py → aclnn/gen_aclnn_implement.py} +49 -51
- mindspore/ops_generate/api/__init__.py +0 -0
- mindspore/ops_generate/{add_tensor_docs_generator.py → api/add_tensor_docs_generator.py} +9 -7
- mindspore/ops_generate/{cpp_create_prim_instance_helper_generator.py → api/cpp_create_prim_instance_helper_generator.py} +6 -9
- mindspore/ops_generate/{functional_map_cpp_generator.py → api/functional_map_cpp_generator.py} +25 -12
- mindspore/ops_generate/{functional_overload_py_generator.py → api/functional_overload_py_generator.py} +8 -6
- mindspore/ops_generate/{functions_cc_generator.py → api/functions_cc_generator.py} +14 -10
- mindspore/ops_generate/api/gen_api.py +103 -0
- mindspore/ops_generate/{op_api_proto.py → api/op_api_proto.py} +98 -69
- mindspore/ops_generate/{tensor_func_reg_cpp_generator.py → api/tensor_func_reg_cpp_generator.py} +82 -43
- mindspore/ops_generate/common/__init__.py +0 -0
- mindspore/ops_generate/common/gen_constants.py +91 -0
- mindspore/ops_generate/{gen_utils.py → common/gen_utils.py} +72 -19
- mindspore/ops_generate/{op_proto.py → common/op_proto.py} +64 -1
- mindspore/ops_generate/{template.py → common/template.py} +96 -84
- mindspore/ops_generate/gen_ops.py +23 -325
- mindspore/ops_generate/op_def/__init__.py +0 -0
- mindspore/ops_generate/op_def/gen_op_def.py +90 -0
- mindspore/ops_generate/{lite_ops_cpp_generator.py → op_def/lite_ops_cpp_generator.py} +47 -11
- mindspore/ops_generate/{ops_def_cc_generator.py → op_def/ops_def_cc_generator.py} +18 -10
- mindspore/ops_generate/{ops_def_h_generator.py → op_def/ops_def_h_generator.py} +5 -5
- mindspore/ops_generate/{ops_name_h_generator.py → op_def/ops_name_h_generator.py} +30 -15
- 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_generator.py → op_def_py/op_def_py_generator.py} +6 -5
- mindspore/ops_generate/{op_prim_py_generator.py → op_def_py/op_prim_py_generator.py} +24 -15
- mindspore/ops_generate/pyboost/__init__.py +0 -0
- mindspore/ops_generate/{auto_grad_impl_cc_generator.py → pyboost/auto_grad_impl_cc_generator.py} +11 -7
- mindspore/ops_generate/{auto_grad_reg_cc_generator.py → pyboost/auto_grad_reg_cc_generator.py} +7 -7
- mindspore/ops_generate/{gen_pyboost_func.py → pyboost/gen_pyboost_func.py} +40 -16
- mindspore/ops_generate/{op_template_parser.py → pyboost/op_template_parser.py} +105 -24
- mindspore/ops_generate/{pyboost_functions_cpp_generator.py → pyboost/pyboost_functions_cpp_generator.py} +55 -18
- mindspore/ops_generate/{pyboost_functions_h_generator.py → pyboost/pyboost_functions_h_generator.py} +42 -10
- mindspore/ops_generate/{pyboost_functions_py_generator.py → pyboost/pyboost_functions_py_generator.py} +6 -6
- mindspore/ops_generate/{pyboost_grad_function_cpp_generator.py → pyboost/pyboost_grad_function_cpp_generator.py} +11 -10
- mindspore/ops_generate/{pyboost_inner_prim_generator.py → pyboost/pyboost_inner_prim_generator.py} +8 -7
- mindspore/ops_generate/{pyboost_native_grad_functions_generator.py → pyboost/pyboost_native_grad_functions_generator.py} +14 -10
- mindspore/ops_generate/{pyboost_op_cpp_code_generator.py → pyboost/pyboost_op_cpp_code_generator.py} +140 -53
- mindspore/ops_generate/{pyboost_overload_functions_cpp_generator.py → pyboost/pyboost_overload_functions_cpp_generator.py} +28 -15
- mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +88 -4
- 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 +6 -2
- mindspore/parallel/_auto_parallel_context.py +140 -12
- mindspore/parallel/_cell_wrapper.py +132 -15
- mindspore/parallel/_parallel_serialization.py +95 -4
- mindspore/parallel/_ps_context.py +1 -1
- mindspore/parallel/_recovery_context.py +7 -2
- mindspore/parallel/_tensor.py +142 -18
- mindspore/parallel/_utils.py +198 -25
- mindspore/parallel/algo_parameter_config.py +3 -3
- mindspore/parallel/auto_parallel.py +732 -0
- mindspore/parallel/checkpoint_convert.py +159 -0
- mindspore/parallel/checkpoint_transform.py +658 -37
- mindspore/parallel/cluster/process_entity/_api.py +151 -19
- mindspore/parallel/cluster/run.py +1 -1
- 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 +24 -13
- mindspore/parallel/shard.py +137 -62
- mindspore/parallel/transform_safetensors.py +288 -95
- mindspore/pgodb140.dll +0 -0
- mindspore/pgort140.dll +0 -0
- mindspore/profiler/__init__.py +9 -5
- mindspore/profiler/analysis/parser/ascend_cann_parser.py +6 -2
- mindspore/profiler/analysis/parser/ms_framework_parser.py +4 -4
- mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +7 -4
- mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +25 -0
- mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +3 -3
- mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +241 -86
- mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +41 -2
- mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +33 -35
- mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +7 -0
- mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +8 -3
- mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +141 -30
- mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +5 -6
- mindspore/profiler/common/ascend_msprof_exporter.py +5 -4
- mindspore/profiler/common/constant.py +12 -0
- mindspore/profiler/common/msprof_cmd_tool.py +42 -23
- mindspore/profiler/common/path_manager.py +24 -0
- mindspore/profiler/common/profiler_context.py +26 -2
- mindspore/profiler/common/profiler_meta_data.py +74 -0
- mindspore/profiler/common/profiler_parameters.py +59 -18
- mindspore/profiler/common/profiler_path_manager.py +66 -7
- mindspore/profiler/dynamic_profiler.py +112 -79
- mindspore/profiler/envprofiler.py +26 -1
- mindspore/profiler/experimental_config.py +197 -0
- mindspore/profiler/mstx.py +57 -14
- mindspore/profiler/platform/npu_profiler.py +33 -7
- mindspore/profiler/profiler.py +541 -45
- mindspore/profiler/profiler_action_controller.py +1 -1
- mindspore/profiler/profiler_interface.py +4 -0
- mindspore/profiler/schedule.py +57 -22
- mindspore/rewrite/api/node.py +15 -13
- mindspore/rewrite/api/symbol_tree.py +1 -1
- mindspore/run_check/_check_version.py +25 -14
- mindspore/run_check/run_check.py +1 -1
- mindspore/runtime/__init__.py +2 -2
- mindspore/runtime/executor.py +40 -11
- mindspore/runtime/memory.py +37 -13
- 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 +43 -9
- mindspore/train/amp.py +1 -1
- mindspore/train/callback/__init__.py +2 -2
- mindspore/train/callback/_callback.py +2 -16
- mindspore/train/callback/_checkpoint.py +24 -40
- mindspore/train/callback/_cluster_monitor.py +14 -18
- mindspore/train/callback/_flops_collector.py +2 -3
- mindspore/train/callback/_history.py +7 -4
- 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 +8 -13
- mindspore/train/callback/_time_monitor.py +2 -1
- mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +204 -105
- mindspore/train/data_sink.py +25 -2
- mindspore/train/dataset_helper.py +4 -5
- 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 +8 -6
- mindspore/train/metrics/recall.py +9 -9
- mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
- mindspore/train/mind_ir_pb2.py +19 -12
- mindspore/train/model.py +262 -127
- mindspore/train/serialization.py +246 -988
- mindspore/train/summary/_summary_adapter.py +2 -2
- mindspore/train/summary/summary_record.py +1 -1
- mindspore/turbojpeg.dll +0 -0
- mindspore/utils/__init__.py +3 -2
- mindspore/utils/dryrun.py +4 -2
- mindspore/utils/hooks.py +81 -0
- mindspore/utils/runtime_execution_order_check.py +2 -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.5.0.dist-info → mindspore-2.6.0.dist-info}/METADATA +2 -1
- {mindspore-2.5.0.dist-info → mindspore-2.6.0.dist-info}/RECORD +485 -440
- mindspore/_install_custom.py +0 -43
- mindspore/common/_register_for_adapter.py +0 -74
- mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
- mindspore/ops/auto_generate/gen_arg_handler.py +0 -136
- mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
- mindspore/ops_generate/gen_constants.py +0 -190
- mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
- mindspore/ops_generate/ops_primitive_h_generator.py +0 -81
- /mindspore/ops_generate/{base_generator.py → common/base_generator.py} +0 -0
- {mindspore-2.5.0.dist-info → mindspore-2.6.0.dist-info}/WHEEL +0 -0
- {mindspore-2.5.0.dist-info → mindspore-2.6.0.dist-info}/entry_points.txt +0 -0
- {mindspore-2.5.0.dist-info → mindspore-2.6.0.dist-info}/top_level.txt +0 -0
|
@@ -17,11 +17,14 @@ import os
|
|
|
17
17
|
import re
|
|
18
18
|
from collections import defaultdict
|
|
19
19
|
|
|
20
|
-
from
|
|
20
|
+
from typing import Dict
|
|
21
21
|
from mindspore.profiler.analysis.viewer.base_viewer import BaseViewer
|
|
22
22
|
from mindspore.profiler.common.file_manager import FileManager
|
|
23
23
|
from mindspore.profiler.common.log import ProfilerLogger
|
|
24
24
|
|
|
25
|
+
from mindspore import log as logger
|
|
26
|
+
from mindspore.profiler.common.constant import JitLevel
|
|
27
|
+
|
|
25
28
|
|
|
26
29
|
class AscendCommunicationViewer(BaseViewer):
|
|
27
30
|
"""Ascend communication viewer"""
|
|
@@ -51,12 +54,14 @@ class AscendCommunicationViewer(BaseViewer):
|
|
|
51
54
|
|
|
52
55
|
def __init__(self, **kwargs):
|
|
53
56
|
super().__init__()
|
|
54
|
-
self.step_list = [
|
|
57
|
+
self.step_list = []
|
|
55
58
|
self.output_communication = {}
|
|
56
59
|
self.output_matrix_data = {}
|
|
57
60
|
self._output_path = kwargs.get("ascend_profiler_output_path")
|
|
58
61
|
self._msprof_analyze_output_path = kwargs.get("msprof_analyze_output_path")
|
|
59
62
|
self._ascend_ms_dir = kwargs.get("ascend_ms_dir")
|
|
63
|
+
self._is_set_schedule = kwargs.get("is_set_schedule")
|
|
64
|
+
self._jit_level = kwargs.get("jit_level")
|
|
60
65
|
ProfilerLogger.init(self._ascend_ms_dir)
|
|
61
66
|
self._logger = ProfilerLogger.get_instance()
|
|
62
67
|
self._communication_input_path = os.path.join(
|
|
@@ -82,6 +87,7 @@ class AscendCommunicationViewer(BaseViewer):
|
|
|
82
87
|
"""
|
|
83
88
|
self._logger.info("AscendCommunicationViewer start")
|
|
84
89
|
try:
|
|
90
|
+
self._init_step_list(data)
|
|
85
91
|
self._generate_communication()
|
|
86
92
|
self._generate_matrix()
|
|
87
93
|
self._save_analyze_data()
|
|
@@ -89,6 +95,39 @@ class AscendCommunicationViewer(BaseViewer):
|
|
|
89
95
|
self._logger.error("Failed to save ascend communication data, error: %s", e, exc_info=True)
|
|
90
96
|
self._logger.info("AscendCommunicationViewer end")
|
|
91
97
|
|
|
98
|
+
def _init_step_list(self, data):
|
|
99
|
+
"""
|
|
100
|
+
Init step list.
|
|
101
|
+
"""
|
|
102
|
+
trace_container = data.get("trace_view_container", None)
|
|
103
|
+
if trace_container is None:
|
|
104
|
+
raise ValueError("trace view container is None")
|
|
105
|
+
step_id_to_time_dict = trace_container.get_step_id_time_dict()
|
|
106
|
+
|
|
107
|
+
if not self._is_set_schedule or self._jit_level == JitLevel.GRAPH_LEVEL or not step_id_to_time_dict:
|
|
108
|
+
self._update_default_step_list()
|
|
109
|
+
else:
|
|
110
|
+
self._update_step_list(step_id_to_time_dict)
|
|
111
|
+
|
|
112
|
+
def _update_default_step_list(self):
|
|
113
|
+
"""
|
|
114
|
+
When the step dict is empty, it is set to the default value.
|
|
115
|
+
"""
|
|
116
|
+
self.step_list = [{"step_id": "0", "start_ts": 0, "end_ts": float('inf'), "comm_ops": {}}]
|
|
117
|
+
|
|
118
|
+
def _update_step_list(self, step_id_to_time_dict: Dict):
|
|
119
|
+
"""
|
|
120
|
+
When the step dict is not empty, set a value that contains the step id.
|
|
121
|
+
"""
|
|
122
|
+
for step_id, (start_time, end_time) in step_id_to_time_dict.items():
|
|
123
|
+
step_dict = {
|
|
124
|
+
"step_id": step_id,
|
|
125
|
+
"start_ts": start_time,
|
|
126
|
+
"end_ts": end_time,
|
|
127
|
+
"comm_ops": {}
|
|
128
|
+
}
|
|
129
|
+
self.step_list.append(step_dict)
|
|
130
|
+
|
|
92
131
|
def _save_analyze_data(self):
|
|
93
132
|
"""
|
|
94
133
|
Save analyse data
|
|
@@ -13,18 +13,21 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
# ============================================================================
|
|
15
15
|
"""Ascend kernel details viewer"""
|
|
16
|
-
import os
|
|
17
16
|
import csv
|
|
17
|
+
import os
|
|
18
18
|
from decimal import Decimal
|
|
19
19
|
|
|
20
|
-
from mindspore import log as logger
|
|
21
20
|
from mindspore.profiler.analysis.viewer.base_viewer import BaseViewer
|
|
22
|
-
from mindspore.profiler.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
from mindspore.profiler.common.constant import (
|
|
22
|
+
JitLevel,
|
|
23
|
+
ProfilerLevel,
|
|
24
|
+
OpSummaryHeaders,
|
|
25
|
+
ProfilerActivity
|
|
26
|
+
)
|
|
27
27
|
from mindspore.profiler.common.log import ProfilerLogger
|
|
28
|
+
from mindspore.profiler.common.path_manager import PathManager
|
|
29
|
+
|
|
30
|
+
from mindspore import log as logger
|
|
28
31
|
|
|
29
32
|
|
|
30
33
|
class AscendKernelDetailsViewer(BaseViewer):
|
|
@@ -63,6 +66,7 @@ class AscendKernelDetailsViewer(BaseViewer):
|
|
|
63
66
|
self._is_set_schedule = kwargs.get("is_set_schedule")
|
|
64
67
|
self._jit_level = kwargs.get("jit_level")
|
|
65
68
|
self._profiler_level = kwargs.get("profiler_level")
|
|
69
|
+
self._activities = kwargs.get("activities")
|
|
66
70
|
self.op_summary_headers = None
|
|
67
71
|
self.op_summary = None
|
|
68
72
|
self.trace_container = None
|
|
@@ -79,7 +83,7 @@ class AscendKernelDetailsViewer(BaseViewer):
|
|
|
79
83
|
if self._profiler_level == ProfilerLevel.LevelNone.value:
|
|
80
84
|
return
|
|
81
85
|
self._check_input_data(data)
|
|
82
|
-
self.
|
|
86
|
+
self._update_kernel_name_and_step_id()
|
|
83
87
|
self._update_headers()
|
|
84
88
|
self._write_data()
|
|
85
89
|
self._logger.info("Kernel details saved done")
|
|
@@ -132,27 +136,38 @@ class AscendKernelDetailsViewer(BaseViewer):
|
|
|
132
136
|
if header not in self.LEVEL0_EXCLUDE_HEADERS
|
|
133
137
|
]
|
|
134
138
|
|
|
135
|
-
if not self._is_set_schedule or self._jit_level == JitLevel.GRAPH_LEVEL
|
|
139
|
+
if (not self._is_set_schedule or self._jit_level == JitLevel.GRAPH_LEVEL or
|
|
140
|
+
not self.trace_container.get_step_id_time_dict()):
|
|
136
141
|
self.op_summary_headers.remove(OpSummaryHeaders.STEP_ID.value)
|
|
142
|
+
|
|
137
143
|
# rename headers
|
|
138
144
|
self.kernel_details_headers = [
|
|
139
145
|
self.RENAME_HEADERS.get(header, header)
|
|
140
146
|
for header in self.op_summary_headers
|
|
141
147
|
]
|
|
142
148
|
|
|
143
|
-
def
|
|
149
|
+
def _update_kernel_name_and_step_id(self):
|
|
144
150
|
"""
|
|
145
|
-
Update
|
|
151
|
+
Update kernel op name to framework launch op name and step id.
|
|
146
152
|
"""
|
|
147
153
|
self._logger.info("Update kernel name start")
|
|
148
|
-
|
|
154
|
+
|
|
149
155
|
dev_kernels = self.trace_container.hardware_op_event
|
|
156
|
+
step_id_to_time_dict = self.trace_container.get_step_id_time_dict()
|
|
157
|
+
|
|
158
|
+
# activities parameter NPU+CPU、CPU
|
|
159
|
+
if ProfilerActivity.CPU.value in self._activities:
|
|
160
|
+
self._update_kernel_detail_op_name_and_step_id(dev_kernels, step_id_to_time_dict)
|
|
161
|
+
|
|
162
|
+
def _update_kernel_detail_op_name_and_step_id(self, dev_kernels, step_id_to_time_dict):
|
|
163
|
+
"""
|
|
164
|
+
Update op summary op name and step id in NPU+CPU、CPU scenes.
|
|
165
|
+
"""
|
|
150
166
|
_generate_hardware_op_event_step_id(dev_kernels, step_id_to_time_dict)
|
|
151
167
|
|
|
152
|
-
if not dev_kernels:
|
|
168
|
+
if not dev_kernels and self._jit_level != JitLevel.GRAPH_LEVEL:
|
|
153
169
|
logger.warning(
|
|
154
170
|
"Cannot find the device kernels with MindSpore framework launch op, "
|
|
155
|
-
"Please verify if it's in graph mode."
|
|
156
171
|
)
|
|
157
172
|
return
|
|
158
173
|
|
|
@@ -190,7 +205,7 @@ class AscendKernelDetailsViewer(BaseViewer):
|
|
|
190
205
|
else:
|
|
191
206
|
launch_ops[index] = f"{fwk_langch_op_name}/{dev_kernel_name}"
|
|
192
207
|
|
|
193
|
-
if step_id is None and self._is_set_schedule:
|
|
208
|
+
if step_id is None and self._is_set_schedule and self._jit_level != JitLevel.GRAPH_LEVEL:
|
|
194
209
|
self._logger.warning(
|
|
195
210
|
"Can not find step id for dev kernel %s, ts %s",
|
|
196
211
|
dev_kernel_name,
|
|
@@ -203,27 +218,10 @@ class AscendKernelDetailsViewer(BaseViewer):
|
|
|
203
218
|
self.op_summary[OpSummaryHeaders.OP_NAME.value] = launch_ops
|
|
204
219
|
|
|
205
220
|
# update op summary step id
|
|
206
|
-
if self._is_set_schedule:
|
|
207
|
-
|
|
208
|
-
self.op_summary[OpSummaryHeaders.STEP_ID.value] = step_ids
|
|
209
|
-
self._logger.info("Update kernel name done")
|
|
210
|
-
|
|
221
|
+
if self._is_set_schedule and self._jit_level != JitLevel.GRAPH_LEVEL:
|
|
222
|
+
self.op_summary[OpSummaryHeaders.STEP_ID.value] = step_ids
|
|
211
223
|
|
|
212
|
-
|
|
213
|
-
"""
|
|
214
|
-
Generate the step id to time dict.
|
|
215
|
-
"""
|
|
216
|
-
# Retrieve all events from the trace container for the Mindspore timeline layer
|
|
217
|
-
events = trace_container.get_pool_by_name(TimelineLayerName.MINDSPORE.value).get_all_events()
|
|
218
|
-
|
|
219
|
-
# Filter events that contain "ProfilerStep" and create a dictionary mapping (start_ts, end_ts) to step ID
|
|
220
|
-
step_id_to_time_dict = {}
|
|
221
|
-
for event in events:
|
|
222
|
-
event_name = event.name
|
|
223
|
-
if ProfilerStepNameConstant.PROFILER_STEP in event_name:
|
|
224
|
-
step_id_to_time_dict[event.name.split("#")[-1]] = (event.ts, event.dur + event.ts)
|
|
225
|
-
|
|
226
|
-
return step_id_to_time_dict
|
|
224
|
+
self._logger.info("Update kernel name done")
|
|
227
225
|
|
|
228
226
|
|
|
229
227
|
def _generate_hardware_op_event_step_id(hardware_op_events_dict: dict, step_id_to_time_dict: dict):
|
|
@@ -19,6 +19,7 @@ from decimal import Decimal
|
|
|
19
19
|
from mindspore.profiler.analysis.viewer.base_viewer import BaseViewer
|
|
20
20
|
from mindspore.profiler.common.file_manager import FileManager
|
|
21
21
|
from mindspore.profiler.common.log import ProfilerLogger
|
|
22
|
+
from mindspore.profiler.common.constant import ProfilerActivity
|
|
22
23
|
|
|
23
24
|
|
|
24
25
|
class MemoryRecordBean:
|
|
@@ -167,6 +168,7 @@ class AscendMemoryViewer(BaseViewer):
|
|
|
167
168
|
self._framework_path = kwargs.get("framework_path")
|
|
168
169
|
self._msprof_profiler_output_path = kwargs.get("msprof_profile_output_path")
|
|
169
170
|
self._ascend_ms_dir = kwargs.get("ascend_ms_dir")
|
|
171
|
+
self._activities = kwargs.get("activities")
|
|
170
172
|
ProfilerLogger.init(self._ascend_ms_dir)
|
|
171
173
|
self._logger = ProfilerLogger.get_instance()
|
|
172
174
|
self._ge_memory_record = []
|
|
@@ -222,6 +224,11 @@ class AscendMemoryViewer(BaseViewer):
|
|
|
222
224
|
|
|
223
225
|
def _parse_ms_memory_record(self):
|
|
224
226
|
"""Parse mindspore memory record data"""
|
|
227
|
+
|
|
228
|
+
# No frame work data is collected when no CPU is passed in activities
|
|
229
|
+
if ProfilerActivity.CPU.value not in self._activities:
|
|
230
|
+
return
|
|
231
|
+
|
|
225
232
|
memory_record_file = os.path.join(
|
|
226
233
|
self._framework_path,
|
|
227
234
|
f"cpu_ms_memory_record_{self._rank_id}.txt",
|
|
@@ -23,6 +23,7 @@ from abc import ABC
|
|
|
23
23
|
from mindspore.profiler.parser.ascend_analysis.tlv_decoder import TLVDecoder
|
|
24
24
|
from mindspore.profiler.common.file_manager import FileManager
|
|
25
25
|
from mindspore.profiler.common.log import ProfilerLogger
|
|
26
|
+
from mindspore.profiler.common.constant import ProfilerActivity
|
|
26
27
|
|
|
27
28
|
|
|
28
29
|
class OpMemoryIndexEnum(Enum):
|
|
@@ -63,7 +64,7 @@ class OpMemoryEvent(BaseEvent):
|
|
|
63
64
|
FIX_DATA_FORMAT = "<i11QI4B"
|
|
64
65
|
FIX_DATA_SIZE = struct.calcsize(FIX_DATA_FORMAT)
|
|
65
66
|
FREE_VALUE = 18446744073709551615 # 2^64 - 1
|
|
66
|
-
NAME_KEY =
|
|
67
|
+
NAME_KEY = 13
|
|
67
68
|
|
|
68
69
|
def __init__(self, data: Dict):
|
|
69
70
|
super().__init__(data)
|
|
@@ -192,7 +193,7 @@ class AscendOpMemoryViewer:
|
|
|
192
193
|
"Device Type",
|
|
193
194
|
]
|
|
194
195
|
DEVICE_TYPE_FMT = "NPU:{}"
|
|
195
|
-
NS_TO_US =
|
|
196
|
+
NS_TO_US = 1000
|
|
196
197
|
BYTES_TO_KB = 1024
|
|
197
198
|
BYTES_TO_MB = 1024 * 1024
|
|
198
199
|
EMPTY_VALUE = "N/A"
|
|
@@ -203,6 +204,7 @@ class AscendOpMemoryViewer:
|
|
|
203
204
|
self._framework_path = kwargs.get("framework_path")
|
|
204
205
|
self._ascend_profiler_output_path = kwargs.get("ascend_profiler_output_path")
|
|
205
206
|
self._ascend_ms_dir = kwargs.get("ascend_ms_dir")
|
|
207
|
+
self._activities = kwargs.get("activities")
|
|
206
208
|
ProfilerLogger.init(self._ascend_ms_dir)
|
|
207
209
|
self._logger = ProfilerLogger.get_instance()
|
|
208
210
|
self._op_memory_events = None
|
|
@@ -214,7 +216,10 @@ class AscendOpMemoryViewer:
|
|
|
214
216
|
Save step trace time data to csv file
|
|
215
217
|
"""
|
|
216
218
|
self._logger.info("AscendOpMemoryViewer start")
|
|
217
|
-
|
|
219
|
+
|
|
220
|
+
# No frame work data is collected when no CPU is passed in activities
|
|
221
|
+
if ProfilerActivity.CPU.value not in self._activities or \
|
|
222
|
+
not self._enable_profile_memory:
|
|
218
223
|
return
|
|
219
224
|
|
|
220
225
|
try:
|
|
@@ -17,14 +17,19 @@ import os
|
|
|
17
17
|
import re
|
|
18
18
|
from decimal import Decimal
|
|
19
19
|
from enum import Enum
|
|
20
|
-
from typing import List, Any, Tuple
|
|
20
|
+
from typing import List, Any, Tuple, Optional
|
|
21
21
|
|
|
22
22
|
import numpy as np
|
|
23
23
|
|
|
24
24
|
from mindspore import log as logger
|
|
25
25
|
from mindspore.profiler.analysis.viewer.base_viewer import BaseViewer
|
|
26
26
|
from mindspore.profiler.common.file_manager import FileManager
|
|
27
|
-
from mindspore.profiler.common.constant import
|
|
27
|
+
from mindspore.profiler.common.constant import (
|
|
28
|
+
TimelineLayerName,
|
|
29
|
+
OverlapAnalysisTidName,
|
|
30
|
+
ProfilerLevel,
|
|
31
|
+
ProfilerActivity
|
|
32
|
+
)
|
|
28
33
|
from mindspore.profiler.analysis.parser.timeline_event.msprof_event import (
|
|
29
34
|
MsprofCompleteEvent,
|
|
30
35
|
)
|
|
@@ -60,7 +65,7 @@ class AscendStepTraceTimeViewer(BaseViewer):
|
|
|
60
65
|
# HCCL Send, Recv op pattern
|
|
61
66
|
PP_OP_PATTERN = (
|
|
62
67
|
# eg: hcom_BatchSendRecv__101_0_1
|
|
63
|
-
re.compile(r"hcom_\w+SendRecv__\d+"),
|
|
68
|
+
re.compile(r"^hcom_\w+SendRecv__\d+"),
|
|
64
69
|
# eg: hcom_send__101_0_1
|
|
65
70
|
re.compile(r"hcom_send__\d+"),
|
|
66
71
|
# eg: hcom_receive__101_0_1
|
|
@@ -80,9 +85,10 @@ class AscendStepTraceTimeViewer(BaseViewer):
|
|
|
80
85
|
)
|
|
81
86
|
self._profiler_level = kwargs.get("profiler_level")
|
|
82
87
|
self._ascend_ms_dir = kwargs.get("ascend_ms_dir")
|
|
88
|
+
self._activities = kwargs.get("activities")
|
|
83
89
|
ProfilerLogger.init(self._ascend_ms_dir)
|
|
84
90
|
self._logger = ProfilerLogger.get_instance()
|
|
85
|
-
self.
|
|
91
|
+
self.step_trace_time_data_list = []
|
|
86
92
|
self.trace_container: TraceViewContainer = None
|
|
87
93
|
self.hccl_pool: TimelineEventPool = None
|
|
88
94
|
self.overlap_pool: TimelineEventPool = None
|
|
@@ -122,7 +128,8 @@ class AscendStepTraceTimeViewer(BaseViewer):
|
|
|
122
128
|
Write step trace time data to csv file
|
|
123
129
|
"""
|
|
124
130
|
self._logger.info("Write step trace time data start")
|
|
125
|
-
data = [[str(
|
|
131
|
+
data = [[str(item.get(header, "")) for header in self.STEP_TRACE_TIME_HEADERS]
|
|
132
|
+
for item in self.step_trace_time_data_list]
|
|
126
133
|
FileManager.create_csv_file(
|
|
127
134
|
self._save_path,
|
|
128
135
|
data,
|
|
@@ -214,29 +221,126 @@ class AscendStepTraceTimeViewer(BaseViewer):
|
|
|
214
221
|
"""
|
|
215
222
|
Calculate step trace time data
|
|
216
223
|
"""
|
|
217
|
-
|
|
218
|
-
self.
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
self.
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
224
|
+
step_id_to_time_dict = self._init_step_dict()
|
|
225
|
+
self.generate_step_trace_time_data(step_id_to_time_dict)
|
|
226
|
+
|
|
227
|
+
def _init_step_dict(self):
|
|
228
|
+
"""
|
|
229
|
+
Init step list.
|
|
230
|
+
"""
|
|
231
|
+
return self.trace_container.get_step_id_time_dict() or {0: (Decimal('0'), Decimal('Infinity'))}
|
|
232
|
+
|
|
233
|
+
def generate_step_trace_time_data(self, step_id_to_time_dict):
|
|
234
|
+
"""
|
|
235
|
+
Generate step trace time data
|
|
236
|
+
"""
|
|
237
|
+
for step_id, (start_time, end_time) in step_id_to_time_dict.items():
|
|
238
|
+
# step id、computing time、communication time、communication not overlapped time、free time
|
|
239
|
+
computing_time = self._calculate_event_total_time_by_step(self.computing_np, start_time, end_time)
|
|
240
|
+
communication_time = self._calculate_event_total_time_by_step(self.communication_np, start_time, end_time)
|
|
241
|
+
communication_not_over_lapped_time = self._calculate_event_total_time_by_step(
|
|
242
|
+
self.communication_not_overlapped_np, start_time, end_time)
|
|
243
|
+
free_time = self._calculate_free_event_total_time_by_step(self.free_np, start_time, end_time)
|
|
244
|
+
step_trace_time_data = {StepTraceTimeHeaders.STEP.value: step_id,
|
|
245
|
+
StepTraceTimeHeaders.COMPUTING.value: computing_time,
|
|
246
|
+
StepTraceTimeHeaders.COMMUNICATION.value: communication_time,
|
|
247
|
+
StepTraceTimeHeaders.COMMUNICATION_NOT_OVERLAPPED.value:
|
|
248
|
+
communication_not_over_lapped_time,
|
|
249
|
+
StepTraceTimeHeaders.FREE.value: free_time}
|
|
250
|
+
# overlapped time
|
|
251
|
+
step_trace_time_data[StepTraceTimeHeaders.OVERLAPPED.value] = (
|
|
252
|
+
step_trace_time_data[StepTraceTimeHeaders.COMMUNICATION.value]
|
|
253
|
+
- step_trace_time_data[StepTraceTimeHeaders.COMMUNICATION_NOT_OVERLAPPED.value]
|
|
254
|
+
)
|
|
255
|
+
# stage time && bubble time
|
|
256
|
+
(
|
|
257
|
+
step_trace_time_data[StepTraceTimeHeaders.STAGE.value],
|
|
258
|
+
step_trace_time_data[StepTraceTimeHeaders.BUBBLE.value],
|
|
259
|
+
) = self._calculate_stage_bubble(start_time, end_time)
|
|
260
|
+
# communication not overlapped time exclude receive
|
|
261
|
+
step_trace_time_data[StepTraceTimeHeaders.COMMUNICATION_NOT_OVERLAPPED_EXCLUDE_RECEIVE.value] = (
|
|
262
|
+
step_trace_time_data[StepTraceTimeHeaders.COMMUNICATION_NOT_OVERLAPPED.value]
|
|
263
|
+
- step_trace_time_data[StepTraceTimeHeaders.BUBBLE.value]
|
|
264
|
+
)
|
|
265
|
+
step_trace_time_data[StepTraceTimeHeaders.PREPARING.value] = self._calculate_prepare_time_by_step(
|
|
266
|
+
self.computing_np, self.communication_np, start_time, step_id
|
|
267
|
+
)
|
|
268
|
+
self.step_trace_time_data_list.append(step_trace_time_data)
|
|
269
|
+
|
|
270
|
+
def _calculate_event_total_time_by_step(self, times: np.ndarray, ts: Decimal, es: Decimal) -> Decimal:
|
|
271
|
+
"""
|
|
272
|
+
Calculate event total time by step.
|
|
273
|
+
"""
|
|
274
|
+
|
|
275
|
+
ts_values = times['ts']
|
|
276
|
+
|
|
277
|
+
mask = (ts_values >= ts) & (ts_values <= es)
|
|
278
|
+
filtered_times = times[mask]
|
|
279
|
+
|
|
280
|
+
return Decimal(str(filtered_times['dur'].sum())).quantize(Decimal('0.000'))
|
|
281
|
+
|
|
282
|
+
def _calculate_free_event_total_time_by_step(self, times: np.ndarray, ts: Decimal, es: Decimal) -> Decimal:
|
|
283
|
+
"""
|
|
284
|
+
Calculate free event total time by step, with clipping of events that exceed the time range.
|
|
285
|
+
"""
|
|
286
|
+
start_times = times['ts']
|
|
287
|
+
durations = times['dur']
|
|
288
|
+
end_times = start_times + durations
|
|
289
|
+
|
|
290
|
+
# Clip start times to ts and end times to es
|
|
291
|
+
clipped_start_times = np.maximum(start_times, ts)
|
|
292
|
+
clipped_end_times = np.minimum(end_times, es)
|
|
293
|
+
|
|
294
|
+
# Calculate the clipped durations
|
|
295
|
+
clipped_durations = np.maximum(clipped_end_times - clipped_start_times, Decimal('0.000'))
|
|
238
296
|
|
|
239
|
-
|
|
297
|
+
return Decimal(sum(clipped_durations)).quantize(Decimal('0.000'))
|
|
298
|
+
|
|
299
|
+
def _calculate_event_first_time_by_step(self, times: np.ndarray, ts: Decimal) -> Optional[Decimal]:
|
|
300
|
+
"""
|
|
301
|
+
Calculate event first time by step.
|
|
302
|
+
"""
|
|
303
|
+
|
|
304
|
+
idx = np.searchsorted(times['ts'], ts)
|
|
305
|
+
|
|
306
|
+
if idx >= len(times):
|
|
307
|
+
return None
|
|
308
|
+
|
|
309
|
+
return Decimal(str(times['ts'][idx])).quantize(Decimal('0.000'))
|
|
310
|
+
|
|
311
|
+
def _calculate_prepare_time_by_step(self, computing_np: np.ndarray, communication_np: np.ndarray,
|
|
312
|
+
ts: Decimal, step_id: int) -> Decimal:
|
|
313
|
+
"""
|
|
314
|
+
calculate prepare time
|
|
315
|
+
"""
|
|
316
|
+
|
|
317
|
+
# No frame work data is collected when no CPU is passed in activities
|
|
318
|
+
if ProfilerActivity.CPU.value not in self._activities:
|
|
319
|
+
return Decimal('0.000')
|
|
320
|
+
|
|
321
|
+
step_computing_first_time = self._calculate_event_first_time_by_step(computing_np, ts)
|
|
322
|
+
step_communication_first_time = self._calculate_event_first_time_by_step(communication_np, ts)
|
|
323
|
+
|
|
324
|
+
if step_computing_first_time and step_communication_first_time:
|
|
325
|
+
step_first_device_task_time = min(step_computing_first_time, step_communication_first_time)
|
|
326
|
+
else:
|
|
327
|
+
step_first_device_task_time = step_computing_first_time or step_communication_first_time
|
|
328
|
+
|
|
329
|
+
if step_first_device_task_time:
|
|
330
|
+
if ts == Decimal("0"): # When Profiler.step() is not used
|
|
331
|
+
fmk_api_events = self.trace_container.get_pool_by_name(
|
|
332
|
+
TimelineLayerName.MINDSPORE.value
|
|
333
|
+
).get_complete_events()
|
|
334
|
+
step_host_start_time = min(event.ts for event in fmk_api_events)
|
|
335
|
+
else:
|
|
336
|
+
step_host_start_time = ts
|
|
337
|
+
step_prepare_time = step_first_device_task_time - step_host_start_time
|
|
338
|
+
return step_prepare_time.quantize(Decimal('0.000'))
|
|
339
|
+
|
|
340
|
+
logger.warning(f"Failed to find device task in step {step_id}, set prepare time to 0")
|
|
341
|
+
return Decimal('0.000')
|
|
342
|
+
|
|
343
|
+
def _calculate_stage_bubble(self, ts: Decimal, es: Decimal) -> Tuple[Decimal, Decimal]:
|
|
240
344
|
"""
|
|
241
345
|
Calculate stage and bubble time
|
|
242
346
|
"""
|
|
@@ -244,13 +348,20 @@ class AscendStepTraceTimeViewer(BaseViewer):
|
|
|
244
348
|
logger.info("HCCL events is empty, skip calculate stage and bubble")
|
|
245
349
|
return Decimal(0), Decimal(0)
|
|
246
350
|
|
|
247
|
-
|
|
351
|
+
mask = (self.hccl_events_np["ts"] >= ts) & (self.hccl_events_np["ts"] <= es)
|
|
352
|
+
filtered_hccl_events_np = self.hccl_events_np[mask]
|
|
353
|
+
|
|
354
|
+
if filtered_hccl_events_np.size == 0:
|
|
355
|
+
logger.info("No HCCL events in the given time range, skip calculate stage and bubble")
|
|
356
|
+
return Decimal(0), Decimal(0)
|
|
357
|
+
|
|
358
|
+
total_hccl_time = filtered_hccl_events_np["ts"][-1] - filtered_hccl_events_np["ts"][0]
|
|
248
359
|
bubble_time = np.sum(
|
|
249
|
-
|
|
360
|
+
filtered_hccl_events_np["dur"][
|
|
250
361
|
np.array(
|
|
251
362
|
[
|
|
252
363
|
self._is_send_recv_op(name)
|
|
253
|
-
for name in
|
|
364
|
+
for name in filtered_hccl_events_np["name"]
|
|
254
365
|
]
|
|
255
366
|
)
|
|
256
367
|
]
|
|
@@ -18,13 +18,12 @@ from collections import defaultdict
|
|
|
18
18
|
from typing import List, Dict, Any
|
|
19
19
|
|
|
20
20
|
from mindspore import log as logger
|
|
21
|
-
from mindspore.profiler.common.constant import FileConstant
|
|
21
|
+
from mindspore.profiler.common.constant import FileConstant
|
|
22
22
|
from mindspore.profiler.common.file_manager import FileManager
|
|
23
23
|
from mindspore.profiler.analysis.viewer.base_viewer import BaseViewer
|
|
24
24
|
from mindspore.profiler.analysis.parser.timeline_event.fwk_event import (
|
|
25
25
|
FwkCompleteEvent,
|
|
26
26
|
OpRangeStructField,
|
|
27
|
-
FwkArgsDecoder
|
|
28
27
|
)
|
|
29
28
|
from mindspore.profiler.common.log import ProfilerLogger
|
|
30
29
|
|
|
@@ -69,10 +68,10 @@ class MsDatasetViewer(BaseViewer):
|
|
|
69
68
|
"""Calculate statistics for dataset operations."""
|
|
70
69
|
dataset_op_data = []
|
|
71
70
|
for data in fwk_tlv_data:
|
|
72
|
-
if (data[FileConstant.FIX_SIZE_DATA][OpRangeStructField.
|
|
73
|
-
data[FileConstant.FIX_SIZE_DATA][OpRangeStructField.
|
|
74
|
-
name = data.get(
|
|
75
|
-
if name
|
|
71
|
+
if (data[FileConstant.FIX_SIZE_DATA][OpRangeStructField.START_TIME_NS.value] <
|
|
72
|
+
data[FileConstant.FIX_SIZE_DATA][OpRangeStructField.END_TIME_NS.value]): # dur > 0
|
|
73
|
+
name = data.get(OpRangeStructField.MODULE_GRAPH.value, "")
|
|
74
|
+
if name == self._DATASET_OP_PREFIX:
|
|
76
75
|
dataset_op_data.append(FwkCompleteEvent(data))
|
|
77
76
|
|
|
78
77
|
dataset_op_stats = defaultdict(list)
|
|
@@ -38,6 +38,7 @@ class AscendMsprofExporter:
|
|
|
38
38
|
self._msprof_profile_output_path = kwargs.get("msprof_profile_output_path")
|
|
39
39
|
self._msprof_profile_path = kwargs.get("msprof_profile_path")
|
|
40
40
|
self._step_list = kwargs.get("step_list")
|
|
41
|
+
self._export_type = kwargs.get("export_type")
|
|
41
42
|
self._msprof_tool = MsprofCmdTool(self._msprof_profile_path)
|
|
42
43
|
|
|
43
44
|
def export(self) -> None:
|
|
@@ -47,7 +48,7 @@ class AscendMsprofExporter:
|
|
|
47
48
|
self._single_export(self._step_list)
|
|
48
49
|
else:
|
|
49
50
|
self._all_export()
|
|
50
|
-
self._msprof_tool.run_ms_analyze_cmd()
|
|
51
|
+
self._msprof_tool.run_ms_analyze_cmd(self._export_type)
|
|
51
52
|
|
|
52
53
|
def _single_export(self, step_list: Optional[List[int]]) -> None:
|
|
53
54
|
"""Perform single export for each model and iteration.
|
|
@@ -63,11 +64,11 @@ class AscendMsprofExporter:
|
|
|
63
64
|
model_iteration_dict = {self._DEFAULT_MODEL_ID: step_list}
|
|
64
65
|
|
|
65
66
|
for model_id, iter_list in model_iteration_dict.items():
|
|
66
|
-
self._msprof_tool.run_ms_py_export_cmd(model_id, iter_list)
|
|
67
|
+
self._msprof_tool.run_ms_py_export_cmd(model_id, iter_list, self._export_type)
|
|
67
68
|
|
|
68
69
|
def _all_export(self) -> None:
|
|
69
70
|
"""Perform all-export for all data."""
|
|
70
|
-
self._msprof_tool.run_ms_export_cmd()
|
|
71
|
+
self._msprof_tool.run_ms_export_cmd(self._export_type)
|
|
71
72
|
|
|
72
73
|
def _check_drv_version(self) -> bool:
|
|
73
74
|
"""Check if the driver version supports all-export.
|
|
@@ -99,7 +100,7 @@ class AscendMsprofExporter:
|
|
|
99
100
|
"""
|
|
100
101
|
try:
|
|
101
102
|
# step1: run msprof command
|
|
102
|
-
self._msprof_tool.run_ms_export_cmd()
|
|
103
|
+
self._msprof_tool.run_ms_export_cmd(self._export_type)
|
|
103
104
|
step_trace_file = glob.glob(
|
|
104
105
|
os.path.join(
|
|
105
106
|
self._msprof_profile_output_path, self._STEP_TRACE_FILE_PATTERN
|
|
@@ -51,6 +51,7 @@ class AicoreMetrics(Enum):
|
|
|
51
51
|
MemoryUB = "MemoryUB"
|
|
52
52
|
ResourceConflictRatio = "ResourceConflictRatio"
|
|
53
53
|
L2Cache = "L2Cache"
|
|
54
|
+
MemoryAccess = "MemoryAccess"
|
|
54
55
|
AiCoreNone = "None"
|
|
55
56
|
|
|
56
57
|
|
|
@@ -137,6 +138,7 @@ class EventConstant:
|
|
|
137
138
|
TOP_SCOPE_NAMES = ('Default', 'Gradients', 'recompute_Default')
|
|
138
139
|
KERNEL_LAUNCH_KEYWORDS = ("KernelLaunch", "LaunchTask")
|
|
139
140
|
MSTX_KEYWORD = "Mstx"
|
|
141
|
+
STACK_EVENT_CAT = "python_function"
|
|
140
142
|
|
|
141
143
|
FLOW_OP = "flow"
|
|
142
144
|
INVALID_FLOW_ID = 18446744073709551615
|
|
@@ -198,3 +200,13 @@ class JitLevel:
|
|
|
198
200
|
KBK_LEVEL = "O0"
|
|
199
201
|
KBK_DVM_LEVEL = "O1"
|
|
200
202
|
GRAPH_LEVEL = "O2"
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
class ExportType(Enum):
|
|
206
|
+
Db = "db"
|
|
207
|
+
Text = "text"
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
class CannLibName:
|
|
211
|
+
"""CANN lib name"""
|
|
212
|
+
CANN_MSPTI = "libmspti.so"
|