mindspore 2.4.10__cp39-cp39-win_amd64.whl → 2.6.0rc1__cp39-cp39-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mindspore might be problematic. Click here for more details.
- mindspore/.commit_id +1 -1
- mindspore/__init__.py +13 -6
- mindspore/_c_dataengine.cp39-win_amd64.pyd +0 -0
- mindspore/_c_expression.cp39-win_amd64.pyd +0 -0
- mindspore/_c_mindrecord.cp39-win_amd64.pyd +0 -0
- mindspore/_check_jit_forbidden_api.py +3 -0
- mindspore/_checkparam.py +3 -38
- mindspore/_deprecated/__init__.py +17 -0
- mindspore/_deprecated/jit.py +198 -0
- mindspore/_extends/builtin_operations.py +1 -1
- mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +1 -1
- mindspore/_extends/parse/__init__.py +6 -7
- mindspore/_extends/parse/compile_config.py +83 -0
- mindspore/_extends/parse/deprecated/__init__.py +0 -0
- mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +394 -0
- mindspore/_extends/parse/jit_fallback_modules/__init__.py +0 -0
- mindspore/_extends/parse/jit_fallback_modules/check_utils.py +123 -0
- mindspore/_extends/parse/jit_fallback_modules/third_party_modules.py +50 -0
- mindspore/_extends/parse/parser.py +46 -197
- mindspore/_extends/parse/resources.py +1 -5
- mindspore/_extends/parse/standard_method.py +217 -98
- mindspore/_extends/pijit/__init__.py +2 -2
- mindspore/_extends/pijit/pijit_func_white_list.py +17 -12
- mindspore/_extends/pijit/tensor_func_list.py +27 -0
- mindspore/_extends/utils.py +1 -1
- mindspore/amp.py +11 -5
- mindspore/avcodec-59.dll +0 -0
- mindspore/avdevice-59.dll +0 -0
- mindspore/avfilter-8.dll +0 -0
- mindspore/avformat-59.dll +0 -0
- mindspore/avutil-57.dll +0 -0
- mindspore/boost/__init__.py +2 -2
- mindspore/boost/base.py +3 -7
- mindspore/boost/boost_cell_wrapper.py +138 -43
- mindspore/common/__init__.py +6 -3
- mindspore/common/_grad_function.py +56 -0
- mindspore/common/_pijit_context.py +14 -5
- mindspore/common/_register_for_tensor.py +1 -2
- mindspore/common/_stub_tensor.py +30 -14
- mindspore/common/_tensor_cpp_method.py +17 -0
- mindspore/common/_tensor_docs.py +4760 -0
- mindspore/common/api.py +435 -371
- mindspore/common/auto_dynamic_shape.py +41 -44
- mindspore/common/dtype.py +39 -36
- mindspore/common/dump.py +9 -6
- mindspore/common/file_system.py +9 -1
- mindspore/common/generator.py +2 -0
- mindspore/common/hook_handle.py +6 -2
- mindspore/common/initializer.py +13 -10
- mindspore/common/jit_begin_end.py +94 -0
- mindspore/common/jit_config.py +6 -1
- mindspore/common/jit_context.py +76 -0
- mindspore/common/jit_trace.py +378 -0
- mindspore/common/lazy_inline.py +9 -3
- mindspore/common/mindir_util.py +10 -2
- mindspore/common/mutable.py +5 -4
- mindspore/common/parameter.py +135 -52
- mindspore/common/seed.py +2 -2
- mindspore/common/sparse_tensor.py +23 -17
- mindspore/common/tensor.py +951 -1992
- mindspore/communication/__init__.py +7 -5
- mindspore/communication/_comm_helper.py +52 -2
- mindspore/communication/comm_func.py +240 -181
- mindspore/communication/management.py +95 -26
- mindspore/context.py +314 -566
- mindspore/dataset/__init__.py +65 -37
- mindspore/dataset/audio/__init__.py +2 -8
- mindspore/dataset/audio/transforms.py +3 -17
- mindspore/dataset/callback/ds_callback.py +2 -1
- mindspore/dataset/core/config.py +87 -6
- mindspore/dataset/engine/cache_admin.py +3 -3
- mindspore/dataset/engine/cache_client.py +6 -5
- mindspore/dataset/engine/datasets.py +292 -267
- mindspore/dataset/engine/datasets_audio.py +22 -8
- mindspore/dataset/engine/datasets_standard_format.py +46 -27
- mindspore/dataset/engine/datasets_text.py +78 -48
- mindspore/dataset/engine/datasets_user_defined.py +182 -116
- mindspore/dataset/engine/datasets_vision.py +120 -44
- mindspore/dataset/engine/iterators.py +283 -63
- mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
- mindspore/dataset/engine/obs/util.py +8 -0
- mindspore/dataset/engine/queue.py +40 -0
- mindspore/dataset/engine/samplers.py +289 -43
- mindspore/dataset/engine/serializer_deserializer.py +3 -2
- mindspore/dataset/engine/validators.py +53 -11
- mindspore/dataset/text/__init__.py +7 -6
- mindspore/dataset/text/transforms.py +6 -5
- mindspore/dataset/text/utils.py +3 -3
- mindspore/dataset/transforms/__init__.py +0 -9
- mindspore/dataset/transforms/py_transforms_util.py +17 -0
- mindspore/dataset/transforms/transforms.py +31 -14
- mindspore/dataset/utils/browse_dataset.py +1 -1
- mindspore/dataset/vision/__init__.py +2 -9
- mindspore/dataset/vision/transforms.py +202 -158
- mindspore/dataset/vision/utils.py +7 -5
- mindspore/dataset/vision/validators.py +1 -2
- mindspore/device_context/__init__.py +21 -0
- mindspore/device_context/ascend/__init__.py +25 -0
- mindspore/device_context/ascend/device.py +72 -0
- mindspore/device_context/ascend/op_debug.py +153 -0
- mindspore/device_context/ascend/op_precision.py +193 -0
- mindspore/device_context/ascend/op_tuning.py +123 -0
- mindspore/{ops_generate/gen_constants.py → device_context/cpu/__init__.py} +6 -17
- mindspore/device_context/cpu/device.py +62 -0
- mindspore/device_context/cpu/op_tuning.py +43 -0
- mindspore/device_context/gpu/__init__.py +21 -0
- mindspore/device_context/gpu/device.py +70 -0
- mindspore/device_context/gpu/op_precision.py +67 -0
- mindspore/device_context/gpu/op_tuning.py +175 -0
- mindspore/device_manager.py +170 -0
- mindspore/experimental/es/embedding_service.py +35 -27
- mindspore/experimental/llm_boost/__init__.py +1 -0
- mindspore/experimental/llm_boost/ascend_native/__init__.py +22 -0
- mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +211 -0
- mindspore/experimental/llm_boost/ascend_native/llm_boost.py +52 -0
- mindspore/experimental/llm_boost/atb/boost_base.py +2 -3
- mindspore/experimental/llm_boost/atb/llama_boost.py +6 -1
- mindspore/experimental/llm_boost/register.py +1 -0
- mindspore/experimental/map_parameter.py +4 -4
- mindspore/experimental/optim/adadelta.py +6 -6
- mindspore/experimental/optim/adagrad.py +4 -4
- mindspore/experimental/optim/adam.py +7 -0
- mindspore/experimental/optim/adamax.py +4 -4
- mindspore/experimental/optim/adamw.py +4 -0
- mindspore/experimental/optim/asgd.py +1 -1
- mindspore/experimental/optim/lr_scheduler.py +73 -46
- mindspore/experimental/optim/radam.py +34 -31
- mindspore/experimental/optim/rprop.py +1 -1
- mindspore/experimental/optim/sgd.py +1 -1
- mindspore/hal/contiguous_tensors_handle.py +6 -10
- mindspore/hal/device.py +55 -53
- mindspore/hal/event.py +52 -52
- mindspore/hal/memory.py +157 -117
- mindspore/hal/stream.py +150 -109
- mindspore/include/api/context.h +0 -1
- mindspore/include/dataset/constants.h +7 -4
- mindspore/include/dataset/execute.h +2 -2
- mindspore/jpeg62.dll +0 -0
- mindspore/log.py +50 -0
- mindspore/mindrecord/__init__.py +21 -8
- mindspore/mindrecord/config.py +17 -316
- mindspore/mindrecord/filereader.py +1 -9
- mindspore/mindrecord/filewriter.py +5 -15
- mindspore/mindrecord/mindpage.py +1 -9
- mindspore/mindspore_backend_common.dll +0 -0
- mindspore/mindspore_backend_manager.dll +0 -0
- mindspore/mindspore_common.dll +0 -0
- mindspore/mindspore_core.dll +0 -0
- mindspore/mindspore_dump.dll +0 -0
- mindspore/mindspore_frontend.dll +0 -0
- mindspore/mindspore_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 +796 -759
- mindspore/mint/distributed/__init__.py +70 -4
- mindspore/mint/distributed/distributed.py +2679 -44
- mindspore/mint/linalg/__init__.py +8 -0
- mindspore/mint/nn/__init__.py +743 -22
- mindspore/mint/nn/functional.py +716 -23
- mindspore/mint/nn/layer/__init__.py +21 -4
- mindspore/mint/nn/layer/_functions.py +334 -0
- mindspore/mint/nn/layer/activation.py +276 -1
- mindspore/mint/nn/layer/basic.py +123 -0
- mindspore/mint/nn/layer/conv.py +921 -0
- mindspore/mint/nn/layer/normalization.py +223 -28
- mindspore/mint/nn/layer/padding.py +797 -0
- mindspore/mint/nn/layer/pooling.py +235 -0
- mindspore/mint/optim/__init__.py +3 -1
- mindspore/mint/optim/adam.py +223 -0
- mindspore/mint/optim/adamw.py +26 -19
- mindspore/mint/optim/sgd.py +171 -0
- mindspore/mint/special/__init__.py +2 -1
- mindspore/multiprocessing/__init__.py +5 -0
- mindspore/nn/__init__.py +4 -1
- mindspore/nn/cell.py +1370 -189
- mindspore/nn/dynamic_lr.py +2 -1
- mindspore/nn/layer/activation.py +29 -27
- mindspore/nn/layer/basic.py +51 -35
- mindspore/nn/layer/channel_shuffle.py +3 -3
- mindspore/nn/layer/container.py +1 -1
- mindspore/nn/layer/conv.py +22 -17
- mindspore/nn/layer/embedding.py +12 -11
- mindspore/nn/layer/normalization.py +56 -49
- mindspore/nn/layer/padding.py +4 -3
- mindspore/nn/layer/pooling.py +120 -42
- mindspore/nn/layer/rnn_cells.py +1 -1
- mindspore/nn/layer/rnns.py +2 -1
- mindspore/nn/layer/timedistributed.py +5 -5
- mindspore/nn/layer/transformer.py +59 -36
- mindspore/nn/learning_rate_schedule.py +8 -4
- mindspore/nn/loss/loss.py +58 -55
- mindspore/nn/optim/ada_grad.py +7 -5
- mindspore/nn/optim/adadelta.py +11 -9
- mindspore/nn/optim/adafactor.py +1 -1
- mindspore/nn/optim/adam.py +17 -13
- mindspore/nn/optim/adamax.py +8 -7
- mindspore/nn/optim/adasum.py +5 -5
- mindspore/nn/optim/asgd.py +1 -1
- mindspore/nn/optim/ftrl.py +11 -9
- mindspore/nn/optim/lamb.py +1 -1
- mindspore/nn/optim/lars.py +1 -4
- mindspore/nn/optim/lazyadam.py +12 -10
- mindspore/nn/optim/momentum.py +7 -6
- mindspore/nn/optim/optimizer.py +3 -3
- mindspore/nn/optim/proximal_ada_grad.py +12 -10
- mindspore/nn/optim/rmsprop.py +13 -12
- mindspore/nn/optim/rprop.py +11 -9
- mindspore/nn/optim/sgd.py +9 -6
- mindspore/nn/optim/tft_wrapper.py +5 -2
- mindspore/nn/optim/thor.py +2 -1
- mindspore/nn/probability/bijector/bijector.py +17 -11
- mindspore/nn/probability/bijector/gumbel_cdf.py +5 -5
- mindspore/nn/probability/bijector/invert.py +2 -2
- mindspore/nn/probability/bijector/scalar_affine.py +3 -3
- mindspore/nn/probability/bijector/softplus.py +3 -2
- mindspore/nn/probability/distribution/beta.py +3 -3
- mindspore/nn/probability/distribution/categorical.py +1 -1
- mindspore/nn/probability/distribution/cauchy.py +4 -2
- mindspore/nn/probability/distribution/exponential.py +6 -7
- mindspore/nn/probability/distribution/gamma.py +2 -2
- mindspore/nn/probability/distribution/gumbel.py +2 -2
- mindspore/nn/probability/distribution/half_normal.py +5 -3
- mindspore/nn/probability/distribution/logistic.py +5 -3
- mindspore/nn/probability/distribution/poisson.py +1 -1
- mindspore/nn/probability/distribution/uniform.py +5 -3
- mindspore/nn/reinforcement/_tensors_queue.py +1 -1
- mindspore/nn/reinforcement/tensor_array.py +1 -1
- mindspore/nn/utils/init.py +13 -11
- mindspore/nn/wrap/__init__.py +6 -6
- mindspore/nn/wrap/cell_wrapper.py +181 -122
- mindspore/nn/wrap/grad_reducer.py +45 -36
- mindspore/nn/wrap/loss_scale.py +6 -7
- mindspore/numpy/array_creations.py +63 -65
- mindspore/numpy/array_ops.py +149 -144
- mindspore/numpy/logic_ops.py +41 -42
- mindspore/numpy/math_ops.py +365 -363
- mindspore/numpy/utils.py +17 -18
- mindspore/numpy/utils_const.py +5 -6
- mindspore/opencv_core452.dll +0 -0
- mindspore/opencv_imgcodecs452.dll +0 -0
- mindspore/opencv_imgproc452.dll +0 -0
- mindspore/ops/__init__.py +5 -3
- mindspore/ops/_grad_experimental/grad_comm_ops.py +112 -16
- mindspore/ops/_grad_experimental/grad_debug_ops.py +14 -2
- mindspore/ops/_grad_experimental/grad_inner_ops.py +9 -0
- mindspore/ops/_grad_experimental/grad_math_ops.py +2 -1
- mindspore/ops/_grad_experimental/taylor_rule.py +29 -0
- mindspore/ops/_op_impl/cpu/__init__.py +1 -0
- mindspore/ops/_op_impl/cpu/raise_op.py +28 -0
- mindspore/ops/_register_for_op.py +0 -11
- mindspore/{ops_generate → ops/_utils}/arg_dtype_cast.py +123 -4
- mindspore/{ops_generate → ops/_utils}/arg_handler.py +3 -65
- mindspore/ops/_vmap/vmap_array_ops.py +27 -25
- mindspore/ops/_vmap/vmap_base.py +0 -2
- mindspore/ops/_vmap/vmap_grad_nn_ops.py +21 -14
- mindspore/ops/_vmap/vmap_math_ops.py +15 -16
- mindspore/ops/_vmap/vmap_nn_ops.py +29 -42
- mindspore/ops/auto_generate/__init__.py +4 -3
- mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +236 -46
- mindspore/ops/auto_generate/gen_extend_func.py +764 -124
- mindspore/ops/auto_generate/gen_ops_def.py +4018 -2264
- mindspore/ops/auto_generate/gen_ops_prim.py +15463 -5037
- mindspore/ops/auto_generate/pyboost_inner_prim.py +221 -87
- mindspore/ops/composite/__init__.py +2 -1
- mindspore/ops/composite/base.py +20 -25
- mindspore/ops/composite/math_ops.py +6 -16
- mindspore/ops/composite/multitype_ops/__init__.py +5 -2
- mindspore/ops/composite/multitype_ops/_compile_utils.py +228 -30
- mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -2
- mindspore/ops/composite/multitype_ops/add_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/div_impl.py +6 -4
- mindspore/ops/composite/multitype_ops/equal_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/floordiv_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/getitem_impl.py +3 -2
- mindspore/ops/composite/multitype_ops/greater_equal_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/greater_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/in_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/invert_impl.py +50 -0
- mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/less_equal_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/less_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/logic_not_impl.py +3 -2
- mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/mod_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/mul_impl.py +3 -2
- mindspore/ops/composite/multitype_ops/negative_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/not_equal_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/not_in_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/ones_like_impl.py +18 -0
- mindspore/ops/composite/multitype_ops/pow_impl.py +2 -30
- mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/sub_impl.py +2 -1
- mindspore/ops/function/__init__.py +40 -2
- mindspore/ops/function/_add_attr_func.py +58 -0
- mindspore/ops/function/array_func.py +2089 -2403
- mindspore/ops/function/clip_func.py +80 -23
- mindspore/ops/function/debug_func.py +57 -57
- mindspore/ops/function/grad/__init__.py +1 -0
- mindspore/ops/function/grad/grad_func.py +104 -71
- mindspore/ops/function/image_func.py +2 -2
- mindspore/ops/function/linalg_func.py +47 -78
- mindspore/ops/function/math_func.py +4501 -3802
- mindspore/ops/function/nn_func.py +1726 -620
- mindspore/ops/function/other_func.py +159 -1
- mindspore/ops/function/parameter_func.py +18 -84
- mindspore/ops/function/random_func.py +440 -387
- mindspore/ops/function/reshard_func.py +4 -70
- mindspore/ops/function/sparse_func.py +3 -3
- mindspore/ops/function/sparse_unary_func.py +6 -6
- mindspore/ops/function/spectral_func.py +25 -58
- mindspore/ops/function/vmap_func.py +24 -17
- mindspore/ops/functional.py +22 -7
- mindspore/ops/functional_overload.py +1440 -0
- mindspore/ops/op_info_register.py +32 -244
- mindspore/ops/operations/__init__.py +13 -7
- mindspore/ops/operations/_custom_ops_utils.py +247 -0
- mindspore/ops/operations/_embedding_cache_ops.py +4 -4
- mindspore/ops/operations/_grad_ops.py +2 -43
- mindspore/ops/operations/_infer_ops.py +2 -1
- mindspore/ops/operations/_inner_ops.py +43 -84
- mindspore/ops/operations/_ms_kernel.py +4 -10
- mindspore/ops/operations/_rl_inner_ops.py +1 -1
- mindspore/ops/operations/_scalar_ops.py +3 -2
- mindspore/ops/operations/_sequence_ops.py +1 -1
- mindspore/ops/operations/_tensor_array.py +1 -1
- mindspore/ops/operations/array_ops.py +81 -324
- mindspore/ops/operations/comm_ops.py +154 -108
- mindspore/ops/operations/custom_ops.py +232 -78
- mindspore/ops/operations/debug_ops.py +153 -59
- mindspore/ops/operations/inner_ops.py +7 -5
- mindspore/ops/operations/linalg_ops.py +1 -57
- mindspore/ops/operations/manually_defined/_inner.py +1 -1
- mindspore/ops/operations/manually_defined/ops_def.py +928 -180
- mindspore/ops/operations/math_ops.py +32 -234
- mindspore/ops/operations/nn_ops.py +210 -498
- mindspore/ops/operations/other_ops.py +62 -9
- mindspore/ops/operations/random_ops.py +13 -7
- mindspore/ops/operations/reshard_ops.py +1 -1
- mindspore/ops/operations/sparse_ops.py +2 -2
- mindspore/ops/primitive.py +66 -53
- mindspore/ops/tensor_method.py +1888 -0
- mindspore/ops_generate/__init__.py +0 -5
- mindspore/ops_generate/aclnn/__init__.py +0 -0
- mindspore/ops_generate/aclnn/aclnn_kernel_register_auto_cc_generator.py +135 -0
- mindspore/ops_generate/aclnn/gen_aclnn_implement.py +257 -0
- mindspore/ops_generate/api/__init__.py +0 -0
- mindspore/ops_generate/api/add_tensor_docs_generator.py +56 -0
- mindspore/ops_generate/api/cpp_create_prim_instance_helper_generator.py +105 -0
- mindspore/ops_generate/api/functional_map_cpp_generator.py +504 -0
- mindspore/ops_generate/api/functional_overload_py_generator.py +112 -0
- mindspore/ops_generate/api/functions_cc_generator.py +237 -0
- mindspore/ops_generate/api/gen_api.py +103 -0
- mindspore/ops_generate/api/op_api_proto.py +235 -0
- mindspore/ops_generate/api/tensor_func_reg_cpp_generator.py +461 -0
- mindspore/ops_generate/common/__init__.py +0 -0
- mindspore/ops_generate/common/base_generator.py +11 -0
- mindspore/ops_generate/common/gen_constants.py +91 -0
- mindspore/ops_generate/common/gen_utils.py +348 -0
- mindspore/ops_generate/common/op_proto.py +473 -0
- mindspore/ops_generate/common/template.py +523 -0
- mindspore/ops_generate/gen_ops.py +22 -1069
- mindspore/ops_generate/op_def/__init__.py +0 -0
- mindspore/ops_generate/op_def/gen_op_def.py +90 -0
- mindspore/ops_generate/op_def/lite_ops_cpp_generator.py +191 -0
- mindspore/ops_generate/op_def/ops_def_cc_generator.py +299 -0
- mindspore/ops_generate/op_def/ops_def_h_generator.py +74 -0
- mindspore/ops_generate/op_def/ops_name_h_generator.py +83 -0
- mindspore/ops_generate/op_def/ops_primitive_h_generator.py +125 -0
- mindspore/ops_generate/op_def_py/__init__.py +0 -0
- mindspore/ops_generate/op_def_py/gen_op_def_py.py +47 -0
- mindspore/ops_generate/op_def_py/op_def_py_generator.py +132 -0
- mindspore/ops_generate/op_def_py/op_prim_py_generator.py +489 -0
- mindspore/ops_generate/pyboost/__init__.py +0 -0
- mindspore/ops_generate/pyboost/auto_grad_impl_cc_generator.py +139 -0
- mindspore/ops_generate/pyboost/auto_grad_reg_cc_generator.py +93 -0
- mindspore/ops_generate/pyboost/gen_pyboost_func.py +175 -0
- mindspore/ops_generate/pyboost/op_template_parser.py +517 -0
- mindspore/ops_generate/pyboost/pyboost_functions_cpp_generator.py +407 -0
- mindspore/ops_generate/pyboost/pyboost_functions_h_generator.py +100 -0
- mindspore/ops_generate/pyboost/pyboost_functions_py_generator.py +148 -0
- mindspore/ops_generate/pyboost/pyboost_grad_function_cpp_generator.py +155 -0
- mindspore/ops_generate/pyboost/pyboost_inner_prim_generator.py +132 -0
- mindspore/ops_generate/pyboost/pyboost_native_grad_functions_generator.py +272 -0
- mindspore/ops_generate/pyboost/pyboost_op_cpp_code_generator.py +938 -0
- mindspore/ops_generate/pyboost/pyboost_overload_functions_cpp_generator.py +357 -0
- mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +179 -36
- mindspore/ops_generate/resources/__init__.py +0 -0
- mindspore/ops_generate/resources/resource_list.py +30 -0
- mindspore/ops_generate/resources/resource_loader.py +36 -0
- mindspore/ops_generate/resources/resource_manager.py +64 -0
- mindspore/ops_generate/resources/yaml_loader.py +88 -0
- mindspore/ops_generate/tensor_py_cc_generator.py +122 -0
- mindspore/parallel/__init__.py +7 -3
- mindspore/parallel/_auto_parallel_context.py +152 -34
- mindspore/parallel/_cell_wrapper.py +130 -15
- mindspore/parallel/_parallel_serialization.py +107 -5
- mindspore/parallel/_ps_context.py +1 -1
- mindspore/parallel/_recovery_context.py +7 -2
- mindspore/parallel/_tensor.py +142 -18
- mindspore/parallel/_utils.py +199 -23
- mindspore/parallel/algo_parameter_config.py +4 -4
- mindspore/parallel/auto_parallel.py +732 -0
- mindspore/parallel/checkpoint_convert.py +159 -0
- mindspore/parallel/checkpoint_transform.py +698 -35
- mindspore/parallel/cluster/process_entity/_api.py +276 -50
- mindspore/parallel/cluster/process_entity/_utils.py +41 -6
- mindspore/parallel/cluster/run.py +21 -4
- mindspore/parallel/function/__init__.py +24 -0
- mindspore/parallel/function/reshard_func.py +259 -0
- mindspore/parallel/nn/__init__.py +25 -0
- mindspore/parallel/nn/parallel_cell_wrapper.py +263 -0
- mindspore/parallel/nn/parallel_grad_reducer.py +169 -0
- mindspore/parallel/parameter_broadcast.py +25 -14
- mindspore/parallel/shard.py +137 -58
- mindspore/parallel/transform_safetensors.py +363 -305
- mindspore/profiler/__init__.py +22 -5
- mindspore/profiler/analysis/__init__.py +0 -0
- mindspore/profiler/analysis/parser/__init__.py +0 -0
- mindspore/profiler/analysis/parser/ascend_cann_parser.py +170 -0
- mindspore/profiler/analysis/parser/base_parser.py +158 -0
- mindspore/profiler/analysis/parser/framework_cann_relation_parser.py +45 -0
- mindspore/profiler/analysis/parser/ms_framework_parser.py +142 -0
- mindspore/profiler/analysis/parser/ms_minddata_parser.py +145 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/__init__.py +0 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +264 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/base_timeline_assembler.py +40 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +106 -0
- mindspore/profiler/analysis/parser/timeline_creator/__init__.py +0 -0
- mindspore/profiler/analysis/parser/timeline_creator/base_timeline_creator.py +44 -0
- mindspore/profiler/analysis/parser/timeline_creator/cpu_op_timeline_creator.py +90 -0
- mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +76 -0
- mindspore/profiler/analysis/parser/timeline_creator/msprof_timeline_creator.py +103 -0
- mindspore/profiler/analysis/parser/timeline_creator/scope_layer_timeline_creator.py +134 -0
- mindspore/profiler/analysis/parser/timeline_event/__init__.py +0 -0
- mindspore/profiler/analysis/parser/timeline_event/base_event.py +233 -0
- mindspore/profiler/analysis/parser/timeline_event/cpu_op_event.py +47 -0
- mindspore/profiler/analysis/parser/timeline_event/flow_event.py +36 -0
- mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +415 -0
- mindspore/profiler/analysis/parser/timeline_event/msprof_event.py +73 -0
- mindspore/profiler/analysis/parser/timeline_event/scope_layer_event.py +53 -0
- mindspore/profiler/analysis/parser/timeline_event/timeline_event_pool.py +146 -0
- mindspore/profiler/analysis/task_manager.py +131 -0
- mindspore/profiler/analysis/time_converter.py +84 -0
- mindspore/profiler/analysis/viewer/__init__.py +0 -0
- mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +372 -0
- mindspore/profiler/analysis/viewer/ascend_integrate_viewer.py +87 -0
- mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +250 -0
- mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +320 -0
- mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +327 -0
- mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +376 -0
- mindspore/profiler/analysis/viewer/ascend_timeline_viewer.py +58 -0
- mindspore/profiler/analysis/viewer/base_viewer.py +26 -0
- mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +96 -0
- mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +581 -0
- mindspore/profiler/analysis/work_flow.py +73 -0
- mindspore/profiler/common/ascend_msprof_exporter.py +139 -0
- mindspore/profiler/common/command_executor.py +90 -0
- mindspore/profiler/common/constant.py +186 -3
- mindspore/profiler/common/file_manager.py +208 -0
- mindspore/profiler/common/log.py +130 -0
- mindspore/profiler/common/msprof_cmd_tool.py +221 -0
- mindspore/profiler/common/path_manager.py +395 -0
- mindspore/profiler/common/process_bar.py +168 -0
- mindspore/profiler/common/process_pool.py +9 -3
- mindspore/profiler/common/profiler_context.py +500 -0
- mindspore/profiler/common/profiler_info.py +304 -0
- mindspore/profiler/common/profiler_meta_data.py +74 -0
- mindspore/profiler/common/profiler_output_path.py +284 -0
- mindspore/profiler/common/profiler_parameters.py +251 -0
- mindspore/profiler/common/profiler_path_manager.py +179 -0
- mindspore/profiler/common/record_function.py +76 -0
- mindspore/profiler/common/tlv_decoder.py +76 -0
- mindspore/profiler/common/util.py +75 -2
- mindspore/profiler/dynamic_profiler.py +341 -75
- mindspore/profiler/envprofiler.py +163 -0
- mindspore/profiler/experimental_config.py +197 -0
- mindspore/profiler/mstx.py +242 -0
- mindspore/profiler/platform/__init__.py +21 -0
- mindspore/profiler/platform/base_profiler.py +40 -0
- mindspore/profiler/platform/cpu_profiler.py +124 -0
- mindspore/profiler/platform/gpu_profiler.py +74 -0
- mindspore/profiler/platform/npu_profiler.py +335 -0
- mindspore/profiler/profiler.py +1073 -90
- mindspore/profiler/profiler_action_controller.py +187 -0
- mindspore/profiler/profiler_interface.py +118 -0
- mindspore/profiler/schedule.py +243 -0
- mindspore/rewrite/api/node.py +15 -13
- mindspore/rewrite/api/symbol_tree.py +2 -3
- mindspore/run_check/_check_version.py +27 -20
- mindspore/run_check/run_check.py +1 -1
- mindspore/runtime/__init__.py +37 -0
- mindspore/runtime/device.py +27 -0
- mindspore/runtime/event.py +209 -0
- mindspore/runtime/executor.py +177 -0
- mindspore/runtime/memory.py +409 -0
- mindspore/runtime/stream.py +460 -0
- mindspore/runtime/thread_bind_core.py +401 -0
- mindspore/safeguard/rewrite_obfuscation.py +12 -9
- mindspore/swresample-4.dll +0 -0
- mindspore/swscale-6.dll +0 -0
- mindspore/tinyxml2.dll +0 -0
- mindspore/train/__init__.py +8 -8
- mindspore/train/_utils.py +88 -25
- mindspore/train/amp.py +9 -5
- mindspore/train/callback/__init__.py +2 -2
- mindspore/train/callback/_callback.py +2 -16
- mindspore/train/callback/_checkpoint.py +53 -55
- mindspore/train/callback/_cluster_monitor.py +14 -18
- mindspore/train/callback/_early_stop.py +1 -1
- mindspore/train/callback/_flops_collector.py +103 -68
- mindspore/train/callback/_history.py +8 -5
- mindspore/train/callback/_lambda_callback.py +2 -2
- mindspore/train/callback/_landscape.py +0 -3
- mindspore/train/callback/_loss_monitor.py +2 -1
- mindspore/train/callback/_on_request_exit.py +6 -5
- mindspore/train/callback/_reduce_lr_on_plateau.py +11 -6
- mindspore/train/callback/_summary_collector.py +52 -19
- mindspore/train/callback/_time_monitor.py +2 -1
- mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +204 -107
- mindspore/train/data_sink.py +25 -2
- mindspore/train/dataset_helper.py +15 -16
- mindspore/train/loss_scale_manager.py +8 -7
- mindspore/train/metrics/accuracy.py +3 -3
- mindspore/train/metrics/confusion_matrix.py +9 -9
- mindspore/train/metrics/error.py +3 -3
- mindspore/train/metrics/hausdorff_distance.py +4 -4
- mindspore/train/metrics/mean_surface_distance.py +3 -3
- mindspore/train/metrics/metric.py +0 -12
- mindspore/train/metrics/occlusion_sensitivity.py +4 -2
- mindspore/train/metrics/precision.py +11 -10
- mindspore/train/metrics/recall.py +9 -9
- mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
- mindspore/train/mind_ir_pb2.py +174 -46
- mindspore/train/model.py +184 -113
- mindspore/train/serialization.py +622 -978
- mindspore/train/summary/_summary_adapter.py +2 -2
- mindspore/train/summary/summary_record.py +2 -3
- mindspore/train/train_thor/model_thor.py +1 -1
- mindspore/turbojpeg.dll +0 -0
- mindspore/utils/__init__.py +6 -3
- mindspore/utils/dryrun.py +140 -0
- mindspore/utils/hooks.py +81 -0
- mindspore/utils/runtime_execution_order_check.py +550 -0
- mindspore/utils/utils.py +138 -4
- mindspore/version.py +1 -1
- {mindspore-2.4.10.dist-info → mindspore-2.6.0rc1.dist-info}/METADATA +3 -3
- {mindspore-2.4.10.dist-info → mindspore-2.6.0rc1.dist-info}/RECORD +562 -393
- {mindspore-2.4.10.dist-info → mindspore-2.6.0rc1.dist-info}/entry_points.txt +1 -1
- mindspore/_install_custom.py +0 -43
- mindspore/common/_register_for_adapter.py +0 -74
- mindspore/common/_tensor_overload.py +0 -139
- mindspore/mindspore_np_dtype.dll +0 -0
- mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
- mindspore/ops/auto_generate/gen_arg_handler.py +0 -197
- mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
- mindspore/ops_generate/gen_aclnn_implement.py +0 -263
- mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
- mindspore/ops_generate/gen_pyboost_func.py +0 -1052
- mindspore/ops_generate/gen_utils.py +0 -209
- mindspore/ops_generate/op_proto.py +0 -145
- mindspore/ops_generate/template.py +0 -261
- mindspore/profiler/envprofiling.py +0 -254
- mindspore/profiler/profiling.py +0 -1926
- {mindspore-2.4.10.dist-info → mindspore-2.6.0rc1.dist-info}/WHEEL +0 -0
- {mindspore-2.4.10.dist-info → mindspore-2.6.0rc1.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
# Copyright 2022-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
|
+
"""Profiler Info"""
|
|
16
|
+
import os
|
|
17
|
+
from typing import Dict, Any
|
|
18
|
+
from configparser import ConfigParser, NoSectionError, NoOptionError
|
|
19
|
+
|
|
20
|
+
from mindspore import log as logger
|
|
21
|
+
from mindspore.version import __version__ as ms_version
|
|
22
|
+
from mindspore.profiler.common.util import get_cann_version
|
|
23
|
+
from mindspore.profiler.common.singleton import Singleton
|
|
24
|
+
from mindspore.profiler.common.file_manager import FileManager
|
|
25
|
+
from mindspore.profiler.common.path_manager import PathManager
|
|
26
|
+
from mindspore.profiler.common.msprof_cmd_tool import MsprofCmdTool
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
@Singleton
|
|
30
|
+
class ProfilerInfo:
|
|
31
|
+
"""
|
|
32
|
+
Profiler Info
|
|
33
|
+
This class is used to record profiler information.
|
|
34
|
+
|
|
35
|
+
Example:
|
|
36
|
+
{
|
|
37
|
+
"profiler_parameters": {
|
|
38
|
+
},
|
|
39
|
+
"ms_profiler_info": {
|
|
40
|
+
"start_collect_syscnt": xxx,
|
|
41
|
+
"start_collect_clock_time": xxx,
|
|
42
|
+
},
|
|
43
|
+
"cann_profiler_info": {
|
|
44
|
+
},
|
|
45
|
+
"ms_version": "x.x.x",
|
|
46
|
+
"cann_version": x.x.x",
|
|
47
|
+
}
|
|
48
|
+
"""
|
|
49
|
+
HOST_START_LOG = "host_start.log"
|
|
50
|
+
START_INFO = "start_info"
|
|
51
|
+
MSPROF_INFO_SCRIPT_PATH = os.path.join(
|
|
52
|
+
"tools",
|
|
53
|
+
"profiler",
|
|
54
|
+
"profiler_tool",
|
|
55
|
+
"analysis",
|
|
56
|
+
"interface",
|
|
57
|
+
"get_msprof_info.py",
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
PROFILER_INFO_FILE = "profiler_info_{}.json"
|
|
61
|
+
PROFILER_PARAMETERS = "profiler_parameters"
|
|
62
|
+
MS_PROFILER_INFO = "ms_profiler_info"
|
|
63
|
+
CANN_PROFILER_INFO = "cann_profiler_info"
|
|
64
|
+
ANALYSIS_COST_TIME = "analysis_cost_time"
|
|
65
|
+
MS_VERSION = "ms_version"
|
|
66
|
+
CANN_VERSION = "cann_version"
|
|
67
|
+
CONTEXT_MODE = "context_mode"
|
|
68
|
+
JIT_LEVEL = "jit_level"
|
|
69
|
+
|
|
70
|
+
US_TO_NS = 1000
|
|
71
|
+
|
|
72
|
+
def __init__(self):
|
|
73
|
+
self._profiler_info = {
|
|
74
|
+
self.PROFILER_PARAMETERS: {},
|
|
75
|
+
self.MS_PROFILER_INFO: {},
|
|
76
|
+
self.CANN_PROFILER_INFO: {},
|
|
77
|
+
self.ANALYSIS_COST_TIME: {},
|
|
78
|
+
self.MS_VERSION: ms_version,
|
|
79
|
+
self.CANN_VERSION: get_cann_version(),
|
|
80
|
+
self.CONTEXT_MODE: -1,
|
|
81
|
+
self.JIT_LEVEL: "",
|
|
82
|
+
}
|
|
83
|
+
# time params
|
|
84
|
+
self._freq = 100.0
|
|
85
|
+
self._cntvct = 0
|
|
86
|
+
self._clock_monotonic_raw = 0 # from host start log
|
|
87
|
+
self._collection_time_begin = 0
|
|
88
|
+
self._clock_monotonic_raw_info = 0 # from start info file
|
|
89
|
+
self._localtime_diff = 0
|
|
90
|
+
|
|
91
|
+
def load_info(self, info_file_path: str) -> None:
|
|
92
|
+
""""
|
|
93
|
+
Load profiler info from profiler_info_*.json path.
|
|
94
|
+
"""
|
|
95
|
+
self._profiler_info = FileManager.read_json_file(info_file_path)
|
|
96
|
+
|
|
97
|
+
def load_time_parameters(self, msprof_profile_path: str, msprof_profile_host_path: str) -> None:
|
|
98
|
+
"""
|
|
99
|
+
Load time parameters from msprof profile and host start log.
|
|
100
|
+
This method should be called before TimeConverter.init_parameters.
|
|
101
|
+
"""
|
|
102
|
+
if not msprof_profile_path or not msprof_profile_host_path:
|
|
103
|
+
raise ValueError(
|
|
104
|
+
"msprof_profile_path and msprof_profile_host_path must be provided"
|
|
105
|
+
)
|
|
106
|
+
self._read_host_start_log(msprof_profile_host_path)
|
|
107
|
+
self._read_start_info(msprof_profile_host_path)
|
|
108
|
+
self._get_freq_from_msprof(msprof_profile_path)
|
|
109
|
+
|
|
110
|
+
@property
|
|
111
|
+
def time_parameters(self) -> Dict[str, Any]:
|
|
112
|
+
"""
|
|
113
|
+
Get time parameters for TimeConverter.
|
|
114
|
+
"""
|
|
115
|
+
return {
|
|
116
|
+
"freq": self._freq,
|
|
117
|
+
"cntvct": self._cntvct,
|
|
118
|
+
"localtime_diff": self._localtime_diff
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
@property
|
|
122
|
+
def profiler_parameters(self) -> Dict[str, str]:
|
|
123
|
+
"""
|
|
124
|
+
Get profiler parameters.
|
|
125
|
+
"""
|
|
126
|
+
return self._profiler_info[self.PROFILER_PARAMETERS]
|
|
127
|
+
|
|
128
|
+
@profiler_parameters.setter
|
|
129
|
+
def profiler_parameters(self, value: dict):
|
|
130
|
+
"""
|
|
131
|
+
Set profiler parameters.
|
|
132
|
+
"""
|
|
133
|
+
self._profiler_info[self.PROFILER_PARAMETERS] = value
|
|
134
|
+
|
|
135
|
+
@property
|
|
136
|
+
def context_mode(self) -> int:
|
|
137
|
+
"""
|
|
138
|
+
Get context mode.
|
|
139
|
+
"""
|
|
140
|
+
return self._profiler_info[self.CONTEXT_MODE]
|
|
141
|
+
|
|
142
|
+
@context_mode.setter
|
|
143
|
+
def context_mode(self, value: int):
|
|
144
|
+
"""
|
|
145
|
+
Set context mode.
|
|
146
|
+
"""
|
|
147
|
+
self._profiler_info[self.CONTEXT_MODE] = value
|
|
148
|
+
|
|
149
|
+
@property
|
|
150
|
+
def jit_level(self) -> str:
|
|
151
|
+
"""
|
|
152
|
+
Get jit level.
|
|
153
|
+
"""
|
|
154
|
+
return self._profiler_info[self.JIT_LEVEL]
|
|
155
|
+
|
|
156
|
+
@jit_level.setter
|
|
157
|
+
def jit_level(self, value: str):
|
|
158
|
+
"""
|
|
159
|
+
Set jit level.
|
|
160
|
+
"""
|
|
161
|
+
self._profiler_info[self.JIT_LEVEL] = value
|
|
162
|
+
|
|
163
|
+
@property
|
|
164
|
+
def ms_profiler_info(self) -> Dict[str, str]:
|
|
165
|
+
"""
|
|
166
|
+
Get ms profiler info.
|
|
167
|
+
"""
|
|
168
|
+
return self._profiler_info[self.MS_PROFILER_INFO]
|
|
169
|
+
|
|
170
|
+
@ms_profiler_info.setter
|
|
171
|
+
def ms_profiler_info(self, value: dict):
|
|
172
|
+
"""
|
|
173
|
+
Set ms profiler info.
|
|
174
|
+
"""
|
|
175
|
+
self._profiler_info[self.MS_PROFILER_INFO] = value
|
|
176
|
+
|
|
177
|
+
def save(self, output_path: str, rank_id: int):
|
|
178
|
+
"""
|
|
179
|
+
Save profiler info to json file.
|
|
180
|
+
"""
|
|
181
|
+
if not output_path:
|
|
182
|
+
logger.warning("Output path is empty, please check the output path.")
|
|
183
|
+
return
|
|
184
|
+
|
|
185
|
+
FileManager.create_json_file(
|
|
186
|
+
output_file_path=os.path.join(
|
|
187
|
+
output_path, self.PROFILER_INFO_FILE.format(rank_id)
|
|
188
|
+
),
|
|
189
|
+
json_data=self._profiler_info,
|
|
190
|
+
indent=4,
|
|
191
|
+
)
|
|
192
|
+
|
|
193
|
+
def _read_host_start_log(self, host_path: str) -> None:
|
|
194
|
+
"""
|
|
195
|
+
Read host_start.log and get clock_monotonic_raw and cntvct
|
|
196
|
+
|
|
197
|
+
host_start.log format:
|
|
198
|
+
[Host]
|
|
199
|
+
clock_monotonic_raw = 1234567890
|
|
200
|
+
cntvct = 1234567890
|
|
201
|
+
cntvct_diff = 1234567890
|
|
202
|
+
"""
|
|
203
|
+
start_log_path = os.path.join(host_path, self.HOST_START_LOG)
|
|
204
|
+
PathManager.check_input_file_path(start_log_path)
|
|
205
|
+
|
|
206
|
+
cfg = ConfigParser()
|
|
207
|
+
try:
|
|
208
|
+
cfg.read(start_log_path)
|
|
209
|
+
except Exception as err: # pylint: disable=W0703
|
|
210
|
+
raise ValueError(f"Error parsing host start log file: {err}") from err
|
|
211
|
+
|
|
212
|
+
try:
|
|
213
|
+
self._clock_monotonic_raw = int(cfg.get("Host", "clock_monotonic_raw"))
|
|
214
|
+
self._cntvct = int(cfg.get("Host", "cntvct"))
|
|
215
|
+
except NoSectionError as err:
|
|
216
|
+
raise ValueError("'Host' section not found in host start log file") from err
|
|
217
|
+
except NoOptionError as err:
|
|
218
|
+
raise ValueError(f"Required option not found in host start log file: {err}") from err
|
|
219
|
+
except ValueError as err:
|
|
220
|
+
raise ValueError(f"Invalid data in host start log file: {err}") from err
|
|
221
|
+
|
|
222
|
+
if self._clock_monotonic_raw <= 0 or self._cntvct <= 0:
|
|
223
|
+
raise ValueError(
|
|
224
|
+
"Invalid clock_monotonic_raw or cntvct value must be positive"
|
|
225
|
+
)
|
|
226
|
+
|
|
227
|
+
def _read_start_info(self, host_path: str) -> None:
|
|
228
|
+
"""
|
|
229
|
+
Read start_info file and calculate localtime_diff.
|
|
230
|
+
|
|
231
|
+
Raises:
|
|
232
|
+
FileNotFoundError: If the start_info file is not found.
|
|
233
|
+
ValueError: If required data is missing or invalid in the file.
|
|
234
|
+
JSONDecodeError: If there's an error decoding the JSON file.
|
|
235
|
+
"""
|
|
236
|
+
start_info_path = os.path.join(host_path, self.START_INFO)
|
|
237
|
+
info_data = FileManager.read_json_file(start_info_path)
|
|
238
|
+
|
|
239
|
+
try:
|
|
240
|
+
self._collection_time_begin = int(
|
|
241
|
+
info_data.get("collectionTimeBegin", 0)
|
|
242
|
+
) # us
|
|
243
|
+
self._clock_monotonic_raw_info = int(info_data.get("clockMonotonicRaw", 0))
|
|
244
|
+
except ValueError as err:
|
|
245
|
+
raise ValueError(f"Invalid data in start info file: {err}") from err
|
|
246
|
+
|
|
247
|
+
if self._collection_time_begin <= 0 or self._clock_monotonic_raw_info <= 0:
|
|
248
|
+
raise ValueError(
|
|
249
|
+
"Invalid collectionTimeBegin or clockMonotonicRaw value must be positive"
|
|
250
|
+
)
|
|
251
|
+
|
|
252
|
+
self._localtime_diff = self._clock_monotonic_raw + (
|
|
253
|
+
self._collection_time_begin * self.US_TO_NS - self._clock_monotonic_raw_info
|
|
254
|
+
)
|
|
255
|
+
|
|
256
|
+
def _get_freq_from_msprof(self, msprof_profile_path: str) -> None:
|
|
257
|
+
"""
|
|
258
|
+
Get frequency from get_msprof_info.py script
|
|
259
|
+
|
|
260
|
+
script return json information:
|
|
261
|
+
{
|
|
262
|
+
"data": {
|
|
263
|
+
"host_info": {
|
|
264
|
+
"cpu_info": [{"Frequency": "100.0000"}]
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
"""
|
|
269
|
+
msprof_info = MsprofCmdTool(msprof_profile_path).get_msprof_info()
|
|
270
|
+
|
|
271
|
+
if not isinstance(msprof_info, dict):
|
|
272
|
+
raise RuntimeError("msprof_info must be a dictionary")
|
|
273
|
+
|
|
274
|
+
data = msprof_info.get("data")
|
|
275
|
+
if not isinstance(data, dict):
|
|
276
|
+
raise RuntimeError("msprof_info['data'] must be a dictionary")
|
|
277
|
+
|
|
278
|
+
host_info = data.get("host_info")
|
|
279
|
+
if not isinstance(host_info, dict):
|
|
280
|
+
raise RuntimeError("msprof_info['data']['host_info'] must be a dictionary")
|
|
281
|
+
|
|
282
|
+
cpu_info_list = host_info.get("cpu_info", [])
|
|
283
|
+
if not isinstance(cpu_info_list, list) or not cpu_info_list:
|
|
284
|
+
raise RuntimeError("cpu_info must be a non-empty list")
|
|
285
|
+
|
|
286
|
+
cpu_info = cpu_info_list[0]
|
|
287
|
+
if not isinstance(cpu_info, dict):
|
|
288
|
+
raise RuntimeError("cpu_info[0] must be a dictionary")
|
|
289
|
+
|
|
290
|
+
freq_str = cpu_info.get("Frequency", self._freq)
|
|
291
|
+
if not freq_str:
|
|
292
|
+
logger.warning("Frequency is empty, use default frequency: %s", str(self._freq))
|
|
293
|
+
return
|
|
294
|
+
|
|
295
|
+
try:
|
|
296
|
+
freq = float(freq_str)
|
|
297
|
+
except ValueError as e:
|
|
298
|
+
raise ValueError(
|
|
299
|
+
"Convert frequency to float failed, please check msprof information"
|
|
300
|
+
) from e
|
|
301
|
+
|
|
302
|
+
if freq <= 0.0:
|
|
303
|
+
raise ValueError("Frequency is invalid, please check msprof info")
|
|
304
|
+
self._freq = freq
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Copyright 2024-2025 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
|
+
"""Profiler Meta Data"""
|
|
16
|
+
import os
|
|
17
|
+
from typing import Dict
|
|
18
|
+
|
|
19
|
+
import mindspore.communication as comm
|
|
20
|
+
from mindspore.profiler.common.constant import DeviceTarget
|
|
21
|
+
from mindspore.profiler.common.profiler_context import ProfilerContext
|
|
22
|
+
import mindspore.communication._comm_helper as comm_helper
|
|
23
|
+
from mindspore.profiler.common.file_manager import FileManager
|
|
24
|
+
from mindspore import log as logger
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class ProfilerMetaData:
|
|
28
|
+
"""
|
|
29
|
+
Profiler MetaData
|
|
30
|
+
This class is used to handle metadata.
|
|
31
|
+
"""
|
|
32
|
+
metadata: Dict[str, str] = {}
|
|
33
|
+
|
|
34
|
+
@classmethod
|
|
35
|
+
def get_metadata(cls) -> Dict[str, str]:
|
|
36
|
+
"""Get metadata"""
|
|
37
|
+
return cls.metadata
|
|
38
|
+
|
|
39
|
+
@classmethod
|
|
40
|
+
def set_metadata(cls, value: Dict[str, str]):
|
|
41
|
+
"""Set metadata"""
|
|
42
|
+
cls.metadata = value
|
|
43
|
+
|
|
44
|
+
@classmethod
|
|
45
|
+
def dump_metadata(cls):
|
|
46
|
+
"""Dump metadata to file."""
|
|
47
|
+
cls.add_group_info_to_metadata()
|
|
48
|
+
if not cls.metadata:
|
|
49
|
+
return
|
|
50
|
+
save_path = os.path.join(ProfilerContext().ascend_ms_dir, "profiler_metadata.json")
|
|
51
|
+
FileManager.create_json_file(save_path, cls.metadata)
|
|
52
|
+
cls.metadata.clear()
|
|
53
|
+
|
|
54
|
+
@classmethod
|
|
55
|
+
def add_group_info_to_metadata(cls):
|
|
56
|
+
"""Add parallel group info to metadata"""
|
|
57
|
+
try:
|
|
58
|
+
if ProfilerContext().device_target == DeviceTarget.NPU.value and comm.GlobalComm.INITED \
|
|
59
|
+
and comm.GlobalComm.BACKEND == comm_helper.Backend.HCCL:
|
|
60
|
+
group_info = {}
|
|
61
|
+
# pylint: disable=protected-access
|
|
62
|
+
for group_name in comm_helper._get_group_map().keys():
|
|
63
|
+
comm_name = comm.get_comm_name(group_name)
|
|
64
|
+
if not comm_name:
|
|
65
|
+
continue
|
|
66
|
+
group_info[comm_name] = {
|
|
67
|
+
"group_name": group_name,
|
|
68
|
+
"group_rank": comm.get_local_rank(group_name),
|
|
69
|
+
"global_ranks": comm.get_process_group_ranks(group_name)
|
|
70
|
+
}
|
|
71
|
+
if group_info:
|
|
72
|
+
cls.metadata.update({"parallel_group_info": group_info})
|
|
73
|
+
except Exception as err: # pylint: disable=broad-except
|
|
74
|
+
logger.error(f"Failed to get parallel group info, Exception: {str(err)}")
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
# Copyright 2022-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
|
+
"""Profiler output path"""
|
|
16
|
+
import os
|
|
17
|
+
from typing import Any, Dict, Optional
|
|
18
|
+
from mindspore.profiler.common.path_manager import PathManager
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class ProfilerOutputPath:
|
|
22
|
+
"""
|
|
23
|
+
Profiler output path structure:
|
|
24
|
+
|
|
25
|
+
└── output_path
|
|
26
|
+
└── {}_ascend_ms # rank 0
|
|
27
|
+
└── ASCEND_PROFILER_OUTPUT
|
|
28
|
+
└── FRAMEWORK
|
|
29
|
+
└── PROF_{}
|
|
30
|
+
└── host
|
|
31
|
+
└── device_{}
|
|
32
|
+
└── mindstudio_profiler_log
|
|
33
|
+
└── mindstudio_profiler_output
|
|
34
|
+
└── {}_ascend_ms # rank 1
|
|
35
|
+
└── ASCEND_PROFILER_OUTPUT
|
|
36
|
+
└── FRAMEWORK
|
|
37
|
+
└── PROF_{}
|
|
38
|
+
└── host
|
|
39
|
+
└── device_{}
|
|
40
|
+
└── mindstudio_profiler_log
|
|
41
|
+
└── mindstudio_profiler_output
|
|
42
|
+
"""
|
|
43
|
+
|
|
44
|
+
_ASCEND_PROFILER_OUTPUT = "ASCEND_PROFILER_OUTPUT"
|
|
45
|
+
_FRAMEWORK = "FRAMEWORK"
|
|
46
|
+
_MINISTUDIO_PROFILER_HOST = "host"
|
|
47
|
+
_MINISTUDIO_PROFILER_DEVICE = "device_{}"
|
|
48
|
+
_MINISTUDIO_PROFILER_LOG = "mindstudio_profiler_log"
|
|
49
|
+
_MINISTUDIO_PROFILER_OUTPUT = "mindstudio_profiler_output"
|
|
50
|
+
_MINISTUDIO_ANALYZE_OUTPUT = "analyze"
|
|
51
|
+
|
|
52
|
+
def __init__(self, rank_id: int, device_id: int):
|
|
53
|
+
if not isinstance(rank_id, int) or not isinstance(device_id, int):
|
|
54
|
+
raise ValueError("rank_id and device_id must be integers")
|
|
55
|
+
|
|
56
|
+
self._rank_id = rank_id
|
|
57
|
+
self._device_id = device_id
|
|
58
|
+
self._output_path: Optional[str] = None
|
|
59
|
+
self._ascend_ms_dir: Optional[str] = None
|
|
60
|
+
self._ascend_profiler_output_path: Optional[str] = None
|
|
61
|
+
self._framework_path: Optional[str] = None
|
|
62
|
+
|
|
63
|
+
# PROF_{} and its subdirectories
|
|
64
|
+
self._msprof_profile_path: Optional[str] = None
|
|
65
|
+
self._msprof_profile_host_path: Optional[str] = None
|
|
66
|
+
self._msprof_profile_device_path: Optional[str] = None
|
|
67
|
+
self._msprof_profile_log_path: Optional[str] = None
|
|
68
|
+
self._msprof_profile_output_path: Optional[str] = None
|
|
69
|
+
self._msprof_analyze_output_path: Optional[str] = None
|
|
70
|
+
|
|
71
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
72
|
+
"""
|
|
73
|
+
Convert the profiler parameters to a dictionary.
|
|
74
|
+
"""
|
|
75
|
+
return {
|
|
76
|
+
"output_path": self._output_path,
|
|
77
|
+
"ascend_ms_dir": self._ascend_ms_dir,
|
|
78
|
+
"ascend_profiler_output_path": self._ascend_profiler_output_path,
|
|
79
|
+
"framework_path": self._framework_path,
|
|
80
|
+
"msprof_profile_path": self._msprof_profile_path,
|
|
81
|
+
"msprof_profile_host_path": self._msprof_profile_host_path,
|
|
82
|
+
"msprof_profile_device_path": self._msprof_profile_device_path,
|
|
83
|
+
"msprof_profile_log_path": self._msprof_profile_log_path,
|
|
84
|
+
"msprof_profile_output_path": self._msprof_profile_output_path,
|
|
85
|
+
"msprof_analyze_output_path": self._msprof_analyze_output_path,
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
@property
|
|
89
|
+
def output_path(self) -> str:
|
|
90
|
+
"""
|
|
91
|
+
Get the output path, which is the parent directory of all profiler output paths.
|
|
92
|
+
Set by Profiler output_path parameter.
|
|
93
|
+
|
|
94
|
+
Returns:
|
|
95
|
+
str: The output path.
|
|
96
|
+
|
|
97
|
+
Raises:
|
|
98
|
+
ValueError: If output_path has not been set.
|
|
99
|
+
"""
|
|
100
|
+
if self._output_path is None:
|
|
101
|
+
raise ValueError("output_path has not been set")
|
|
102
|
+
return self._output_path
|
|
103
|
+
|
|
104
|
+
@property
|
|
105
|
+
def ascend_ms_dir(self) -> str:
|
|
106
|
+
"""
|
|
107
|
+
Get the Ascend MS directory, which is each rank's output path.
|
|
108
|
+
|
|
109
|
+
Returns:
|
|
110
|
+
str: The Ascend MS directory, eg. output_path/xxxx_ascend_ms
|
|
111
|
+
|
|
112
|
+
Raises:
|
|
113
|
+
ValueError: If ascend_ms_dir has not been set.
|
|
114
|
+
"""
|
|
115
|
+
if self._ascend_ms_dir is None:
|
|
116
|
+
raise ValueError("ascend_ms_dir has not been set")
|
|
117
|
+
return self._ascend_ms_dir
|
|
118
|
+
|
|
119
|
+
@property
|
|
120
|
+
def ascend_profiler_output_path(self) -> str:
|
|
121
|
+
"""
|
|
122
|
+
Get the MindSpore Profiler official deliverables output path.
|
|
123
|
+
|
|
124
|
+
Returns:
|
|
125
|
+
str: The MindSpore Profiler official deliverables output path.
|
|
126
|
+
eg. ascend_ms_dir/ASCEND_PROFILER_OUTPUT
|
|
127
|
+
|
|
128
|
+
Raises:
|
|
129
|
+
ValueError: If ascend_profiler_output_path has not been set.
|
|
130
|
+
"""
|
|
131
|
+
if self._ascend_profiler_output_path is None:
|
|
132
|
+
raise ValueError("ascend_profiler_output_path has not been set")
|
|
133
|
+
return self._ascend_profiler_output_path
|
|
134
|
+
|
|
135
|
+
@property
|
|
136
|
+
def framework_path(self) -> str:
|
|
137
|
+
"""
|
|
138
|
+
Get the framework path, which is the intermediate directory of framework profiling data.
|
|
139
|
+
|
|
140
|
+
Returns:
|
|
141
|
+
str: The framework path. eg. ascend_ms_dir/FRAMEWORK
|
|
142
|
+
|
|
143
|
+
Raises:
|
|
144
|
+
ValueError: If framework_path has not been set.
|
|
145
|
+
"""
|
|
146
|
+
if self._framework_path is None:
|
|
147
|
+
raise ValueError("framework_path has not been set")
|
|
148
|
+
return self._framework_path
|
|
149
|
+
|
|
150
|
+
@property
|
|
151
|
+
def msprof_profile_path(self) -> str:
|
|
152
|
+
"""
|
|
153
|
+
Get the PROF_XXX path, which is the directory of msprof profiling data.
|
|
154
|
+
|
|
155
|
+
Returns:
|
|
156
|
+
str: The MSProf profile path. eg. ascend_ms_dir/PROF_XXX
|
|
157
|
+
|
|
158
|
+
Raises:
|
|
159
|
+
ValueError: If msprof_profile_path has not been set.
|
|
160
|
+
"""
|
|
161
|
+
if self._msprof_profile_path is None:
|
|
162
|
+
raise ValueError("msprof_profile_path has not been set")
|
|
163
|
+
return self._msprof_profile_path
|
|
164
|
+
|
|
165
|
+
@property
|
|
166
|
+
def msprof_profile_host_path(self) -> str:
|
|
167
|
+
"""
|
|
168
|
+
Get the msprof host path.
|
|
169
|
+
|
|
170
|
+
Returns:
|
|
171
|
+
str: The msprof host path. eg. ascend_ms_dir/PROF_XXX/host
|
|
172
|
+
|
|
173
|
+
Raises:
|
|
174
|
+
ValueError: If msprof_profile_host_path has not been set.
|
|
175
|
+
"""
|
|
176
|
+
if self._msprof_profile_host_path is None:
|
|
177
|
+
raise ValueError("msprof_profile_host_path has not been set")
|
|
178
|
+
return self._msprof_profile_host_path
|
|
179
|
+
|
|
180
|
+
@property
|
|
181
|
+
def msprof_profile_device_path(self) -> str:
|
|
182
|
+
"""
|
|
183
|
+
Get the msprof device path.
|
|
184
|
+
|
|
185
|
+
Returns:
|
|
186
|
+
str: The msprof device path. eg. ascend_ms_dir/PROF_XXX/device_X
|
|
187
|
+
|
|
188
|
+
Raises:
|
|
189
|
+
ValueError: If msprof_profile_device_path has not been set.
|
|
190
|
+
"""
|
|
191
|
+
if self._msprof_profile_device_path is None:
|
|
192
|
+
raise ValueError("msprof_profile_device_path has not been set")
|
|
193
|
+
return self._msprof_profile_device_path
|
|
194
|
+
|
|
195
|
+
@property
|
|
196
|
+
def msprof_profile_log_path(self) -> str:
|
|
197
|
+
"""
|
|
198
|
+
Get the msprof log path.
|
|
199
|
+
|
|
200
|
+
Returns:
|
|
201
|
+
str: The msprof log path. eg. ascend_ms_dir/PROF_XXX/mindstudio_profiler_log
|
|
202
|
+
|
|
203
|
+
Raises:
|
|
204
|
+
ValueError: If msprof_profile_log_path has not been set.
|
|
205
|
+
"""
|
|
206
|
+
if self._msprof_profile_log_path is None:
|
|
207
|
+
raise ValueError("msprof_profile_log_path has not been set")
|
|
208
|
+
return self._msprof_profile_log_path
|
|
209
|
+
|
|
210
|
+
@property
|
|
211
|
+
def msprof_profile_output_path(self) -> str:
|
|
212
|
+
"""
|
|
213
|
+
Get the msprof official deliverables output path.
|
|
214
|
+
|
|
215
|
+
Returns:
|
|
216
|
+
str: The msprof official deliverables output path.
|
|
217
|
+
eg. ascend_ms_dir/PROF_XXX/mindstudio_profiler_output
|
|
218
|
+
|
|
219
|
+
Raises:
|
|
220
|
+
ValueError: If msprof_profile_output_path has not been set.
|
|
221
|
+
"""
|
|
222
|
+
if self._msprof_profile_output_path is None:
|
|
223
|
+
raise ValueError("msprof_profile_output_path has not been set")
|
|
224
|
+
return self._msprof_profile_output_path
|
|
225
|
+
|
|
226
|
+
@property
|
|
227
|
+
def msprof_analyze_output_path(self) -> str:
|
|
228
|
+
"""
|
|
229
|
+
Get the msprof analyze output path.
|
|
230
|
+
|
|
231
|
+
Returns:
|
|
232
|
+
str: The msprof analyze output path.
|
|
233
|
+
eg. ascend_ms_dir/PROF_XXX/analyze
|
|
234
|
+
|
|
235
|
+
Raises:
|
|
236
|
+
ValueError: If msprof_analyze_output_path has not been set.
|
|
237
|
+
"""
|
|
238
|
+
if self._msprof_analyze_output_path is None:
|
|
239
|
+
raise ValueError("msprof_analyze_output_path has not been set")
|
|
240
|
+
return self._msprof_analyze_output_path
|
|
241
|
+
|
|
242
|
+
@output_path.setter
|
|
243
|
+
def output_path(self, value: str):
|
|
244
|
+
"""Set the output path."""
|
|
245
|
+
real_path = PathManager.get_real_path(value)
|
|
246
|
+
PathManager.check_input_directory_path(real_path)
|
|
247
|
+
self._output_path = real_path
|
|
248
|
+
|
|
249
|
+
@ascend_ms_dir.setter
|
|
250
|
+
def ascend_ms_dir(self, value: str):
|
|
251
|
+
"""Set the xxx_ascend_ms directory."""
|
|
252
|
+
if self._output_path is None:
|
|
253
|
+
raise ValueError("output_path has not been set")
|
|
254
|
+
|
|
255
|
+
self._ascend_ms_dir = os.path.join(self._output_path, value)
|
|
256
|
+
self._ascend_profiler_output_path = os.path.join(
|
|
257
|
+
self._ascend_ms_dir, ProfilerOutputPath._ASCEND_PROFILER_OUTPUT
|
|
258
|
+
)
|
|
259
|
+
self._framework_path = os.path.join(
|
|
260
|
+
self._ascend_ms_dir, ProfilerOutputPath._FRAMEWORK
|
|
261
|
+
)
|
|
262
|
+
|
|
263
|
+
@msprof_profile_path.setter
|
|
264
|
+
def msprof_profile_path(self, value: str):
|
|
265
|
+
"""Set the PROF_XXX path."""
|
|
266
|
+
if self._ascend_ms_dir is None:
|
|
267
|
+
raise ValueError("ascend_ms_dir has not been set")
|
|
268
|
+
self._msprof_profile_path = value
|
|
269
|
+
self._msprof_profile_host_path = os.path.join(
|
|
270
|
+
self._msprof_profile_path, ProfilerOutputPath._MINISTUDIO_PROFILER_HOST
|
|
271
|
+
)
|
|
272
|
+
self._msprof_profile_device_path = os.path.join(
|
|
273
|
+
self._msprof_profile_path,
|
|
274
|
+
ProfilerOutputPath._MINISTUDIO_PROFILER_DEVICE.format(self._device_id)
|
|
275
|
+
)
|
|
276
|
+
self._msprof_profile_log_path = os.path.join(
|
|
277
|
+
self._msprof_profile_path, ProfilerOutputPath._MINISTUDIO_PROFILER_LOG
|
|
278
|
+
)
|
|
279
|
+
self._msprof_profile_output_path = os.path.join(
|
|
280
|
+
self._msprof_profile_path, ProfilerOutputPath._MINISTUDIO_PROFILER_OUTPUT
|
|
281
|
+
)
|
|
282
|
+
self._msprof_analyze_output_path = os.path.join(
|
|
283
|
+
self._msprof_profile_path, ProfilerOutputPath._MINISTUDIO_ANALYZE_OUTPUT
|
|
284
|
+
)
|