mindspore 2.5.0__cp310-cp310-win_amd64.whl → 2.6.0__cp310-cp310-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mindspore might be problematic. Click here for more details.
- mindspore/.commit_id +1 -1
- mindspore/Microsoft.VisualStudio.Telemetry.dll +0 -0
- mindspore/Newtonsoft.Json.dll +0 -0
- mindspore/__init__.py +6 -4
- mindspore/_c_dataengine.cp310-win_amd64.pyd +0 -0
- mindspore/_c_expression.cp310-win_amd64.pyd +0 -0
- mindspore/_c_mindrecord.cp310-win_amd64.pyd +0 -0
- mindspore/_check_jit_forbidden_api.py +3 -0
- mindspore/_checkparam.py +3 -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
|
@@ -25,12 +25,17 @@ import multiprocessing
|
|
|
25
25
|
|
|
26
26
|
from mindspore import log as logger
|
|
27
27
|
from mindspore.train import Callback
|
|
28
|
-
from mindspore.profiler import Profiler,
|
|
28
|
+
from mindspore.profiler import Profiler, tensorboard_trace_handler, schedule
|
|
29
29
|
from mindspore.communication import get_rank
|
|
30
30
|
from mindspore.profiler.parser.ascend_analysis.file_manager import FileManager
|
|
31
31
|
from mindspore.profiler.parser.ascend_analysis.path_manager import PathManager
|
|
32
32
|
from mindspore.profiler.profiler_interface import ProfilerInterface
|
|
33
|
-
from mindspore.profiler.common.constant import
|
|
33
|
+
from mindspore.profiler.common.constant import (
|
|
34
|
+
ProfilerActivity,
|
|
35
|
+
ProfilerLevel,
|
|
36
|
+
AicoreMetrics,
|
|
37
|
+
ExportType,
|
|
38
|
+
)
|
|
34
39
|
from mindspore.profiler.common.util import no_exception_func
|
|
35
40
|
|
|
36
41
|
|
|
@@ -51,16 +56,19 @@ class DynamicProfilerArgs:
|
|
|
51
56
|
"""
|
|
52
57
|
Data class for dynamic profile config.
|
|
53
58
|
"""
|
|
54
|
-
FMT = "
|
|
59
|
+
FMT = "i" * 7 + "?" * 6
|
|
55
60
|
SIZE = struct.calcsize(FMT)
|
|
56
61
|
|
|
57
62
|
def __init__(self,
|
|
58
63
|
start_step: int = -1,
|
|
59
64
|
stop_step: int = -1,
|
|
60
|
-
|
|
65
|
+
aic_metrics: int = -1,
|
|
61
66
|
profiler_level: int = 0,
|
|
62
67
|
analyse_mode: int = -1,
|
|
63
68
|
activities: int = 0,
|
|
69
|
+
export_type: int = 0,
|
|
70
|
+
profile_memory: bool = False,
|
|
71
|
+
mstx: bool = False,
|
|
64
72
|
parallel_strategy: bool = False,
|
|
65
73
|
with_stack: bool = False,
|
|
66
74
|
data_simplification: bool = True,
|
|
@@ -68,10 +76,13 @@ class DynamicProfilerArgs:
|
|
|
68
76
|
**kwargs):
|
|
69
77
|
self._start_step = start_step
|
|
70
78
|
self._stop_step = stop_step
|
|
71
|
-
self.
|
|
79
|
+
self._aic_metrics = aic_metrics
|
|
72
80
|
self._profiler_level = profiler_level
|
|
73
81
|
self._analyse_mode = analyse_mode
|
|
74
82
|
self._activities = activities
|
|
83
|
+
self._export_type = export_type
|
|
84
|
+
self._profile_memory = profile_memory
|
|
85
|
+
self._mstx = mstx
|
|
75
86
|
self._parallel_strategy = parallel_strategy
|
|
76
87
|
self._with_stack = with_stack
|
|
77
88
|
self._data_simplification = data_simplification
|
|
@@ -79,42 +90,38 @@ class DynamicProfilerArgs:
|
|
|
79
90
|
self._check_params_type()
|
|
80
91
|
|
|
81
92
|
def _check_params_type(self):
|
|
82
|
-
"""
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
if not isinstance(self._is_valid, bool):
|
|
116
|
-
logger.warning("is_valid should be bool type, is_valid will be reset to False.")
|
|
117
|
-
self._is_valid = False
|
|
93
|
+
"""Check and enforce parameter types with lower complexity."""
|
|
94
|
+
# Define a parameter check rule. {Parameter name: (expected type, default value)}
|
|
95
|
+
param_rules = {
|
|
96
|
+
'_start_step': (int, -1),
|
|
97
|
+
'_stop_step': (int, -1),
|
|
98
|
+
'_aic_metrics': (int, -1),
|
|
99
|
+
'_profiler_level': (int, 0),
|
|
100
|
+
'_analyse_mode': (int, -1),
|
|
101
|
+
'_activities': (int, 0),
|
|
102
|
+
'_export_type': (int, 0),
|
|
103
|
+
'_profile_memory': (bool, False),
|
|
104
|
+
'_mstx': (bool, False),
|
|
105
|
+
'_parallel_strategy': (bool, False),
|
|
106
|
+
'_with_stack': (bool, False),
|
|
107
|
+
'_data_simplification': (bool, True),
|
|
108
|
+
'_is_valid': (bool, False)
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
def _is_valid_type(value, expected_type):
|
|
112
|
+
"""Helper method for type checking."""
|
|
113
|
+
if expected_type is int and isinstance(value, bool):
|
|
114
|
+
return False
|
|
115
|
+
return isinstance(value, expected_type)
|
|
116
|
+
|
|
117
|
+
for param, (expected_type, default) in param_rules.items():
|
|
118
|
+
value = getattr(self, param)
|
|
119
|
+
if not _is_valid_type(value, expected_type):
|
|
120
|
+
logger.warning(
|
|
121
|
+
f"{param[1:]} should be {expected_type.__name__} type, "
|
|
122
|
+
f"will be reset to {default}."
|
|
123
|
+
)
|
|
124
|
+
setattr(self, param, default)
|
|
118
125
|
|
|
119
126
|
@property
|
|
120
127
|
def start_step(self):
|
|
@@ -156,7 +163,8 @@ class DynamicProfilerArgs:
|
|
|
156
163
|
""" get all args in DynamicProfilerArgs."""
|
|
157
164
|
self._profiler_level = self._convert_profiler_level(self._profiler_level)
|
|
158
165
|
self._activities = self._convert_activities(self._activities)
|
|
159
|
-
self.
|
|
166
|
+
self._aic_metrics = self._convert_aic_metrics(self._aic_metrics)
|
|
167
|
+
self._export_type = self._convert_export_type(self._export_type)
|
|
160
168
|
not_supported_args = ['_start_step', '_stop_step', '_analyse_mode', '_is_valid']
|
|
161
169
|
res = {}
|
|
162
170
|
for key, value in self.__dict__.items():
|
|
@@ -187,6 +195,8 @@ class DynamicProfilerArgs:
|
|
|
187
195
|
|
|
188
196
|
def _convert_profiler_level(self, profiler_level: int) -> ProfilerLevel:
|
|
189
197
|
""" convert profiler_level to real args in Profiler."""
|
|
198
|
+
if profiler_level == -1:
|
|
199
|
+
return ProfilerLevel.LevelNone
|
|
190
200
|
if profiler_level == 0:
|
|
191
201
|
return ProfilerLevel.Level0
|
|
192
202
|
if profiler_level == 1:
|
|
@@ -205,26 +215,38 @@ class DynamicProfilerArgs:
|
|
|
205
215
|
return [ProfilerActivity.NPU]
|
|
206
216
|
return [ProfilerActivity.CPU, ProfilerActivity.NPU]
|
|
207
217
|
|
|
208
|
-
def
|
|
209
|
-
""" convert
|
|
210
|
-
if
|
|
218
|
+
def _convert_aic_metrics(self, aic_metrics: int) -> AicoreMetrics:
|
|
219
|
+
""" convert aic_metrics to real args in Profiler."""
|
|
220
|
+
if aic_metrics == -1:
|
|
211
221
|
return AicoreMetrics.AiCoreNone
|
|
212
|
-
if
|
|
222
|
+
if aic_metrics == 0:
|
|
213
223
|
return AicoreMetrics.PipeUtilization
|
|
214
|
-
if
|
|
224
|
+
if aic_metrics == 1:
|
|
215
225
|
return AicoreMetrics.ArithmeticUtilization
|
|
216
|
-
if
|
|
226
|
+
if aic_metrics == 2:
|
|
217
227
|
return AicoreMetrics.Memory
|
|
218
|
-
if
|
|
228
|
+
if aic_metrics == 3:
|
|
219
229
|
return AicoreMetrics.MemoryL0
|
|
220
|
-
if
|
|
230
|
+
if aic_metrics == 4:
|
|
221
231
|
return AicoreMetrics.MemoryUB
|
|
222
|
-
if
|
|
232
|
+
if aic_metrics == 5:
|
|
223
233
|
return AicoreMetrics.ResourceConflictRatio
|
|
224
|
-
if
|
|
234
|
+
if aic_metrics == 6:
|
|
225
235
|
return AicoreMetrics.L2Cache
|
|
236
|
+
if aic_metrics == 7:
|
|
237
|
+
return AicoreMetrics.MemoryAccess
|
|
226
238
|
return AicoreMetrics.AiCoreNone
|
|
227
239
|
|
|
240
|
+
def _convert_export_type(self, export_type: int) -> ExportType:
|
|
241
|
+
""" convert export_type to real args in Profiler."""
|
|
242
|
+
if export_type == 0:
|
|
243
|
+
return [ExportType.Text]
|
|
244
|
+
if export_type == 1:
|
|
245
|
+
return [ExportType.Db]
|
|
246
|
+
if export_type == 2:
|
|
247
|
+
return [ExportType.Text, ExportType.Db]
|
|
248
|
+
return [ExportType.Text]
|
|
249
|
+
|
|
228
250
|
class DynamicProfilerMonitorBase(Callback):
|
|
229
251
|
"""
|
|
230
252
|
Dynamic profile callback base class implementing the dynamic profile functionality.
|
|
@@ -297,7 +319,8 @@ class DynamicProfilerMonitorBase(Callback):
|
|
|
297
319
|
if self._profiler is None:
|
|
298
320
|
prof_path = os.path.join(self._output_path, f"rank{self._rank_id}_start{start_step}_stop{stop_step}")
|
|
299
321
|
PathManager.check_input_directory_path(prof_path)
|
|
300
|
-
self._profiler = Profiler(
|
|
322
|
+
self._profiler = Profiler(on_trace_ready=tensorboard_trace_handler(dir_name=prof_path),
|
|
323
|
+
start_profile=False, **prof_args.args)
|
|
301
324
|
print_msg(f"Rank {self._rank_id} create output path {prof_path}")
|
|
302
325
|
|
|
303
326
|
self._profiler.start()
|
|
@@ -389,27 +412,30 @@ class DynamicProfilerMonitorBase(Callback):
|
|
|
389
412
|
>>>
|
|
390
413
|
>>> if __name__ == '__main__':
|
|
391
414
|
... # set json configuration file
|
|
392
|
-
...
|
|
415
|
+
... context.set_context(mode=mindspore.PYNATIVE_MODE)
|
|
416
|
+
... mindspore.set_device("Ascend")
|
|
417
|
+
... data_cfg = {
|
|
393
418
|
... "start_step": 2,
|
|
394
419
|
... "stop_step": 5,
|
|
395
|
-
... "
|
|
420
|
+
... "aic_metrics": -1,
|
|
396
421
|
... "profiler_level": 0,
|
|
397
422
|
... "activities": 0,
|
|
398
|
-
... "
|
|
423
|
+
... "export_type": 0,
|
|
424
|
+
... "profile_memory": False,
|
|
425
|
+
... "mstx": False,
|
|
426
|
+
... "analyse_mode": 0,
|
|
399
427
|
... "parallel_strategy": False,
|
|
400
428
|
... "with_stack": False,
|
|
401
429
|
... "data_simplification": True,
|
|
402
430
|
... }
|
|
403
|
-
...
|
|
404
|
-
...
|
|
405
|
-
...
|
|
431
|
+
... output_path = "./cfg_path"
|
|
432
|
+
... cfg_path = os.path.join(output_path, "profiler_config.json")
|
|
433
|
+
... os.makedirs(output_path, exist_ok=True)
|
|
406
434
|
... # set cfg file
|
|
407
435
|
... with open(cfg_path, 'w') as f:
|
|
408
|
-
... json.dump(
|
|
409
|
-
... # Assume the user has correctly configured the environment variable (RANK_ID is not a non-numeric type)
|
|
410
|
-
... rank_id = int(os.getenv('RANK_ID')) if os.getenv('RANK_ID') else 0
|
|
436
|
+
... json.dump(data_cfg, f, indent=4)
|
|
411
437
|
... # cfg_path contains the json configuration file path, and output_path is the output path
|
|
412
|
-
... dp = DynamicProfilerMonitor(cfg_path=
|
|
438
|
+
... dp = DynamicProfilerMonitor(cfg_path=output_path, output_path=output_path)
|
|
413
439
|
... STEP_NUM = 15
|
|
414
440
|
... # Define a network of training models
|
|
415
441
|
... net = Net()
|
|
@@ -417,11 +443,11 @@ class DynamicProfilerMonitorBase(Callback):
|
|
|
417
443
|
... print(f"step {i}")
|
|
418
444
|
... train(net)
|
|
419
445
|
... # Modify the configuration file after step 7. For example, change start_step to 8 and stop_step to 10
|
|
420
|
-
... if i ==
|
|
446
|
+
... if i == 5:
|
|
421
447
|
... # Modify parameters in the JSON file
|
|
422
|
-
... change_cfg_json(os.path.join(
|
|
423
|
-
...
|
|
424
|
-
...
|
|
448
|
+
... change_cfg_json(os.path.join(output_path, "profiler_config.json"))
|
|
449
|
+
... # Call step collection
|
|
450
|
+
... dp.step()
|
|
425
451
|
"""
|
|
426
452
|
|
|
427
453
|
self._step_num += 1
|
|
@@ -448,12 +474,11 @@ class DynamicProfilerMonitorBase(Callback):
|
|
|
448
474
|
print_msg(f"Rank {self._rank_id} create output path {prof_path}")
|
|
449
475
|
print_msg(f"Rank {self._rank_id} Dynamic profile start at step {self._start_step}, "
|
|
450
476
|
f"will stop at step {self._stop_step}")
|
|
451
|
-
self._profiler = Profiler(
|
|
452
|
-
schedule=schedule(wait=0, warmup=0,
|
|
477
|
+
self._profiler = Profiler(schedule=schedule(wait=0, warmup=0,
|
|
453
478
|
active=self._stop_step - self._start_step + 1,
|
|
454
479
|
repeat=1,
|
|
455
480
|
skip_first=1),
|
|
456
|
-
on_trace_ready=
|
|
481
|
+
on_trace_ready=tensorboard_trace_handler(dir_name=prof_path),
|
|
457
482
|
**prof_args.args)
|
|
458
483
|
else:
|
|
459
484
|
self._profiler = None
|
|
@@ -625,7 +650,7 @@ if sys.version_info >= (3, 8):
|
|
|
625
650
|
This class to enable the dynamic profile monitoring of MindSpore neural networks.
|
|
626
651
|
|
|
627
652
|
Args:
|
|
628
|
-
cfg_path (str): Dynamic profile json config file directory. The requirement is a shared path
|
|
653
|
+
cfg_path (str): (Ascend only) Dynamic profile json config file directory. The requirement is a shared path
|
|
629
654
|
that can be accessed by all nodes. The parameters of the json configuration file are as follows:
|
|
630
655
|
|
|
631
656
|
- start_step (int, required) - Sets the step number at which the Profiler starts collecting data.
|
|
@@ -635,16 +660,24 @@ if sys.version_info >= (3, 8):
|
|
|
635
660
|
a relative value, with the first step of training being 1. The stop_step must be greater than or
|
|
636
661
|
equal to start_step. The default value is -1, indicating that data collection will not start during
|
|
637
662
|
the entire training process.
|
|
638
|
-
-
|
|
663
|
+
- aic_metrics (int, optional) - The range of values corresponds to the Profiler. The default value -1
|
|
639
664
|
indicates that AI Core utilization is not collected, and 0 indicates PipeUtilization, 1 indicates
|
|
640
665
|
ArithmeticUtilization, 2 stands for Memory, 3 stands for MemoryL0, 4 stands for MemoryUB, 5 indicates
|
|
641
|
-
ResourceConflictRatio, 6 indicates L2Cache.
|
|
642
|
-
- profiler_level (int, optional) - Sets the level of performance data collection, where
|
|
643
|
-
ProfilerLevel.
|
|
644
|
-
default value is 0, indicating the ProfilerLevel.Level0
|
|
666
|
+
ResourceConflictRatio, 6 indicates L2Cache, 7 indicates MemoryAccess.
|
|
667
|
+
- profiler_level (int, optional) - Sets the level of performance data collection, where -1 represents
|
|
668
|
+
ProfilerLevel.LevelNone, 0 represents ProfilerLevel.Level0, 1 represents ProfilerLevel.Level1, and
|
|
669
|
+
2 represents ProfilerLevel.Level2. The default value is 0, indicating the ProfilerLevel.Level0
|
|
670
|
+
collection level.
|
|
645
671
|
- activities (int, optional) - Sets the devices for performance data collection, where 0 represents
|
|
646
672
|
CPU+NPU, 1 represents CPU, and 2 represents NPU. The default value is 0, indicating the collection
|
|
647
673
|
of CPU+NPU performance data.
|
|
674
|
+
- export_type (int, optional) - Sets the data type to export, where 0 represents text, 1 represents db,
|
|
675
|
+
and 2 represents text and db. The default value is 0, indicating only export text type data.
|
|
676
|
+
- profile_memory (bool, optional) - Set whether to collect memory performance data, true indicates that
|
|
677
|
+
memory performance data is collected, false indicates that memory performance data is not collected.
|
|
678
|
+
The default value is false, indicating that memory performance data is not collected.
|
|
679
|
+
- mstx (bool, optional) - Set whether to enable mstx, true indicates that mstx is enabled, false
|
|
680
|
+
indicates that mstx is disabled. The default value is false, indicating that mstx is not enabled.
|
|
648
681
|
- analyse_mode (int, optional) - Sets the mode for online analysis, corresponding to the analyse_mode
|
|
649
682
|
parameter of the mindspore.Profiler.analyse interface, where 0 represents "sync" and 1 represents
|
|
650
683
|
"async". The default value is -1, indicating that online analysis is not used.
|
|
@@ -658,8 +691,8 @@ if sys.version_info >= (3, 8):
|
|
|
658
691
|
to enable and false means not to enable. The default value is true, indicating that data
|
|
659
692
|
simplification is enabled.
|
|
660
693
|
|
|
661
|
-
output_path (str, optional): Output data path. Default: ``"./dyn_profile_data"`` .
|
|
662
|
-
poll_interval (int, optional): The polling period of the monitoring process, in seconds.
|
|
694
|
+
output_path (str, optional): (Ascend only) Output data path. Default: ``"./dyn_profile_data"`` .
|
|
695
|
+
poll_interval (int, optional): (Ascend only) The polling period of the monitoring process, in seconds.
|
|
663
696
|
Default value: ``2``.
|
|
664
697
|
|
|
665
698
|
Raises:
|
|
@@ -728,7 +761,7 @@ if sys.version_info >= (3, 8):
|
|
|
728
761
|
logger.info("Rank %s process stop", self._rank_id)
|
|
729
762
|
|
|
730
763
|
# clear shared memory
|
|
731
|
-
if self._shm:
|
|
764
|
+
if self._shm and self._is_create_process:
|
|
732
765
|
try:
|
|
733
766
|
self._shm.close()
|
|
734
767
|
self._shm.unlink()
|
|
@@ -21,6 +21,7 @@ from mindspore.profiler.common.constant import (
|
|
|
21
21
|
ProfilerLevel,
|
|
22
22
|
AicoreMetrics,
|
|
23
23
|
ProfilerActivity,
|
|
24
|
+
ExportType,
|
|
24
25
|
)
|
|
25
26
|
from mindspore.profiler.common.profiler_parameters import ProfilerParameters
|
|
26
27
|
|
|
@@ -107,7 +108,7 @@ class EnvProfiler:
|
|
|
107
108
|
params[param] = cls._convert_activities_to_list(
|
|
108
109
|
options[param], default_value
|
|
109
110
|
)
|
|
110
|
-
elif param == "
|
|
111
|
+
elif param == "aic_metrics":
|
|
111
112
|
params[param] = cls._convert_option_to_enum_value(
|
|
112
113
|
AicoreMetrics, options[param], default_value
|
|
113
114
|
)
|
|
@@ -115,6 +116,10 @@ class EnvProfiler:
|
|
|
115
116
|
params[param] = cls._convert_option_to_enum_value(
|
|
116
117
|
ProfilerLevel, options[param], default_value
|
|
117
118
|
)
|
|
119
|
+
elif param == "export_type":
|
|
120
|
+
params[param] = cls._convert_export_type_to_list(
|
|
121
|
+
options[param], default_value
|
|
122
|
+
)
|
|
118
123
|
else:
|
|
119
124
|
params[param] = options[param]
|
|
120
125
|
return params
|
|
@@ -134,5 +139,25 @@ class EnvProfiler:
|
|
|
134
139
|
# remove duplicate
|
|
135
140
|
return list(set(default_value if default_value in res else res))
|
|
136
141
|
|
|
142
|
+
@classmethod
|
|
143
|
+
def _convert_export_type_to_list(cls, export_types, default_value) -> list:
|
|
144
|
+
"""
|
|
145
|
+
Check the export type to the list.
|
|
146
|
+
"""
|
|
147
|
+
res = []
|
|
148
|
+
for export_type in export_types:
|
|
149
|
+
if export_type != "text" and export_type != "db":
|
|
150
|
+
logger.warning(
|
|
151
|
+
f"The value '{export_type}' of parameter '{ExportType.__name__}' is invalid, "
|
|
152
|
+
f"use default value '{default_value}' instead."
|
|
153
|
+
)
|
|
154
|
+
return default_value
|
|
155
|
+
res.append(
|
|
156
|
+
cls._convert_option_to_enum_value(
|
|
157
|
+
ExportType, export_type, default_value
|
|
158
|
+
)
|
|
159
|
+
)
|
|
160
|
+
# remove duplicate
|
|
161
|
+
return list(set(res))
|
|
137
162
|
|
|
138
163
|
EnvProfiler.init_profiler()
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# Copyright 2020-2024 Huawei Technologies Co., Ltd
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
# ============================================================================
|
|
15
|
+
"""Experimental config file."""
|
|
16
|
+
|
|
17
|
+
from mindspore.profiler.common.constant import ProfilerLevel, AicoreMetrics
|
|
18
|
+
|
|
19
|
+
__all__ = ["_ExperimentalConfig"]
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class _ExperimentalConfig:
|
|
23
|
+
r"""
|
|
24
|
+
The purpose of this class is to configure scalable parameters when using profiles for model
|
|
25
|
+
performance data acquisition.
|
|
26
|
+
|
|
27
|
+
Args:
|
|
28
|
+
profiler_level (ProfilerLevel, optional): (Ascend only) The level of profiling.
|
|
29
|
+
Default: ``ProfilerLevel.Level0``.
|
|
30
|
+
|
|
31
|
+
- ProfilerLevel.LevelNone: This setting takes effect only when mstx is enabled, indicating that no
|
|
32
|
+
operator data is collected on the device side.
|
|
33
|
+
- ProfilerLevel.Level0: Leanest level of profiling data collection, collects information about the elapsed
|
|
34
|
+
time of the computational operators on the NPU and communication large operator information.
|
|
35
|
+
- ProfilerLevel.Level1: Collect more CANN layer AscendCL data and AICore performance metrics and
|
|
36
|
+
communication mini operator information based on Level0.
|
|
37
|
+
- ProfilerLevel.Level2: Collect GE and Runtime information in CANN layer on top of Level1
|
|
38
|
+
aic_metrics (AicoreMetrics, optional): (Ascend only) Types of AICORE performance data collected,
|
|
39
|
+
when using this parameter, `activities` must include ``ProfilerActivity.NPU`` , and the value
|
|
40
|
+
must be a member of AicoreMetrics. When profiler_level is Level0, the default value is
|
|
41
|
+
``AicoreMetrics.AiCoreNone``; Profiler_level is a Level1 or Level2 stores, the default value is:
|
|
42
|
+
``AicoreMetrics. PipeUtilization``.The data items contained in each metric are as follows:
|
|
43
|
+
|
|
44
|
+
- AicoreMetrics.AiCoreNone: Does not collect AICORE data.
|
|
45
|
+
- AicoreMetrics.ArithmeticUtilization: ArithmeticUtilization contains mac_fp16/int8_ratio,
|
|
46
|
+
vec_fp32/fp16/int32_ratio, vec_misc_ratio etc.
|
|
47
|
+
- AicoreMetrics.PipeUtilization: PipeUtilization contains vec_ratio, mac_ratio, scalar_ratio,
|
|
48
|
+
mte1/mte2/mte3_ratio, icache_miss_rate etc.
|
|
49
|
+
- AicoreMetrics.Memory: Memory contains ub_read/write_bw, l1_read/write_bw, l2_read/write_bw,
|
|
50
|
+
main_mem_read/write_bw etc.
|
|
51
|
+
- AicoreMetrics.MemoryL0: MemoryL0 contains l0a_read/write_bw, l0b_read/write_bw, l0c_read/write_bw etc.
|
|
52
|
+
- AicoreMetrics.ResourceConflictRatio: ResourceConflictRatio contains vec_bankgroup/bank/resc_cflt_ratio
|
|
53
|
+
etc.
|
|
54
|
+
- AicoreMetrics.MemoryUB: MemoryUB contains ub_read/write_bw_mte, ub_read/write_bw_vector,
|
|
55
|
+
ub\_read/write_bw_scalar etc.
|
|
56
|
+
- AicoreMetrics.L2Cache: L2Cache contains write_cache_hit, write_cache_miss_allocate, r0_read_cache_hit,
|
|
57
|
+
r1_read_cache_hit etc. This function only supports Atlas A2 training series products.
|
|
58
|
+
- AicoreMetrics.MemoryAccess: Statistics on storage access bandwidth and storage capacity of main
|
|
59
|
+
storage and l2 cache etc.
|
|
60
|
+
l2_cache (bool, optional): (Ascend only) Whether to collect l2 cache data, collect when True.
|
|
61
|
+
Default: ``False`` . The l2_cache.csv file is generated in the ASCEND_PROFILER_OUTPUT folder.In O2 mode,
|
|
62
|
+
only wait and skip_first parameters in schedule configuration can be set to 0.
|
|
63
|
+
mstx (bool, optional): (Ascend only) Whether to collect light weight profiling data, collect when True.
|
|
64
|
+
Default: ``False`` .
|
|
65
|
+
data_simplification (bool, optional): (Ascend only) Whether to remove FRAMEWORK data and other redundant data.
|
|
66
|
+
If set to True, only the profiler deliverables and raw performance data under the PROF_XXX directory are
|
|
67
|
+
kept to save space. Default value: ``True`` .
|
|
68
|
+
export_type (list, optional): (Ascend only) The data type to export.
|
|
69
|
+
The db and text formats can be exported at the same time. The default value is ``None``,
|
|
70
|
+
indicating that data of the text type is exported.
|
|
71
|
+
|
|
72
|
+
- ExportType.Text: Export text type data.
|
|
73
|
+
- ExportType.Db: Export db type data.
|
|
74
|
+
|
|
75
|
+
Raises:
|
|
76
|
+
RuntimeError: When the version of CANN does not match the version of MindSpore,
|
|
77
|
+
MindSpore cannot parse the generated ascend_job_id directory structure.
|
|
78
|
+
|
|
79
|
+
Supported Platforms:
|
|
80
|
+
``Ascend`` ``GPU``
|
|
81
|
+
|
|
82
|
+
Examples:
|
|
83
|
+
>>> import numpy as np
|
|
84
|
+
>>> import mindspore
|
|
85
|
+
>>> from mindspore import nn, context
|
|
86
|
+
>>> import mindspore.dataset as ds
|
|
87
|
+
>>> from mindspore.profiler import ProfilerLevel, ProfilerActivity, AicoreMetrics, ExportType
|
|
88
|
+
>>>
|
|
89
|
+
>>> class Net(nn.Cell):
|
|
90
|
+
... def __init__(self):
|
|
91
|
+
... super(Net, self).__init__()
|
|
92
|
+
... self.fc = nn.Dense(2,2)
|
|
93
|
+
... def construct(self, x):
|
|
94
|
+
... return self.fc(x)
|
|
95
|
+
>>>
|
|
96
|
+
>>> def generator():
|
|
97
|
+
... for i in range(2):
|
|
98
|
+
... yield np.ones([2, 2]).astype(np.float32), np.ones([2]).astype(np.int32)
|
|
99
|
+
>>>
|
|
100
|
+
>>> def train(net):
|
|
101
|
+
... optimizer = nn.Momentum(net.trainable_params(), 1, 0.9)
|
|
102
|
+
... loss = nn.SoftmaxCrossEntropyWithLogits(sparse=True)
|
|
103
|
+
... data = ds.GeneratorDataset(generator, ["data", "label"])
|
|
104
|
+
... model = mindspore.train.Model(net, loss, optimizer)
|
|
105
|
+
... model.train(1, data)
|
|
106
|
+
>>>
|
|
107
|
+
>>> if __name__ == '__main__':
|
|
108
|
+
... # If the device_target is GPU, set the device_target to "GPU"
|
|
109
|
+
... context.set_context(mode=mindspore.GRAPH_MODE)
|
|
110
|
+
... mindspore.set_device("Ascend")
|
|
111
|
+
...
|
|
112
|
+
... # Init Profiler
|
|
113
|
+
... experimental_config = mindspore.profiler._ExperimentalConfig(
|
|
114
|
+
... profiler_level=ProfilerLevel.Level0,
|
|
115
|
+
... aic_metrics=AicoreMetrics.AiCoreNone,
|
|
116
|
+
... l2_cache=False,
|
|
117
|
+
... mstx=False,
|
|
118
|
+
... data_simplification=False,
|
|
119
|
+
... export_type=[ExportType.Text])
|
|
120
|
+
... steps = 10
|
|
121
|
+
... net = Net()
|
|
122
|
+
... # Note that the Profiler should be initialized before model.train
|
|
123
|
+
... with mindspore.profiler.profile(activities=[ProfilerActivity.CPU, ProfilerActivity.NPU],
|
|
124
|
+
... schedule=mindspore.profiler.schedule(wait=1, warmup=1, active=2,
|
|
125
|
+
... repeat=1, skip_first=2),
|
|
126
|
+
... on_trace_ready=mindspore.profiler.tensorboard_trace_handler("./data"),
|
|
127
|
+
... profile_memory=False,
|
|
128
|
+
... experimental_config=experimental_config) as prof:
|
|
129
|
+
...
|
|
130
|
+
... # Train Model
|
|
131
|
+
... for step in range(steps):
|
|
132
|
+
... train(net)
|
|
133
|
+
... prof.step()
|
|
134
|
+
"""
|
|
135
|
+
|
|
136
|
+
def __init__(self,
|
|
137
|
+
profiler_level: ProfilerLevel = ProfilerLevel.Level0,
|
|
138
|
+
aic_metrics: AicoreMetrics = AicoreMetrics.AiCoreNone,
|
|
139
|
+
l2_cache: bool = False,
|
|
140
|
+
mstx: bool = False,
|
|
141
|
+
data_simplification: bool = True,
|
|
142
|
+
export_type: list = None):
|
|
143
|
+
self._profiler_level = profiler_level
|
|
144
|
+
self._aic_metrics = aic_metrics
|
|
145
|
+
self._l2_cache = l2_cache
|
|
146
|
+
self._mstx = mstx
|
|
147
|
+
self._data_simplification = data_simplification
|
|
148
|
+
self._export_type = export_type
|
|
149
|
+
|
|
150
|
+
@property
|
|
151
|
+
def profiler_level(self) -> ProfilerLevel:
|
|
152
|
+
return self._profiler_level
|
|
153
|
+
|
|
154
|
+
@property
|
|
155
|
+
def aic_metrics(self) -> AicoreMetrics:
|
|
156
|
+
return self._aic_metrics
|
|
157
|
+
|
|
158
|
+
@property
|
|
159
|
+
def l2_cache(self) -> bool:
|
|
160
|
+
return self._l2_cache
|
|
161
|
+
|
|
162
|
+
@property
|
|
163
|
+
def mstx(self) -> bool:
|
|
164
|
+
return self._mstx
|
|
165
|
+
|
|
166
|
+
@property
|
|
167
|
+
def data_simplification(self) -> bool:
|
|
168
|
+
return self._data_simplification
|
|
169
|
+
|
|
170
|
+
@property
|
|
171
|
+
def export_type(self) -> list:
|
|
172
|
+
return self._export_type
|
|
173
|
+
|
|
174
|
+
# Setters
|
|
175
|
+
@profiler_level.setter
|
|
176
|
+
def profiler_level(self, value: ProfilerLevel):
|
|
177
|
+
self._profiler_level = value
|
|
178
|
+
|
|
179
|
+
@aic_metrics.setter
|
|
180
|
+
def aic_metrics(self, value: AicoreMetrics):
|
|
181
|
+
self._aic_metrics = value
|
|
182
|
+
|
|
183
|
+
@l2_cache.setter
|
|
184
|
+
def l2_cache(self, value: bool):
|
|
185
|
+
self._l2_cache = value
|
|
186
|
+
|
|
187
|
+
@mstx.setter
|
|
188
|
+
def mstx(self, value: bool):
|
|
189
|
+
self._mstx = value
|
|
190
|
+
|
|
191
|
+
@data_simplification.setter
|
|
192
|
+
def data_simplification(self, value: bool):
|
|
193
|
+
self._data_simplification = value
|
|
194
|
+
|
|
195
|
+
@export_type.setter
|
|
196
|
+
def export_type(self, value: list):
|
|
197
|
+
self._export_type = value
|