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
mindspore/profiler/__init__.py
CHANGED
|
@@ -16,26 +16,30 @@
|
|
|
16
16
|
This module provides Python APIs to enable the profiling of MindSpore neural networks.
|
|
17
17
|
Users can import the mindspore.profiler.Profiler, initialize the Profiler object to start profiling,
|
|
18
18
|
and use Profiler.analyse() to stop profiling and analyse the results.
|
|
19
|
-
Users can visualize the results using the MindInsight tool.
|
|
20
19
|
Now, Profiler supports AICORE operator, AICPU operator, HostCPU operator, memory,
|
|
21
20
|
correspondence, cluster, etc data analysis.
|
|
22
21
|
"""
|
|
23
22
|
__all__ = [
|
|
24
|
-
"
|
|
23
|
+
"tensorboard_trace_handler",
|
|
25
24
|
"schedule",
|
|
26
25
|
"Profiler",
|
|
27
26
|
"EnvProfiler",
|
|
28
27
|
"ProfilerLevel",
|
|
29
28
|
"ProfilerActivity",
|
|
30
29
|
"AicoreMetrics",
|
|
30
|
+
"ExportType",
|
|
31
31
|
"DynamicProfilerMonitor",
|
|
32
|
-
"mstx"
|
|
32
|
+
"mstx",
|
|
33
|
+
"_ExperimentalConfig",
|
|
34
|
+
"profile"
|
|
33
35
|
]
|
|
34
36
|
|
|
35
37
|
from mindspore.profiler.mstx import Mstx as mstx
|
|
36
38
|
from mindspore.profiler.profiler import Profiler
|
|
37
|
-
from mindspore.profiler.profiler import
|
|
39
|
+
from mindspore.profiler.profiler import tensorboard_trace_handler
|
|
38
40
|
from mindspore.profiler.schedule import Schedule as schedule
|
|
39
41
|
from mindspore.profiler.envprofiler import EnvProfiler
|
|
40
|
-
from mindspore.profiler.common.constant import ProfilerLevel, ProfilerActivity, AicoreMetrics
|
|
42
|
+
from mindspore.profiler.common.constant import ProfilerLevel, ProfilerActivity, AicoreMetrics, ExportType
|
|
41
43
|
from mindspore.profiler.dynamic_profiler import DynamicProfilerMonitor
|
|
44
|
+
from mindspore.profiler.experimental_config import _ExperimentalConfig
|
|
45
|
+
from mindspore.profiler.profiler import Profile as profile
|
|
@@ -23,7 +23,7 @@ from mindspore import log as logger
|
|
|
23
23
|
from mindspore.profiler.analysis.parser.base_parser import BaseParser
|
|
24
24
|
from mindspore.profiler.common.file_manager import FileManager
|
|
25
25
|
from mindspore.profiler.common.path_manager import PathManager
|
|
26
|
-
from mindspore.profiler.common.constant import ProfilerLevel
|
|
26
|
+
from mindspore.profiler.common.constant import ProfilerLevel, ExportType
|
|
27
27
|
from mindspore.profiler.common.ascend_msprof_exporter import AscendMsprofExporter
|
|
28
28
|
from mindspore.profiler.common.log import ProfilerLogger
|
|
29
29
|
|
|
@@ -50,6 +50,7 @@ class AscendMsprofParser(BaseParser):
|
|
|
50
50
|
)
|
|
51
51
|
self._ascend_ms_dir = self._kwargs.get("ascend_ms_dir")
|
|
52
52
|
self._profiler_level = kwargs.get("profiler_level")
|
|
53
|
+
self._export_type = kwargs.get("export_type")
|
|
53
54
|
ProfilerLogger.init(self._ascend_ms_dir)
|
|
54
55
|
self._logger = ProfilerLogger.get_instance()
|
|
55
56
|
self.op_summary = None
|
|
@@ -89,7 +90,8 @@ class AscendMsprofParser(BaseParser):
|
|
|
89
90
|
Raises:
|
|
90
91
|
RuntimeError: If no op summary files are found or read file failed.
|
|
91
92
|
"""
|
|
92
|
-
if self._profiler_level == ProfilerLevel.LevelNone.value
|
|
93
|
+
if (self._profiler_level == ProfilerLevel.LevelNone.value or
|
|
94
|
+
self._export_type == [ExportType.Db.value]):
|
|
93
95
|
return
|
|
94
96
|
file_path_list = glob.glob(
|
|
95
97
|
os.path.join(
|
|
@@ -117,6 +119,8 @@ class AscendMsprofParser(BaseParser):
|
|
|
117
119
|
Raises:
|
|
118
120
|
RuntimeError: If no msprof JSON files are found in the specified directory.
|
|
119
121
|
"""
|
|
122
|
+
if self._export_type == [ExportType.Db.value]:
|
|
123
|
+
return
|
|
120
124
|
file_path_list = []
|
|
121
125
|
for pattern in self._MSPROF_TIMELINE_FILE_PATTERN:
|
|
122
126
|
file_path_list.extend(glob.glob(os.path.join(self._msprof_profile_output_path, pattern)))
|
|
@@ -29,7 +29,7 @@ from mindspore.profiler.common.log import ProfilerLogger
|
|
|
29
29
|
class FrameworkParser(BaseParser):
|
|
30
30
|
"""Parser for MindSpore framework profiling data."""
|
|
31
31
|
|
|
32
|
-
_OP_RANGE_FILE_NAME = "
|
|
32
|
+
_OP_RANGE_FILE_NAME = "mindspore.op_range"
|
|
33
33
|
_CPU_OP_TIMESTAMP_FILE_NAME = "cpu_op_execute_timestamp_{}.txt"
|
|
34
34
|
|
|
35
35
|
def __init__(self, next_parser: Optional[BaseParser] = None, **kwargs):
|
|
@@ -43,7 +43,7 @@ class FrameworkParser(BaseParser):
|
|
|
43
43
|
self._ascend_ms_dir = kwargs.get("ascend_ms_dir")
|
|
44
44
|
self._op_range_path = os.path.join(
|
|
45
45
|
self._framework_path,
|
|
46
|
-
self._OP_RANGE_FILE_NAME
|
|
46
|
+
self._OP_RANGE_FILE_NAME
|
|
47
47
|
)
|
|
48
48
|
self._cpu_op_path = os.path.join(
|
|
49
49
|
self._framework_path,
|
|
@@ -118,13 +118,13 @@ class FrameworkParser(BaseParser):
|
|
|
118
118
|
return op_range_list
|
|
119
119
|
|
|
120
120
|
first_step = min(
|
|
121
|
-
op[FileConstant.FIX_SIZE_DATA][OpRangeStructField.
|
|
121
|
+
op[FileConstant.FIX_SIZE_DATA][OpRangeStructField.STEP.value]
|
|
122
122
|
for op in op_range_list
|
|
123
123
|
)
|
|
124
124
|
adjusted_step_list = [step - 1 + first_step for step in self._step_list]
|
|
125
125
|
return [
|
|
126
126
|
op for op in op_range_list
|
|
127
|
-
if op[FileConstant.FIX_SIZE_DATA][OpRangeStructField.
|
|
127
|
+
if op[FileConstant.FIX_SIZE_DATA][OpRangeStructField.STEP.value] in adjusted_step_list
|
|
128
128
|
]
|
|
129
129
|
|
|
130
130
|
def _parse_cpu_op_data(self) -> List[str]:
|
|
@@ -19,7 +19,7 @@ from collections import defaultdict
|
|
|
19
19
|
|
|
20
20
|
from mindspore import context
|
|
21
21
|
from mindspore import log as logger
|
|
22
|
-
from mindspore.profiler.common.constant import EventConstant, TimelineLayerName, ProfilerLevel
|
|
22
|
+
from mindspore.profiler.common.constant import EventConstant, TimelineLayerName, ProfilerLevel, JitLevel
|
|
23
23
|
from mindspore.profiler.analysis.parser.timeline_event.base_event import BaseEvent
|
|
24
24
|
from mindspore.profiler.analysis.parser.timeline_event.timeline_event_pool import TimelineEventPool
|
|
25
25
|
from mindspore.profiler.analysis.parser.timeline_event.flow_event import FlowStartEvent, FlowEndEvent
|
|
@@ -40,6 +40,7 @@ class AscendTimelineAssembler(BaseTimelineAssembler):
|
|
|
40
40
|
super().__init__()
|
|
41
41
|
self._profiler_level = kwargs.get("profiler_level")
|
|
42
42
|
self._context_mode = kwargs.get("context_mode")
|
|
43
|
+
self._jit_level = kwargs.get("jit_level")
|
|
43
44
|
self._init_creators()
|
|
44
45
|
|
|
45
46
|
def _init_creators(self):
|
|
@@ -127,11 +128,13 @@ class AscendTimelineAssembler(BaseTimelineAssembler):
|
|
|
127
128
|
"""Create flow events between framework and hardware events."""
|
|
128
129
|
acl_to_npu_flow_dict = self._msprof_creator.get_acl_to_npu_flow_dict()
|
|
129
130
|
fwk_launch_op_list = self.trace_view_container.kernel_launch_op_event
|
|
130
|
-
|
|
131
|
+
# The graph mode O2 does not have the flow from CANN to hardware at each step
|
|
132
|
+
if not acl_to_npu_flow_dict and self._jit_level != JitLevel.GRAPH_LEVEL:
|
|
131
133
|
logger.error("Cannot find connection between CANN layer and Ascend Hardware layer.")
|
|
132
134
|
return []
|
|
133
|
-
|
|
134
|
-
|
|
135
|
+
# The graph model O2 does not have "KernelLaunch" or "LaunchTask" keywords
|
|
136
|
+
if not fwk_launch_op_list and self._jit_level != JitLevel.GRAPH_LEVEL:
|
|
137
|
+
logger.warning("Cannot find launch op in MindSpore framework.")
|
|
135
138
|
return []
|
|
136
139
|
if (set(acl_to_npu_flow_dict.keys()) != set(fwk_launch_op_list.keys()) and
|
|
137
140
|
self._context_mode == context.PYNATIVE_MODE):
|
|
@@ -15,6 +15,7 @@ from collections import defaultdict
|
|
|
15
15
|
|
|
16
16
|
from mindspore.profiler.analysis.parser.timeline_event.timeline_event_pool import TimelineEventPool
|
|
17
17
|
from mindspore.profiler.analysis.parser.timeline_event.base_event import BaseEvent
|
|
18
|
+
from mindspore.profiler.common.constant import ProfilerStepNameConstant, TimelineLayerName
|
|
18
19
|
|
|
19
20
|
|
|
20
21
|
class TraceViewContainer:
|
|
@@ -82,3 +83,27 @@ class TraceViewContainer:
|
|
|
82
83
|
def get_all_pools(self) -> List[TimelineEventPool]:
|
|
83
84
|
"""Get all event pools."""
|
|
84
85
|
return list(self.event_pools.values())
|
|
86
|
+
|
|
87
|
+
def get_step_id_time_dict(self) -> Dict:
|
|
88
|
+
"""Get step id to time dict."""
|
|
89
|
+
# Retrieve all events from the trace container for the Mindspore timeline layer
|
|
90
|
+
|
|
91
|
+
mindspore_pool = self.get_pool_by_name(TimelineLayerName.MINDSPORE.value)
|
|
92
|
+
if not mindspore_pool:
|
|
93
|
+
return {}
|
|
94
|
+
|
|
95
|
+
events = mindspore_pool.get_all_events()
|
|
96
|
+
|
|
97
|
+
# Filter events that contain "ProfilerStep" and create a dictionary mapping (start_ts, end_ts) to step ID
|
|
98
|
+
step_id_to_time_dict = dict(
|
|
99
|
+
sorted(
|
|
100
|
+
(
|
|
101
|
+
(event.name.split("#")[-1], (event.ts, event.dur + event.ts))
|
|
102
|
+
for event in events
|
|
103
|
+
if ProfilerStepNameConstant.PROFILER_STEP in event.name
|
|
104
|
+
),
|
|
105
|
+
key=lambda item: item[1][0]
|
|
106
|
+
)
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
return step_id_to_time_dict
|
|
@@ -43,10 +43,10 @@ class FwkTimelineCreator(BaseTimelineCreator):
|
|
|
43
43
|
def _create_base_events(self, pool: TimelineEventPool, fwk_tlv_data: List[Dict]) -> None:
|
|
44
44
|
"""Create base events from framework TLV data."""
|
|
45
45
|
for data in fwk_tlv_data:
|
|
46
|
-
if data[FileConstant.FIX_SIZE_DATA][OpRangeStructField.
|
|
46
|
+
if data[FileConstant.FIX_SIZE_DATA][OpRangeStructField.START_TIME_NS.value] == 0: # Filter abnormal data
|
|
47
47
|
continue
|
|
48
|
-
if (data[FileConstant.FIX_SIZE_DATA][OpRangeStructField.
|
|
49
|
-
data[FileConstant.FIX_SIZE_DATA][OpRangeStructField.
|
|
48
|
+
if (data[FileConstant.FIX_SIZE_DATA][OpRangeStructField.START_TIME_NS.value] ==
|
|
49
|
+
data[FileConstant.FIX_SIZE_DATA][OpRangeStructField.END_TIME_NS.value]): # dur == 0
|
|
50
50
|
event = FwkInstantEvent(data)
|
|
51
51
|
else:
|
|
52
52
|
event = FwkCompleteEvent(data)
|
|
@@ -15,79 +15,235 @@
|
|
|
15
15
|
"""Framework event classes for timeline analysis."""
|
|
16
16
|
from enum import Enum
|
|
17
17
|
from decimal import Decimal
|
|
18
|
-
from typing import Dict, Optional, List
|
|
18
|
+
from typing import Dict, Optional, List
|
|
19
19
|
|
|
20
|
+
from mindspore import log as logger
|
|
20
21
|
from mindspore.profiler.common.constant import EventConstant, FileConstant
|
|
21
22
|
from mindspore.profiler.analysis.time_converter import TimeConverter
|
|
22
23
|
from mindspore.profiler.analysis.parser.timeline_event.base_event import (
|
|
23
24
|
BaseEvent,
|
|
24
25
|
CompleteEvent,
|
|
25
26
|
MetaEvent,
|
|
26
|
-
InstantEvent
|
|
27
|
+
InstantEvent,
|
|
27
28
|
)
|
|
28
29
|
|
|
29
30
|
|
|
31
|
+
class ProfilerStage(Enum):
|
|
32
|
+
"""Profiler stage enumeration."""
|
|
33
|
+
DEFAULT = "Default"
|
|
34
|
+
PYTHON = "Python"
|
|
35
|
+
CAPTURE = "Capture"
|
|
36
|
+
RUN_GRAPH = "RunGraph"
|
|
37
|
+
RUN_GRAD = "RunGrad"
|
|
38
|
+
RUN_OP = "RunOp"
|
|
39
|
+
ASNUMPY = "Asnumpy"
|
|
40
|
+
COMPILE_GRAD_GRAPH = "CompileGradGraph"
|
|
41
|
+
WAIT_PIPELINE = "WaitPipeline"
|
|
42
|
+
SYNC_STREAM = "SyncStream"
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
class ProfilerModule(Enum):
|
|
46
|
+
"""Profiler module enumeration."""
|
|
47
|
+
DEFAULT = "Default"
|
|
48
|
+
GRAPH_EXECUTOR_PY = "GraphExecutorPy"
|
|
49
|
+
RUNTIME_FRAMEWORK = "RuntimeFramework"
|
|
50
|
+
PYNATIVE_FRAMEWORK = "PynativeFramework"
|
|
51
|
+
KERNEL = "Kernel"
|
|
52
|
+
PYTHON = "Python"
|
|
53
|
+
CAPTURE = "Capture"
|
|
54
|
+
OTHER = "Other"
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
class ProfilerEvent(Enum):
|
|
58
|
+
"""Profiler event enumeration."""
|
|
59
|
+
DEFAULT = "Default"
|
|
60
|
+
KERNEL_INFER = "KernelInfer"
|
|
61
|
+
KERNEL_RESIZE = "KernelResize"
|
|
62
|
+
KERNEL_INFER_AND_RESIZE = "KernelInferAndResize"
|
|
63
|
+
KERNEL_LAUNCH = "KernelLaunch"
|
|
64
|
+
KERNEL_LAUNCH_CALLBACK = "KernelLaunckCallback"
|
|
65
|
+
KERNEL_UPDATE = "KernelUpdate"
|
|
66
|
+
KERNEL_PREPARE_DATA = "KernelPrepareData"
|
|
67
|
+
GRAPH_LAUNCH = "GraphLaunch"
|
|
68
|
+
INPUT_PROCESS = "InputProcess"
|
|
69
|
+
OUTPUT_PROCESS = "OutputProcess"
|
|
70
|
+
WAIT_TASK_FINISH = "WaitTaskFinish"
|
|
71
|
+
PRE_LAUNCH = "PreLaunch"
|
|
72
|
+
POST_LAUNCH = "PostLaunch"
|
|
73
|
+
SEND_OUTPUT = "SendOutput"
|
|
74
|
+
MEMORY_ALLOC = "MemoryAlloc"
|
|
75
|
+
MEMORY_FREE = "MemoryFree"
|
|
76
|
+
COPY_DATA = "CopyData"
|
|
77
|
+
STREAM_SYNC = "StreamSync"
|
|
78
|
+
PROCESS_MULTI_STREAM = "ProcessMultiStream"
|
|
79
|
+
WAIT_KERNELS_INFER_FINISH = "WaitKernelsInferFinish"
|
|
80
|
+
WAIT_KERNELS_RESIZE_FINISH = "WaitKernelsResizeFinish"
|
|
81
|
+
WAIT_KERNELS_LAUNCH_FINISH = "WaitKernelsLaunchFinish"
|
|
82
|
+
# Inner event is not counted in the total time.
|
|
83
|
+
KERNEL_INFER_INNER = "KernelInferInner"
|
|
84
|
+
KERNEL_INFER_DATA_SYNC = "KernelInferDataSync"
|
|
85
|
+
KERNEL_RESIZE_INNER = "KernelResizeInner"
|
|
86
|
+
KERNEL_LAUNCH_INNER = "KernelLaunchInner"
|
|
87
|
+
BACKEND_GRAPH_RUN_INNER = "BackendGraphRunInner"
|
|
88
|
+
# PyNative Pipeline
|
|
89
|
+
RUN_OP = "RunOp"
|
|
90
|
+
PYNATIVE_FRONTEND_TASK = "PyNativeFrontendTask"
|
|
91
|
+
PYNATIVE_BACKEND_TASK = "PyNativeBackendTask"
|
|
92
|
+
PYNATIVE_DEVICE_TASK = "PyNativeDeviceTask"
|
|
93
|
+
PYNATIVE_LAUNCH_TASK = "PyNativeLaunchTask"
|
|
94
|
+
PYNATIVE_BPROP_TASK = "PyNativeBpropTask"
|
|
95
|
+
WAIT = "Wait"
|
|
96
|
+
# PyNative inner Event
|
|
97
|
+
PYNATIVE_GIL_ACQUIRE = "PyNativeGilAcquire"
|
|
98
|
+
PYNATIVE_CAST = "PyNativeCast"
|
|
99
|
+
PYNATIVE_INFER = "PyNativeInfer"
|
|
100
|
+
PYNATIVE_OP_COMPILE = "PyNativeOpCompile"
|
|
101
|
+
PYNATIVE_GRAD_EXPANDER = "PyNativeGradExpander"
|
|
102
|
+
PYNATIVE_GRAD_UPDATE_SENS = "PyNativeGradUpdateSens"
|
|
103
|
+
PYNATIVE_GRAD_CLEAR_TOP_CELL = "PyNativeGradClearTopCell"
|
|
104
|
+
PYNATIVE_GRAD_CLEAR_AUTO_GRAD_CELL = "PyNativeGradClearAutoGradCell"
|
|
105
|
+
# PyBoost
|
|
106
|
+
PYBOOST_INFER_OUTPUT = "PyBoostInferOutput"
|
|
107
|
+
PYBOOST_INFER_BY_OP_DEF = "PyBoostInferByOpDef"
|
|
108
|
+
PYBOOST_CREATE_OUTPUT_TENSOR = "PyBoostCreateOutputTensor"
|
|
109
|
+
PYBOOST_DEVICE_TASK = "PyBoostDeviceTask"
|
|
110
|
+
PYBOOST_MALLOC_INPUT = "PyBoostMallocInput"
|
|
111
|
+
PYBOOST_MALLOC_OUTPUT = "PyBoostMallocOutput"
|
|
112
|
+
PYBOOST_LAUNCH_ACLLNN = "PyBoostLaunchAclnn"
|
|
113
|
+
# pybind api
|
|
114
|
+
PYNATIVE_NEW_GRAPH = "PyNativeNewGraph"
|
|
115
|
+
PYNATIVE_END_GRAPH = "PyNativeEndGraph"
|
|
116
|
+
# Python
|
|
117
|
+
PYTHON_OBSERVED = "PythonObserved"
|
|
118
|
+
# Capture Event
|
|
119
|
+
CAPTURE_RUN_GRAPH = "CaptureRunGraph"
|
|
120
|
+
CAPTURE_PROCESS = "CaptureProcess"
|
|
121
|
+
CAPTURE_COMPILE = "CaptureCompile"
|
|
122
|
+
CAPTURE_GUARD = "CaptureGuard"
|
|
123
|
+
# AclNN
|
|
124
|
+
ACLNN_HIT_CACHE_STAGE_1 = "AclnnHitCacheStage1"
|
|
125
|
+
ACLNN_HIT_CACHE_STAGE_2 = "AclnnHitCacheStage2"
|
|
126
|
+
ACLNN_MISS_CACHE_STAGE_1 = "AclnnMissCacheStage1"
|
|
127
|
+
ACLNN_MISS_CACHE_STAGE_2 = "AclnnMissCacheStage2"
|
|
128
|
+
ACLNN_UPDATE_ADDRESS = "AclnnUpdateAddress"
|
|
129
|
+
ACLNN_RUN_OP = "AclnnRunOp"
|
|
130
|
+
# NoGraph grad
|
|
131
|
+
RUN_EXPANDER_FUNC = "RunExpanderFunc"
|
|
132
|
+
EMIT_OP = "EmitOp"
|
|
133
|
+
EXECUTE = "Execute"
|
|
134
|
+
RELEASE_RESOURCE = "ReleaseResource"
|
|
135
|
+
NATIVE_FUNC = "NativeFunc"
|
|
136
|
+
|
|
137
|
+
|
|
30
138
|
class FwkFixSizeFormat:
|
|
31
139
|
"""Format definition for framework fixed-size data."""
|
|
32
140
|
|
|
33
|
-
|
|
34
|
-
OpRangeStruct = "<3q6Qb?"
|
|
141
|
+
OpRangeStruct = "<5Qi3Hb3?"
|
|
35
142
|
|
|
36
143
|
|
|
37
144
|
class OpRangeStructField(Enum):
|
|
38
145
|
"""Field indices in operator range structure fixed-size data."""
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
146
|
+
|
|
147
|
+
THREAD_ID = 0
|
|
148
|
+
FLOW_ID = 1
|
|
149
|
+
STEP = 2
|
|
150
|
+
START_TIME_NS = 3
|
|
151
|
+
END_TIME_NS = 4
|
|
152
|
+
PROCESS_ID = 5
|
|
153
|
+
MODULE_INDEX = 6
|
|
154
|
+
EVENT_INDEX = 7
|
|
155
|
+
STAGE_INDEX = 8
|
|
48
156
|
LEVEL = 9
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
157
|
+
IS_GRAPH_DATA = 10
|
|
158
|
+
IS_STAGE = 11
|
|
159
|
+
IS_STACK = 12
|
|
160
|
+
NAME = 13
|
|
161
|
+
FULL_NAME = 14
|
|
162
|
+
MODULE_GRAPH = 15
|
|
163
|
+
EVENT_GRAPH = 16
|
|
164
|
+
CUSTOM_INFO = 17
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
class FwkProfileDataField:
|
|
168
|
+
"""Framework profile data field."""
|
|
169
|
+
|
|
170
|
+
@staticmethod
|
|
171
|
+
def _get_enum_value(enum_class, index: int, enum_type: str) -> str:
|
|
172
|
+
"""
|
|
173
|
+
Get enum value by index.
|
|
174
|
+
Args:
|
|
175
|
+
enum_class: The enum class to get value from.
|
|
176
|
+
index: The index of the enum value.
|
|
177
|
+
enum_type: The type name of enum for logging.
|
|
178
|
+
Returns:
|
|
179
|
+
The enum value string.
|
|
180
|
+
"""
|
|
181
|
+
try:
|
|
182
|
+
return list(enum_class)[index].value
|
|
183
|
+
except IndexError:
|
|
184
|
+
logger.warning(f"Invalid {enum_type} index: {index}")
|
|
185
|
+
return enum_class.DEFAULT.value
|
|
186
|
+
|
|
187
|
+
@staticmethod
|
|
188
|
+
def get_stage_value(index: int) -> str:
|
|
189
|
+
"""Get stage value."""
|
|
190
|
+
return FwkProfileDataField._get_enum_value(ProfilerStage, index, "stage")
|
|
191
|
+
|
|
192
|
+
@staticmethod
|
|
193
|
+
def get_module_value(index: int) -> str:
|
|
194
|
+
"""Get module value."""
|
|
195
|
+
return FwkProfileDataField._get_enum_value(ProfilerModule, index, "module")
|
|
196
|
+
|
|
197
|
+
@staticmethod
|
|
198
|
+
def get_event_value(index: int) -> str:
|
|
199
|
+
"""Get event value."""
|
|
200
|
+
return FwkProfileDataField._get_enum_value(ProfilerEvent, index, "event")
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
class FwkEventMixin:
|
|
204
|
+
"""Mixin class for common framework event functionality."""
|
|
205
|
+
|
|
206
|
+
def get_name(self) -> str:
|
|
207
|
+
"""Get operator name."""
|
|
208
|
+
op_name = self._origin_data.get(OpRangeStructField.NAME.value, "")
|
|
209
|
+
is_stack = self.fix_size_data[OpRangeStructField.IS_STACK.value]
|
|
210
|
+
if is_stack:
|
|
211
|
+
return op_name
|
|
212
|
+
|
|
213
|
+
is_graph_data = self.fix_size_data[OpRangeStructField.IS_GRAPH_DATA.value]
|
|
214
|
+
is_stage = self.fix_size_data[OpRangeStructField.IS_STAGE.value]
|
|
215
|
+
full_name = self._origin_data.get(OpRangeStructField.FULL_NAME.value, "")
|
|
216
|
+
|
|
217
|
+
name = ""
|
|
218
|
+
if is_graph_data:
|
|
219
|
+
module_graph = self._origin_data.get(OpRangeStructField.MODULE_GRAPH.value, "")
|
|
220
|
+
event_graph = self._origin_data.get(OpRangeStructField.EVENT_GRAPH.value, "")
|
|
221
|
+
name = f"{module_graph}::{event_graph}::{op_name}"
|
|
222
|
+
elif is_stage:
|
|
223
|
+
stage_index = self.fix_size_data[OpRangeStructField.STAGE_INDEX.value]
|
|
224
|
+
name = FwkProfileDataField.get_stage_value(stage_index)
|
|
225
|
+
elif op_name != "flow":
|
|
226
|
+
module_index = self.fix_size_data[OpRangeStructField.MODULE_INDEX.value]
|
|
227
|
+
event_index = self.fix_size_data[OpRangeStructField.EVENT_INDEX.value]
|
|
228
|
+
module_name = FwkProfileDataField.get_module_value(module_index)
|
|
229
|
+
event_name = FwkProfileDataField.get_event_value(event_index)
|
|
230
|
+
name = f"{module_name}::{event_name}::{full_name}"
|
|
231
|
+
else:
|
|
232
|
+
name = full_name
|
|
233
|
+
return name
|
|
234
|
+
|
|
235
|
+
def get_custom_info(self) -> str:
|
|
236
|
+
"""Get custom information."""
|
|
237
|
+
value = self._origin_data.get(OpRangeStructField.CUSTOM_INFO.value, None)
|
|
238
|
+
if value is None:
|
|
239
|
+
return ""
|
|
240
|
+
pairs = [pair.split(":") for pair in value.split(";") if pair]
|
|
241
|
+
info_dict = {k: v for k, v in pairs[0:2] if len(pairs) >= 2}
|
|
242
|
+
return str(info_dict)
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
class FwkCompleteEvent(FwkEventMixin, CompleteEvent):
|
|
89
246
|
"""Framework complete event with duration."""
|
|
90
|
-
_args_decoder = FwkArgsDecoder()
|
|
91
247
|
|
|
92
248
|
def __init__(self, data: Dict):
|
|
93
249
|
"""Initialize framework complete event."""
|
|
@@ -96,7 +252,7 @@ class FwkCompleteEvent(CompleteEvent):
|
|
|
96
252
|
self._ts_cache = None
|
|
97
253
|
self._te_cache = None
|
|
98
254
|
self._dur_cache = None
|
|
99
|
-
self.
|
|
255
|
+
self._name_cache = None
|
|
100
256
|
self._parent: Optional[BaseEvent] = None
|
|
101
257
|
self._children: List[BaseEvent] = []
|
|
102
258
|
|
|
@@ -118,14 +274,14 @@ class FwkCompleteEvent(CompleteEvent):
|
|
|
118
274
|
@property
|
|
119
275
|
def ts_raw(self) -> int:
|
|
120
276
|
"""Get raw start timestamp."""
|
|
121
|
-
return self.fix_size_data[OpRangeStructField.
|
|
277
|
+
return self.fix_size_data[OpRangeStructField.START_TIME_NS.value]
|
|
122
278
|
|
|
123
279
|
@property
|
|
124
280
|
def ts(self) -> Decimal:
|
|
125
281
|
"""Get start time in us."""
|
|
126
282
|
if not self._ts_cache:
|
|
127
283
|
self._ts_cache = TimeConverter.convert_syscnt_to_timestamp_us(
|
|
128
|
-
self.fix_size_data[OpRangeStructField.
|
|
284
|
+
self.fix_size_data[OpRangeStructField.START_TIME_NS.value]
|
|
129
285
|
)
|
|
130
286
|
return self._ts_cache
|
|
131
287
|
|
|
@@ -134,7 +290,7 @@ class FwkCompleteEvent(CompleteEvent):
|
|
|
134
290
|
"""Get end time in us."""
|
|
135
291
|
if not self._te_cache:
|
|
136
292
|
self._te_cache = TimeConverter.convert_syscnt_to_timestamp_us(
|
|
137
|
-
self.fix_size_data[OpRangeStructField.
|
|
293
|
+
self.fix_size_data[OpRangeStructField.END_TIME_NS.value]
|
|
138
294
|
)
|
|
139
295
|
return self._te_cache
|
|
140
296
|
|
|
@@ -153,63 +309,67 @@ class FwkCompleteEvent(CompleteEvent):
|
|
|
153
309
|
@property
|
|
154
310
|
def tid(self) -> int:
|
|
155
311
|
"""Get thread ID."""
|
|
156
|
-
return int(self.fix_size_data[OpRangeStructField.
|
|
312
|
+
return int(self.fix_size_data[OpRangeStructField.THREAD_ID.value])
|
|
157
313
|
|
|
158
314
|
@property
|
|
159
315
|
def id(self) -> int:
|
|
160
316
|
"""Get event ID."""
|
|
161
|
-
return int(self.fix_size_data[OpRangeStructField.
|
|
317
|
+
return int(self.fix_size_data[OpRangeStructField.FLOW_ID.value])
|
|
162
318
|
|
|
163
319
|
@property
|
|
164
320
|
def name(self) -> str:
|
|
165
321
|
"""Get operator name."""
|
|
166
|
-
|
|
322
|
+
if not self._name_cache:
|
|
323
|
+
self._name_cache = self.get_name()
|
|
324
|
+
return self._name_cache
|
|
167
325
|
|
|
168
326
|
@property
|
|
169
327
|
def step(self) -> int:
|
|
170
328
|
"""Get step ID."""
|
|
171
|
-
return int(self.fix_size_data[OpRangeStructField.
|
|
329
|
+
return int(self.fix_size_data[OpRangeStructField.STEP.value])
|
|
330
|
+
|
|
331
|
+
@property
|
|
332
|
+
def is_stack(self) -> bool:
|
|
333
|
+
"""Get is stack."""
|
|
334
|
+
return bool(self.fix_size_data[OpRangeStructField.IS_STACK.value])
|
|
335
|
+
|
|
336
|
+
@property
|
|
337
|
+
def cat(self) -> str:
|
|
338
|
+
"""Get event category."""
|
|
339
|
+
return EventConstant.STACK_EVENT_CAT if self.is_stack else ""
|
|
172
340
|
|
|
173
341
|
@property
|
|
174
342
|
def level(self) -> int:
|
|
175
343
|
"""Get event level."""
|
|
176
344
|
return int(self.fix_size_data[OpRangeStructField.LEVEL.value])
|
|
177
345
|
|
|
178
|
-
@property
|
|
179
|
-
def args(self) -> Dict:
|
|
180
|
-
"""Get decoded event arguments."""
|
|
181
|
-
if not self._args_cache:
|
|
182
|
-
self._args_cache = self._args_decoder.decode(self._origin_data, self.fix_size_data)
|
|
183
|
-
return self._args_cache
|
|
184
|
-
|
|
185
346
|
@property
|
|
186
347
|
def custom_info(self) -> str:
|
|
187
348
|
"""Get custom information."""
|
|
188
|
-
return
|
|
349
|
+
return self.get_custom_info()
|
|
189
350
|
|
|
190
351
|
|
|
191
|
-
class FwkInstantEvent(InstantEvent):
|
|
352
|
+
class FwkInstantEvent(FwkEventMixin, InstantEvent):
|
|
192
353
|
"""Framework instant event without duration."""
|
|
193
|
-
_args_decoder = FwkArgsDecoder()
|
|
194
354
|
|
|
195
355
|
def __init__(self, data: Dict):
|
|
196
356
|
"""Initialize framework instant event."""
|
|
197
357
|
super().__init__(data)
|
|
198
358
|
self.fix_size_data = self._origin_data[FileConstant.FIX_SIZE_DATA]
|
|
199
359
|
self._ts_cache = None
|
|
200
|
-
self.
|
|
360
|
+
self._name_cache = None
|
|
201
361
|
|
|
202
362
|
@property
|
|
203
363
|
def ts_raw(self) -> int:
|
|
204
364
|
"""Get raw start timestamp."""
|
|
205
|
-
return self.fix_size_data[OpRangeStructField.
|
|
365
|
+
return self.fix_size_data[OpRangeStructField.START_TIME_NS.value]
|
|
206
366
|
|
|
207
367
|
@property
|
|
208
368
|
def ts(self) -> Decimal:
|
|
209
369
|
"""Get time in us."""
|
|
210
370
|
if not self._ts_cache:
|
|
211
371
|
self._ts_cache = TimeConverter.convert_syscnt_to_timestamp_us(
|
|
212
|
-
self.fix_size_data[OpRangeStructField.
|
|
372
|
+
self.fix_size_data[OpRangeStructField.START_TIME_NS.value]
|
|
213
373
|
)
|
|
214
374
|
return self._ts_cache
|
|
215
375
|
|
|
@@ -221,34 +381,29 @@ class FwkInstantEvent(InstantEvent):
|
|
|
221
381
|
@property
|
|
222
382
|
def tid(self) -> int:
|
|
223
383
|
"""Get thread ID."""
|
|
224
|
-
return int(self.fix_size_data[OpRangeStructField.
|
|
384
|
+
return int(self.fix_size_data[OpRangeStructField.THREAD_ID.value])
|
|
225
385
|
|
|
226
386
|
@property
|
|
227
387
|
def name(self) -> str:
|
|
228
388
|
"""Get operator name."""
|
|
229
|
-
|
|
389
|
+
if not self._name_cache:
|
|
390
|
+
self._name_cache = self.get_name()
|
|
391
|
+
return self._name_cache
|
|
230
392
|
|
|
231
393
|
@property
|
|
232
394
|
def step(self) -> int:
|
|
233
395
|
"""Get step ID."""
|
|
234
|
-
return int(self.fix_size_data[OpRangeStructField.
|
|
396
|
+
return int(self.fix_size_data[OpRangeStructField.STEP.value])
|
|
235
397
|
|
|
236
398
|
@property
|
|
237
399
|
def level(self) -> int:
|
|
238
400
|
"""Get event level."""
|
|
239
401
|
return int(self.fix_size_data[OpRangeStructField.LEVEL.value])
|
|
240
402
|
|
|
241
|
-
@property
|
|
242
|
-
def args(self) -> Dict:
|
|
243
|
-
"""Get decoded event arguments."""
|
|
244
|
-
if not self._args_cache:
|
|
245
|
-
self._args_cache = self._args_decoder.decode(self._origin_data, self.fix_size_data)
|
|
246
|
-
return self._args_cache
|
|
247
|
-
|
|
248
403
|
@property
|
|
249
404
|
def custom_info(self) -> str:
|
|
250
405
|
"""Get custom information."""
|
|
251
|
-
return
|
|
406
|
+
return self.get_custom_info()
|
|
252
407
|
|
|
253
408
|
|
|
254
409
|
class FwkMetaEvent(MetaEvent):
|