mindspore 2.4.10__cp39-cp39-win_amd64.whl → 2.6.0__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 +47 -198
- mindspore/_extends/parse/resources.py +1 -5
- mindspore/_extends/parse/standard_method.py +229 -99
- mindspore/_extends/pijit/__init__.py +2 -2
- mindspore/_extends/pijit/pijit_func_white_list.py +17 -12
- mindspore/_extends/pijit/tensor_func_list.py +27 -0
- mindspore/_extends/utils.py +1 -1
- mindspore/amp.py +11 -5
- mindspore/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 +480 -372
- mindspore/common/auto_dynamic_shape.py +41 -44
- mindspore/common/dtype.py +39 -36
- mindspore/common/dump.py +9 -6
- mindspore/common/file_system.py +9 -1
- mindspore/common/generator.py +5 -0
- mindspore/common/hook_handle.py +6 -2
- mindspore/common/initializer.py +13 -10
- mindspore/common/jit_begin_end.py +94 -0
- mindspore/common/jit_config.py +6 -1
- mindspore/common/jit_context.py +76 -0
- mindspore/common/jit_trace.py +378 -0
- mindspore/common/lazy_inline.py +9 -3
- mindspore/common/mindir_util.py +10 -2
- mindspore/common/mutable.py +5 -4
- mindspore/common/parameter.py +135 -52
- mindspore/common/seed.py +2 -2
- mindspore/common/sparse_tensor.py +23 -17
- mindspore/common/tensor.py +975 -1981
- mindspore/communication/__init__.py +7 -5
- mindspore/communication/_comm_helper.py +52 -2
- mindspore/communication/comm_func.py +240 -181
- mindspore/communication/management.py +95 -26
- mindspore/context.py +324 -573
- mindspore/dataset/__init__.py +65 -37
- mindspore/dataset/audio/__init__.py +2 -8
- mindspore/dataset/audio/transforms.py +3 -17
- mindspore/dataset/callback/ds_callback.py +2 -1
- mindspore/dataset/core/config.py +87 -6
- mindspore/dataset/engine/cache_admin.py +3 -3
- mindspore/dataset/engine/cache_client.py +6 -5
- mindspore/dataset/engine/datasets.py +292 -267
- mindspore/dataset/engine/datasets_audio.py +22 -8
- mindspore/dataset/engine/datasets_standard_format.py +46 -27
- mindspore/dataset/engine/datasets_text.py +78 -48
- mindspore/dataset/engine/datasets_user_defined.py +183 -117
- mindspore/dataset/engine/datasets_vision.py +120 -44
- mindspore/dataset/engine/iterators.py +283 -63
- mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
- mindspore/dataset/engine/obs/util.py +8 -0
- mindspore/dataset/engine/queue.py +40 -0
- mindspore/dataset/engine/samplers.py +289 -43
- mindspore/dataset/engine/serializer_deserializer.py +3 -2
- mindspore/dataset/engine/validators.py +53 -11
- mindspore/dataset/text/__init__.py +7 -6
- mindspore/dataset/text/transforms.py +6 -5
- mindspore/dataset/text/utils.py +3 -3
- mindspore/dataset/transforms/__init__.py +0 -9
- mindspore/dataset/transforms/py_transforms_util.py +17 -0
- mindspore/dataset/transforms/transforms.py +31 -14
- mindspore/dataset/utils/browse_dataset.py +1 -1
- mindspore/dataset/vision/__init__.py +2 -9
- mindspore/dataset/vision/transforms.py +202 -158
- mindspore/dataset/vision/utils.py +7 -5
- mindspore/dataset/vision/validators.py +1 -2
- mindspore/device_context/__init__.py +21 -0
- mindspore/device_context/ascend/__init__.py +25 -0
- mindspore/device_context/ascend/device.py +72 -0
- mindspore/device_context/ascend/op_debug.py +153 -0
- mindspore/device_context/ascend/op_precision.py +193 -0
- mindspore/device_context/ascend/op_tuning.py +123 -0
- mindspore/{ops_generate/gen_constants.py → device_context/cpu/__init__.py} +6 -17
- mindspore/device_context/cpu/device.py +62 -0
- mindspore/device_context/cpu/op_tuning.py +43 -0
- mindspore/device_context/gpu/__init__.py +21 -0
- mindspore/device_context/gpu/device.py +70 -0
- mindspore/device_context/gpu/op_precision.py +67 -0
- mindspore/device_context/gpu/op_tuning.py +175 -0
- mindspore/device_manager.py +170 -0
- mindspore/dnnl.dll +0 -0
- mindspore/experimental/es/embedding_service.py +35 -27
- mindspore/experimental/llm_boost/__init__.py +1 -0
- mindspore/experimental/llm_boost/ascend_native/__init__.py +22 -0
- mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +209 -0
- mindspore/experimental/llm_boost/ascend_native/llm_boost.py +52 -0
- mindspore/experimental/llm_boost/atb/boost_base.py +2 -3
- mindspore/experimental/llm_boost/atb/llama_boost.py +6 -1
- mindspore/experimental/llm_boost/register.py +1 -0
- mindspore/experimental/map_parameter.py +4 -4
- mindspore/experimental/optim/adadelta.py +6 -6
- mindspore/experimental/optim/adagrad.py +4 -4
- mindspore/experimental/optim/adam.py +7 -0
- mindspore/experimental/optim/adamax.py +4 -4
- mindspore/experimental/optim/adamw.py +4 -0
- mindspore/experimental/optim/asgd.py +1 -1
- mindspore/experimental/optim/lr_scheduler.py +73 -46
- mindspore/experimental/optim/radam.py +34 -31
- mindspore/experimental/optim/rprop.py +1 -1
- mindspore/experimental/optim/sgd.py +1 -1
- mindspore/hal/contiguous_tensors_handle.py +6 -10
- mindspore/hal/device.py +55 -53
- mindspore/hal/event.py +52 -52
- mindspore/hal/memory.py +179 -120
- mindspore/hal/stream.py +150 -109
- mindspore/include/api/context.h +0 -1
- mindspore/include/dataset/constants.h +7 -4
- mindspore/include/dataset/execute.h +2 -2
- mindspore/jpeg62.dll +0 -0
- mindspore/log.py +50 -0
- mindspore/mindrecord/__init__.py +21 -8
- mindspore/mindrecord/config.py +17 -316
- mindspore/mindrecord/filereader.py +1 -9
- mindspore/mindrecord/filewriter.py +5 -15
- mindspore/mindrecord/mindpage.py +1 -9
- mindspore/mindspore_backend_common.dll +0 -0
- mindspore/mindspore_backend_manager.dll +0 -0
- mindspore/mindspore_common.dll +0 -0
- mindspore/mindspore_core.dll +0 -0
- mindspore/mindspore_dump.dll +0 -0
- mindspore/mindspore_frontend.dll +0 -0
- mindspore/mindspore_glog.dll +0 -0
- mindspore/mindspore_memory_pool.dll +0 -0
- mindspore/mindspore_ms_backend.dll +0 -0
- mindspore/mindspore_ops.dll +0 -0
- mindspore/{mindspore_backend.dll → mindspore_ops_host.dll} +0 -0
- mindspore/mindspore_ops_kernel_common.dll +0 -0
- mindspore/mindspore_profiler.dll +0 -0
- mindspore/mindspore_pyboost.dll +0 -0
- mindspore/mindspore_pynative.dll +0 -0
- mindspore/mindspore_res_manager.dll +0 -0
- mindspore/mindspore_runtime_pipeline.dll +0 -0
- mindspore/mint/__init__.py +798 -761
- mindspore/mint/distributed/__init__.py +70 -4
- mindspore/mint/distributed/distributed.py +2679 -44
- mindspore/mint/linalg/__init__.py +8 -0
- mindspore/mint/nn/__init__.py +743 -22
- mindspore/mint/nn/functional.py +716 -23
- mindspore/mint/nn/layer/__init__.py +21 -4
- mindspore/mint/nn/layer/_functions.py +334 -0
- mindspore/mint/nn/layer/activation.py +276 -1
- mindspore/mint/nn/layer/basic.py +123 -0
- mindspore/mint/nn/layer/conv.py +933 -0
- mindspore/mint/nn/layer/normalization.py +223 -28
- mindspore/mint/nn/layer/padding.py +797 -0
- mindspore/mint/nn/layer/pooling.py +235 -0
- mindspore/mint/optim/__init__.py +3 -1
- mindspore/mint/optim/adam.py +223 -0
- mindspore/mint/optim/adamw.py +26 -19
- mindspore/mint/optim/sgd.py +171 -0
- mindspore/mint/special/__init__.py +2 -1
- mindspore/multiprocessing/__init__.py +5 -0
- mindspore/nn/__init__.py +4 -1
- mindspore/nn/cell.py +1373 -192
- mindspore/nn/dynamic_lr.py +2 -1
- mindspore/nn/layer/activation.py +29 -27
- mindspore/nn/layer/basic.py +51 -35
- mindspore/nn/layer/channel_shuffle.py +3 -3
- mindspore/nn/layer/container.py +1 -1
- mindspore/nn/layer/conv.py +53 -42
- mindspore/nn/layer/embedding.py +12 -11
- mindspore/nn/layer/normalization.py +56 -49
- mindspore/nn/layer/padding.py +4 -3
- mindspore/nn/layer/pooling.py +120 -42
- mindspore/nn/layer/rnn_cells.py +1 -1
- mindspore/nn/layer/rnns.py +2 -1
- mindspore/nn/layer/timedistributed.py +5 -5
- mindspore/nn/layer/transformer.py +59 -36
- mindspore/nn/learning_rate_schedule.py +8 -4
- mindspore/nn/loss/loss.py +58 -55
- mindspore/nn/optim/ada_grad.py +7 -5
- mindspore/nn/optim/adadelta.py +11 -9
- mindspore/nn/optim/adafactor.py +1 -1
- mindspore/nn/optim/adam.py +19 -15
- mindspore/nn/optim/adamax.py +8 -7
- mindspore/nn/optim/adasum.py +5 -5
- mindspore/nn/optim/asgd.py +3 -1
- mindspore/nn/optim/ftrl.py +11 -9
- mindspore/nn/optim/lamb.py +1 -1
- mindspore/nn/optim/lars.py +1 -4
- mindspore/nn/optim/lazyadam.py +12 -10
- mindspore/nn/optim/momentum.py +7 -6
- mindspore/nn/optim/optimizer.py +3 -3
- mindspore/nn/optim/proximal_ada_grad.py +12 -10
- mindspore/nn/optim/rmsprop.py +13 -12
- mindspore/nn/optim/rprop.py +11 -9
- mindspore/nn/optim/sgd.py +9 -6
- mindspore/nn/optim/tft_wrapper.py +5 -2
- mindspore/nn/optim/thor.py +2 -1
- mindspore/nn/probability/bijector/bijector.py +17 -11
- mindspore/nn/probability/bijector/gumbel_cdf.py +5 -5
- mindspore/nn/probability/bijector/invert.py +2 -2
- mindspore/nn/probability/bijector/scalar_affine.py +3 -3
- mindspore/nn/probability/bijector/softplus.py +3 -2
- mindspore/nn/probability/distribution/beta.py +3 -3
- mindspore/nn/probability/distribution/categorical.py +1 -1
- mindspore/nn/probability/distribution/cauchy.py +4 -2
- mindspore/nn/probability/distribution/exponential.py +6 -7
- mindspore/nn/probability/distribution/gamma.py +2 -2
- mindspore/nn/probability/distribution/gumbel.py +2 -2
- mindspore/nn/probability/distribution/half_normal.py +5 -3
- mindspore/nn/probability/distribution/logistic.py +5 -3
- mindspore/nn/probability/distribution/poisson.py +1 -1
- mindspore/nn/probability/distribution/uniform.py +5 -3
- mindspore/nn/reinforcement/_tensors_queue.py +1 -1
- mindspore/nn/reinforcement/tensor_array.py +1 -1
- mindspore/nn/utils/init.py +13 -11
- mindspore/nn/wrap/__init__.py +6 -6
- mindspore/nn/wrap/cell_wrapper.py +181 -122
- mindspore/nn/wrap/grad_reducer.py +45 -36
- mindspore/nn/wrap/loss_scale.py +6 -7
- mindspore/numpy/array_creations.py +63 -65
- mindspore/numpy/array_ops.py +149 -144
- mindspore/numpy/logic_ops.py +41 -42
- mindspore/numpy/math_ops.py +361 -359
- mindspore/numpy/utils.py +17 -18
- mindspore/numpy/utils_const.py +5 -6
- mindspore/opencv_core452.dll +0 -0
- mindspore/opencv_imgcodecs452.dll +0 -0
- mindspore/opencv_imgproc452.dll +0 -0
- mindspore/ops/__init__.py +5 -3
- mindspore/ops/_grad_experimental/grad_comm_ops.py +112 -16
- mindspore/ops/_grad_experimental/grad_debug_ops.py +14 -2
- mindspore/ops/_grad_experimental/grad_inner_ops.py +9 -0
- mindspore/ops/_grad_experimental/grad_math_ops.py +2 -1
- mindspore/ops/_grad_experimental/taylor_rule.py +29 -0
- mindspore/ops/_op_impl/cpu/__init__.py +1 -0
- mindspore/ops/_op_impl/cpu/raise_op.py +28 -0
- mindspore/ops/_register_for_op.py +0 -11
- mindspore/{ops_generate → ops/_utils}/arg_dtype_cast.py +123 -4
- mindspore/{ops_generate → ops/_utils}/arg_handler.py +3 -65
- mindspore/ops/_vmap/vmap_array_ops.py +52 -25
- mindspore/ops/_vmap/vmap_base.py +0 -2
- mindspore/ops/_vmap/vmap_grad_nn_ops.py +21 -14
- mindspore/ops/_vmap/vmap_math_ops.py +15 -16
- mindspore/ops/_vmap/vmap_nn_ops.py +29 -42
- mindspore/ops/auto_generate/__init__.py +4 -3
- mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +258 -46
- mindspore/ops/auto_generate/gen_extend_func.py +757 -185
- mindspore/ops/auto_generate/gen_ops_def.py +4197 -2243
- mindspore/ops/auto_generate/gen_ops_prim.py +16976 -6055
- mindspore/ops/auto_generate/pyboost_inner_prim.py +221 -87
- mindspore/ops/composite/__init__.py +2 -1
- mindspore/ops/composite/base.py +20 -25
- mindspore/ops/composite/math_ops.py +6 -16
- mindspore/ops/composite/multitype_ops/__init__.py +5 -2
- mindspore/ops/composite/multitype_ops/_compile_utils.py +228 -30
- mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -2
- mindspore/ops/composite/multitype_ops/add_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/div_impl.py +6 -4
- mindspore/ops/composite/multitype_ops/equal_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/floordiv_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/getitem_impl.py +3 -2
- mindspore/ops/composite/multitype_ops/greater_equal_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/greater_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/in_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/invert_impl.py +50 -0
- mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/less_equal_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/less_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/logic_not_impl.py +3 -2
- mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/mod_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/mul_impl.py +3 -2
- mindspore/ops/composite/multitype_ops/negative_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/not_equal_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/not_in_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/ones_like_impl.py +18 -0
- mindspore/ops/composite/multitype_ops/pow_impl.py +2 -30
- mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/sub_impl.py +2 -1
- mindspore/ops/function/__init__.py +40 -2
- mindspore/ops/function/_add_attr_func.py +58 -0
- mindspore/ops/function/array_func.py +2089 -2403
- mindspore/ops/function/clip_func.py +80 -23
- mindspore/ops/function/debug_func.py +57 -57
- mindspore/ops/function/grad/__init__.py +1 -0
- mindspore/ops/function/grad/grad_func.py +104 -71
- mindspore/ops/function/image_func.py +2 -2
- mindspore/ops/function/linalg_func.py +47 -78
- mindspore/ops/function/math_func.py +4351 -3813
- mindspore/ops/function/nn_func.py +1712 -637
- mindspore/ops/function/other_func.py +159 -1
- mindspore/ops/function/parameter_func.py +18 -84
- mindspore/ops/function/random_func.py +452 -387
- mindspore/ops/function/reshard_func.py +4 -70
- mindspore/ops/function/sparse_func.py +3 -3
- mindspore/ops/function/sparse_unary_func.py +6 -6
- mindspore/ops/function/spectral_func.py +25 -58
- mindspore/ops/function/vmap_func.py +26 -18
- mindspore/ops/functional.py +23 -7
- mindspore/ops/functional_overload.py +1548 -0
- mindspore/ops/op_info_register.py +32 -244
- mindspore/ops/operations/__init__.py +23 -15
- mindspore/ops/operations/_custom_ops_utils.py +235 -0
- mindspore/ops/operations/_embedding_cache_ops.py +4 -4
- mindspore/ops/operations/_grad_ops.py +2 -43
- mindspore/ops/operations/_infer_ops.py +2 -1
- mindspore/ops/operations/_inner_ops.py +43 -84
- mindspore/ops/operations/_ms_kernel.py +4 -10
- mindspore/ops/operations/_rl_inner_ops.py +1 -1
- mindspore/ops/operations/_scalar_ops.py +3 -2
- mindspore/ops/operations/_sequence_ops.py +1 -1
- mindspore/ops/operations/_tensor_array.py +1 -1
- mindspore/ops/operations/array_ops.py +81 -324
- mindspore/ops/operations/comm_ops.py +154 -108
- mindspore/ops/operations/custom_ops.py +298 -87
- mindspore/ops/operations/debug_ops.py +157 -59
- mindspore/ops/operations/inner_ops.py +7 -5
- mindspore/ops/operations/linalg_ops.py +1 -57
- mindspore/ops/operations/manually_defined/_inner.py +1 -1
- mindspore/ops/operations/manually_defined/ops_def.py +928 -180
- mindspore/ops/operations/math_ops.py +32 -234
- mindspore/ops/operations/nn_ops.py +212 -531
- mindspore/ops/operations/other_ops.py +62 -9
- mindspore/ops/operations/random_ops.py +13 -7
- mindspore/ops/operations/reshard_ops.py +1 -1
- mindspore/ops/operations/sparse_ops.py +2 -2
- mindspore/ops/primitive.py +66 -53
- mindspore/ops/tensor_method.py +1895 -0
- mindspore/ops_generate/__init__.py +0 -5
- mindspore/ops_generate/aclnn/__init__.py +0 -0
- mindspore/ops_generate/aclnn/aclnn_kernel_register_auto_cc_generator.py +135 -0
- mindspore/ops_generate/aclnn/gen_aclnn_implement.py +257 -0
- mindspore/ops_generate/api/__init__.py +0 -0
- mindspore/ops_generate/api/add_tensor_docs_generator.py +56 -0
- mindspore/ops_generate/api/cpp_create_prim_instance_helper_generator.py +105 -0
- mindspore/ops_generate/api/functional_map_cpp_generator.py +504 -0
- mindspore/ops_generate/api/functional_overload_py_generator.py +112 -0
- mindspore/ops_generate/api/functions_cc_generator.py +237 -0
- mindspore/ops_generate/api/gen_api.py +103 -0
- mindspore/ops_generate/api/op_api_proto.py +235 -0
- mindspore/ops_generate/api/tensor_func_reg_cpp_generator.py +461 -0
- mindspore/ops_generate/common/__init__.py +0 -0
- mindspore/ops_generate/common/base_generator.py +11 -0
- mindspore/ops_generate/common/gen_constants.py +91 -0
- mindspore/ops_generate/common/gen_utils.py +348 -0
- mindspore/ops_generate/common/op_proto.py +473 -0
- mindspore/ops_generate/common/template.py +523 -0
- mindspore/ops_generate/gen_ops.py +22 -1069
- mindspore/ops_generate/op_def/__init__.py +0 -0
- mindspore/ops_generate/op_def/gen_op_def.py +90 -0
- mindspore/ops_generate/op_def/lite_ops_cpp_generator.py +191 -0
- mindspore/ops_generate/op_def/ops_def_cc_generator.py +296 -0
- mindspore/ops_generate/op_def/ops_def_h_generator.py +74 -0
- mindspore/ops_generate/op_def/ops_name_h_generator.py +83 -0
- mindspore/ops_generate/op_def/ops_primitive_h_generator.py +125 -0
- mindspore/ops_generate/op_def_py/__init__.py +0 -0
- mindspore/ops_generate/op_def_py/gen_op_def_py.py +47 -0
- mindspore/ops_generate/op_def_py/op_def_py_generator.py +132 -0
- mindspore/ops_generate/op_def_py/op_prim_py_generator.py +489 -0
- mindspore/ops_generate/pyboost/__init__.py +0 -0
- mindspore/ops_generate/pyboost/auto_grad_impl_cc_generator.py +139 -0
- mindspore/ops_generate/pyboost/auto_grad_reg_cc_generator.py +93 -0
- mindspore/ops_generate/pyboost/gen_pyboost_func.py +175 -0
- mindspore/ops_generate/pyboost/op_template_parser.py +517 -0
- mindspore/ops_generate/pyboost/pyboost_functions_cpp_generator.py +407 -0
- mindspore/ops_generate/pyboost/pyboost_functions_h_generator.py +100 -0
- mindspore/ops_generate/pyboost/pyboost_functions_py_generator.py +148 -0
- mindspore/ops_generate/pyboost/pyboost_grad_function_cpp_generator.py +155 -0
- mindspore/ops_generate/pyboost/pyboost_inner_prim_generator.py +132 -0
- mindspore/ops_generate/pyboost/pyboost_native_grad_functions_generator.py +272 -0
- mindspore/ops_generate/pyboost/pyboost_op_cpp_code_generator.py +938 -0
- mindspore/ops_generate/pyboost/pyboost_overload_functions_cpp_generator.py +357 -0
- mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +179 -36
- mindspore/ops_generate/resources/__init__.py +0 -0
- mindspore/ops_generate/resources/resource_list.py +30 -0
- mindspore/ops_generate/resources/resource_loader.py +36 -0
- mindspore/ops_generate/resources/resource_manager.py +64 -0
- mindspore/ops_generate/resources/yaml_loader.py +88 -0
- mindspore/ops_generate/tensor_py_cc_generator.py +122 -0
- mindspore/parallel/__init__.py +7 -3
- mindspore/parallel/_auto_parallel_context.py +159 -40
- mindspore/parallel/_cell_wrapper.py +132 -15
- mindspore/parallel/_parallel_serialization.py +107 -5
- mindspore/parallel/_ps_context.py +1 -1
- mindspore/parallel/_recovery_context.py +7 -2
- mindspore/parallel/_tensor.py +142 -18
- mindspore/parallel/_utils.py +199 -23
- mindspore/parallel/algo_parameter_config.py +4 -4
- mindspore/parallel/auto_parallel.py +732 -0
- mindspore/parallel/checkpoint_convert.py +159 -0
- mindspore/parallel/checkpoint_transform.py +700 -35
- mindspore/parallel/cluster/process_entity/_api.py +276 -50
- mindspore/parallel/cluster/process_entity/_utils.py +41 -6
- mindspore/parallel/cluster/run.py +21 -4
- mindspore/parallel/function/__init__.py +24 -0
- mindspore/parallel/function/reshard_func.py +258 -0
- mindspore/parallel/nn/__init__.py +25 -0
- mindspore/parallel/nn/parallel_cell_wrapper.py +263 -0
- mindspore/parallel/nn/parallel_grad_reducer.py +169 -0
- mindspore/parallel/parameter_broadcast.py +25 -14
- mindspore/parallel/shard.py +137 -59
- mindspore/parallel/transform_safetensors.py +364 -305
- mindspore/profiler/__init__.py +22 -5
- mindspore/profiler/analysis/__init__.py +0 -0
- mindspore/profiler/analysis/parser/__init__.py +0 -0
- mindspore/profiler/analysis/parser/ascend_cann_parser.py +170 -0
- mindspore/profiler/analysis/parser/base_parser.py +158 -0
- mindspore/profiler/analysis/parser/framework_cann_relation_parser.py +45 -0
- mindspore/profiler/analysis/parser/ms_framework_parser.py +142 -0
- mindspore/profiler/analysis/parser/ms_minddata_parser.py +145 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/__init__.py +0 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +264 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/base_timeline_assembler.py +40 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +109 -0
- mindspore/profiler/analysis/parser/timeline_creator/__init__.py +0 -0
- mindspore/profiler/analysis/parser/timeline_creator/base_timeline_creator.py +44 -0
- mindspore/profiler/analysis/parser/timeline_creator/cpu_op_timeline_creator.py +90 -0
- mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +76 -0
- mindspore/profiler/analysis/parser/timeline_creator/msprof_timeline_creator.py +103 -0
- mindspore/profiler/analysis/parser/timeline_creator/scope_layer_timeline_creator.py +134 -0
- mindspore/profiler/analysis/parser/timeline_event/__init__.py +0 -0
- mindspore/profiler/analysis/parser/timeline_event/base_event.py +233 -0
- mindspore/profiler/analysis/parser/timeline_event/cpu_op_event.py +47 -0
- mindspore/profiler/analysis/parser/timeline_event/flow_event.py +36 -0
- mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +415 -0
- mindspore/profiler/analysis/parser/timeline_event/msprof_event.py +73 -0
- mindspore/profiler/analysis/parser/timeline_event/scope_layer_event.py +53 -0
- mindspore/profiler/analysis/parser/timeline_event/timeline_event_pool.py +146 -0
- mindspore/profiler/analysis/task_manager.py +131 -0
- mindspore/profiler/analysis/time_converter.py +84 -0
- mindspore/profiler/analysis/viewer/__init__.py +0 -0
- mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +372 -0
- mindspore/profiler/analysis/viewer/ascend_integrate_viewer.py +87 -0
- mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +250 -0
- mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +320 -0
- mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +327 -0
- mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +376 -0
- mindspore/profiler/analysis/viewer/ascend_timeline_viewer.py +58 -0
- mindspore/profiler/analysis/viewer/base_viewer.py +26 -0
- mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +96 -0
- mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +581 -0
- mindspore/profiler/analysis/work_flow.py +73 -0
- mindspore/profiler/common/ascend_msprof_exporter.py +139 -0
- mindspore/profiler/common/command_executor.py +90 -0
- mindspore/profiler/common/constant.py +186 -3
- mindspore/profiler/common/file_manager.py +208 -0
- mindspore/profiler/common/log.py +130 -0
- mindspore/profiler/common/msprof_cmd_tool.py +221 -0
- mindspore/profiler/common/path_manager.py +395 -0
- mindspore/profiler/common/process_bar.py +168 -0
- mindspore/profiler/common/process_pool.py +9 -3
- mindspore/profiler/common/profiler_context.py +500 -0
- mindspore/profiler/common/profiler_info.py +304 -0
- mindspore/profiler/common/profiler_meta_data.py +74 -0
- mindspore/profiler/common/profiler_output_path.py +284 -0
- mindspore/profiler/common/profiler_parameters.py +251 -0
- mindspore/profiler/common/profiler_path_manager.py +179 -0
- mindspore/profiler/common/record_function.py +76 -0
- mindspore/profiler/common/tlv_decoder.py +76 -0
- mindspore/profiler/common/util.py +75 -2
- mindspore/profiler/dynamic_profiler.py +341 -75
- mindspore/profiler/envprofiler.py +163 -0
- mindspore/profiler/experimental_config.py +197 -0
- mindspore/profiler/mstx.py +242 -0
- mindspore/profiler/platform/__init__.py +21 -0
- mindspore/profiler/platform/base_profiler.py +40 -0
- mindspore/profiler/platform/cpu_profiler.py +124 -0
- mindspore/profiler/platform/gpu_profiler.py +74 -0
- mindspore/profiler/platform/npu_profiler.py +335 -0
- mindspore/profiler/profiler.py +1073 -90
- mindspore/profiler/profiler_action_controller.py +187 -0
- mindspore/profiler/profiler_interface.py +118 -0
- mindspore/profiler/schedule.py +243 -0
- mindspore/rewrite/api/node.py +15 -13
- mindspore/rewrite/api/symbol_tree.py +2 -3
- mindspore/run_check/_check_version.py +27 -20
- mindspore/run_check/run_check.py +1 -1
- mindspore/runtime/__init__.py +37 -0
- mindspore/runtime/device.py +27 -0
- mindspore/runtime/event.py +209 -0
- mindspore/runtime/executor.py +177 -0
- mindspore/runtime/memory.py +416 -0
- mindspore/runtime/stream.py +460 -0
- mindspore/runtime/thread_bind_core.py +401 -0
- mindspore/safeguard/rewrite_obfuscation.py +12 -9
- mindspore/swresample-4.dll +0 -0
- mindspore/swscale-6.dll +0 -0
- mindspore/tinyxml2.dll +0 -0
- mindspore/train/__init__.py +8 -8
- mindspore/train/_utils.py +96 -27
- mindspore/train/amp.py +9 -5
- mindspore/train/callback/__init__.py +2 -2
- mindspore/train/callback/_callback.py +2 -16
- mindspore/train/callback/_checkpoint.py +53 -55
- mindspore/train/callback/_cluster_monitor.py +14 -18
- mindspore/train/callback/_early_stop.py +1 -1
- mindspore/train/callback/_flops_collector.py +103 -68
- mindspore/train/callback/_history.py +8 -5
- mindspore/train/callback/_lambda_callback.py +2 -2
- mindspore/train/callback/_landscape.py +0 -3
- mindspore/train/callback/_loss_monitor.py +2 -1
- mindspore/train/callback/_on_request_exit.py +6 -5
- mindspore/train/callback/_reduce_lr_on_plateau.py +11 -6
- mindspore/train/callback/_summary_collector.py +52 -19
- mindspore/train/callback/_time_monitor.py +2 -1
- mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +228 -108
- mindspore/train/data_sink.py +25 -2
- mindspore/train/dataset_helper.py +15 -16
- mindspore/train/loss_scale_manager.py +8 -7
- mindspore/train/metrics/accuracy.py +3 -3
- mindspore/train/metrics/confusion_matrix.py +9 -9
- mindspore/train/metrics/error.py +3 -3
- mindspore/train/metrics/hausdorff_distance.py +4 -4
- mindspore/train/metrics/mean_surface_distance.py +3 -3
- mindspore/train/metrics/metric.py +0 -12
- mindspore/train/metrics/occlusion_sensitivity.py +4 -2
- mindspore/train/metrics/precision.py +11 -10
- mindspore/train/metrics/recall.py +9 -9
- mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
- mindspore/train/mind_ir_pb2.py +174 -46
- mindspore/train/model.py +269 -136
- mindspore/train/serialization.py +622 -978
- mindspore/train/summary/_summary_adapter.py +2 -2
- mindspore/train/summary/summary_record.py +2 -3
- mindspore/train/train_thor/model_thor.py +1 -1
- mindspore/turbojpeg.dll +0 -0
- mindspore/utils/__init__.py +6 -3
- mindspore/utils/dryrun.py +140 -0
- mindspore/utils/hooks.py +81 -0
- mindspore/utils/runtime_execution_order_check.py +552 -0
- mindspore/utils/utils.py +138 -4
- mindspore/version.py +1 -1
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/METADATA +3 -3
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/RECORD +564 -395
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/entry_points.txt +1 -1
- mindspore/_install_custom.py +0 -43
- mindspore/common/_register_for_adapter.py +0 -74
- mindspore/common/_tensor_overload.py +0 -139
- mindspore/mindspore_np_dtype.dll +0 -0
- mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
- mindspore/ops/auto_generate/gen_arg_handler.py +0 -197
- mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
- mindspore/ops_generate/gen_aclnn_implement.py +0 -263
- mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
- mindspore/ops_generate/gen_pyboost_func.py +0 -1052
- mindspore/ops_generate/gen_utils.py +0 -209
- mindspore/ops_generate/op_proto.py +0 -145
- mindspore/ops_generate/template.py +0 -261
- mindspore/profiler/envprofiling.py +0 -254
- mindspore/profiler/profiling.py +0 -1926
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/WHEEL +0 -0
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
# Copyright 2024 Huawei Technologies Co., Ltd
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
# ============================================================================
|
|
15
|
+
|
|
16
|
+
"""Executor manager interfaces."""
|
|
17
|
+
import subprocess
|
|
18
|
+
from dataclasses import dataclass
|
|
19
|
+
from typing import Union
|
|
20
|
+
import re
|
|
21
|
+
from mindspore import log as logger
|
|
22
|
+
from mindspore import context
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def execute_command(cmd_list):
|
|
26
|
+
try:
|
|
27
|
+
with subprocess.Popen(cmd_list, shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE) as p:
|
|
28
|
+
out, _ = p.communicate(timeout=1000)
|
|
29
|
+
res = out.decode()
|
|
30
|
+
return res
|
|
31
|
+
except FileNotFoundError as e:
|
|
32
|
+
raise RuntimeError(f"Failed to execute command, because {e}.")
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def _validate_affinity_cpu_list(affinity_cpu_list):
|
|
36
|
+
"""
|
|
37
|
+
Validate the user-configured affinity_cpu_list.
|
|
38
|
+
|
|
39
|
+
Args:
|
|
40
|
+
affinity_cpu_list (dict): Customized bind-core policy to be validated.
|
|
41
|
+
|
|
42
|
+
Returns:
|
|
43
|
+
None.
|
|
44
|
+
"""
|
|
45
|
+
device_pattern = re.compile(r'^device\d+$')
|
|
46
|
+
range_pattern = re.compile(r'^\d+-\d+$')
|
|
47
|
+
|
|
48
|
+
for key, value in affinity_cpu_list.items():
|
|
49
|
+
if not isinstance(key, str):
|
|
50
|
+
raise ValueError(f"The key of affinity_cpu_list: {key} should be a string.")
|
|
51
|
+
if not device_pattern.match(key):
|
|
52
|
+
raise ValueError(f"The key of affinity_cpu_list: {key} should be in format 'deviceX'.")
|
|
53
|
+
if not isinstance(value, list):
|
|
54
|
+
raise ValueError(f"The value of affinity_cpu_list: {value} should be a list.")
|
|
55
|
+
for item in value:
|
|
56
|
+
if not isinstance(item, str):
|
|
57
|
+
raise ValueError(f"The value of affinity_cpu_list: {item} should be a string.")
|
|
58
|
+
if not range_pattern.match(item):
|
|
59
|
+
raise ValueError(f"The value of affinity_cpu_list: {item} should be in format 'cpuidX-cpuidY'.")
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def _get_cpu_available():
|
|
63
|
+
"""
|
|
64
|
+
Get the CPU resources available on the environment.
|
|
65
|
+
|
|
66
|
+
Returns:
|
|
67
|
+
list: List of available CPUs on the environment.
|
|
68
|
+
"""
|
|
69
|
+
available_cpu_str = execute_command(["cat", "/sys/fs/cgroup/cpuset/cpuset.cpus"]).strip().split(",")
|
|
70
|
+
available_cpus = list()
|
|
71
|
+
for range_str in available_cpu_str:
|
|
72
|
+
endpoints = range_str.split("-")
|
|
73
|
+
if len(endpoints) != 2:
|
|
74
|
+
raise RuntimeError("'cat /sys/fs/cgroup/cpuset/cpuset.cpus' command output error, please check!")
|
|
75
|
+
available_cpus += [cid for cid in range(int(endpoints[0]), int(endpoints[1]) + 1)]
|
|
76
|
+
return available_cpus
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
@dataclass
|
|
80
|
+
class DeviceInfo:
|
|
81
|
+
"""
|
|
82
|
+
A class to represent information about an Ascend device.
|
|
83
|
+
|
|
84
|
+
Attributes:
|
|
85
|
+
_info_line (str): A raw string containing device information.
|
|
86
|
+
npu_id (int): The ID of the NPU.
|
|
87
|
+
chip_id (int): The ID of the chip.
|
|
88
|
+
chip_logic_id (Union[int, str]): The logical ID of the chip, which can be an integer or a string.
|
|
89
|
+
chip_name (str): The name of the chip.
|
|
90
|
+
|
|
91
|
+
Methods:
|
|
92
|
+
__post_init__(): Initializes the attributes based on input.
|
|
93
|
+
"""
|
|
94
|
+
_info_line: str = ""
|
|
95
|
+
npu_id: int = 0
|
|
96
|
+
chip_id: int = 0
|
|
97
|
+
chip_logic_id: Union[int, str] = 0
|
|
98
|
+
chip_name: str = ""
|
|
99
|
+
|
|
100
|
+
def __post_init__(self):
|
|
101
|
+
self.npu_id, self.chip_id, self.chip_logic_id, self.chip_name = \
|
|
102
|
+
self._info_line.strip().split(None, 3)
|
|
103
|
+
self.npu_id = int(self.npu_id)
|
|
104
|
+
self.chip_id = int(self.chip_id)
|
|
105
|
+
if self.chip_logic_id.isnumeric():
|
|
106
|
+
self.chip_logic_id = int(self.chip_logic_id)
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
def _get_device_map_info():
|
|
110
|
+
"""
|
|
111
|
+
Get abbreviated information about all NPUs on the environment.
|
|
112
|
+
|
|
113
|
+
Returns:
|
|
114
|
+
dict: Mapping of NPU logical ID to its details.
|
|
115
|
+
set: Contains all available NPU logical ids on the environment.
|
|
116
|
+
"""
|
|
117
|
+
device_map_info = {}
|
|
118
|
+
available_devices = set()
|
|
119
|
+
device_map = \
|
|
120
|
+
execute_command(["npu-smi", "info", "-m"]).strip().split("\n")[1:]
|
|
121
|
+
for line in device_map:
|
|
122
|
+
device_info = DeviceInfo(line.strip())
|
|
123
|
+
if isinstance(device_info.chip_logic_id, int):
|
|
124
|
+
device_map_info[device_info.chip_logic_id] = device_info
|
|
125
|
+
available_devices.add(device_info.chip_logic_id)
|
|
126
|
+
return device_map_info, available_devices
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
def _get_pcie_info(device_map_info, available_devices, keyword="PCIeBusInfo"):
|
|
130
|
+
"""
|
|
131
|
+
Get the PCIe number of the NPU device.
|
|
132
|
+
|
|
133
|
+
Args:
|
|
134
|
+
device_map_info (dict): A map of NPU logical ID to its details.
|
|
135
|
+
available_devices (set): All available NPU logical ids on the environment.
|
|
136
|
+
|
|
137
|
+
Returns:
|
|
138
|
+
dict: Mapping of NPU logical ID to its PCIe number.
|
|
139
|
+
"""
|
|
140
|
+
device_pcie_map = {}
|
|
141
|
+
for device in available_devices:
|
|
142
|
+
device_info = device_map_info.get(device)
|
|
143
|
+
if not device_info:
|
|
144
|
+
raise RuntimeError("Can not get device info, binding cpu will skip.")
|
|
145
|
+
pcie_info = \
|
|
146
|
+
execute_command(["npu-smi", "info", "-t", "board", "-i", f"{device_info.npu_id}",
|
|
147
|
+
"-c", f"{device_info.chip_id}"]).strip().split("\n")
|
|
148
|
+
for _ in pcie_info:
|
|
149
|
+
line = ''.join(_.split())
|
|
150
|
+
if line.startswith(keyword):
|
|
151
|
+
device_pcie_map[device] = line[len(keyword) + 1:]
|
|
152
|
+
break
|
|
153
|
+
return device_pcie_map
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
def _get_numa_info(device_pcie_map, keyword="NUMAnode"):
|
|
157
|
+
"""
|
|
158
|
+
Get NUNA node affinity for device based on PCIe.
|
|
159
|
+
|
|
160
|
+
Args:
|
|
161
|
+
device_pcie_map (dict): A map of NPU logical ID to its PCIe number.
|
|
162
|
+
|
|
163
|
+
Returns:
|
|
164
|
+
dict: Mapping of device ID to its affinity NUMA nodes.
|
|
165
|
+
dict: Mapping of NUMA node to its affinity device IDs.
|
|
166
|
+
"""
|
|
167
|
+
device_to_numa_map = {}
|
|
168
|
+
numa_to_device_map = {}
|
|
169
|
+
|
|
170
|
+
for device, pcie_no in device_pcie_map.items():
|
|
171
|
+
numa_info = execute_command(["lspci", "-s", f"{pcie_no}", "-vvv"]).strip().split("\n")
|
|
172
|
+
for _ in numa_info:
|
|
173
|
+
line = ''.join(_.split())
|
|
174
|
+
if line.startswith(keyword):
|
|
175
|
+
numa_id = int(line[len(keyword) + 1:])
|
|
176
|
+
device_to_numa_map[device] = numa_id
|
|
177
|
+
|
|
178
|
+
devices = numa_to_device_map.get(numa_id, None)
|
|
179
|
+
if devices is None:
|
|
180
|
+
numa_to_device_map[numa_id] = list()
|
|
181
|
+
numa_to_device_map[numa_id].append(device)
|
|
182
|
+
break
|
|
183
|
+
numa_to_device_map[-1] = list(device_pcie_map.keys())
|
|
184
|
+
return device_to_numa_map, numa_to_device_map
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
def _get_cpu_info(numa_ids, available_cpus, keyword1="NUMAnode", keyword2="CPU(s)"):
|
|
188
|
+
"""
|
|
189
|
+
Get information about the CPUs on the NUMA nodes on the environment.
|
|
190
|
+
|
|
191
|
+
Args:
|
|
192
|
+
numa_ids (list): A list of NUMA nodes need to get related CPU information.
|
|
193
|
+
available_cpus (list): A list of available CPUs on the environment.
|
|
194
|
+
|
|
195
|
+
Returns:
|
|
196
|
+
dict: Mapping of NUMA node to its affinity CPUs.
|
|
197
|
+
"""
|
|
198
|
+
numa_to_cpu_map = dict()
|
|
199
|
+
|
|
200
|
+
cpu_info = execute_command(["lscpu"]).strip().split("\n")
|
|
201
|
+
for _ in cpu_info:
|
|
202
|
+
line = ''.join(_.split())
|
|
203
|
+
if line.startswith(keyword1):
|
|
204
|
+
pattern = re.escape(keyword1) + r'(\d+)' + re.escape(keyword2)
|
|
205
|
+
match = re.search(pattern, line)
|
|
206
|
+
if match:
|
|
207
|
+
numa_id = int(match.group(1))
|
|
208
|
+
split_info = line.split(":")
|
|
209
|
+
cpu_id_ranges = split_info[-1].split(",")
|
|
210
|
+
ranges = list()
|
|
211
|
+
for range_str in cpu_id_ranges:
|
|
212
|
+
endpoints = range_str.split("-")
|
|
213
|
+
if len(endpoints) != 2:
|
|
214
|
+
raise RuntimeError("'lscpu' command output error, please check!")
|
|
215
|
+
ranges += [cid for cid in range(int(endpoints[0]), int(endpoints[1]) + 1) if cid in available_cpus]
|
|
216
|
+
if numa_id not in numa_ids:
|
|
217
|
+
numa_id = int(-1)
|
|
218
|
+
if numa_id not in numa_to_cpu_map:
|
|
219
|
+
numa_to_cpu_map[numa_id] = list()
|
|
220
|
+
numa_to_cpu_map[numa_id].extend(ranges)
|
|
221
|
+
return numa_to_cpu_map
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
def _auto_generate_policy(available_devices, available_cpus, affinity_flag, numa_to_cpu_map, device_to_numa_map):
|
|
225
|
+
"""
|
|
226
|
+
Automatically generate bind-core policy based on CPU affinity.
|
|
227
|
+
|
|
228
|
+
Args:
|
|
229
|
+
available_devices (list): All available NPU logical ids on the environment.
|
|
230
|
+
available_cpus (list): A list of available CPUs on the environment.
|
|
231
|
+
affinity_flag (bool): Whether or not it satisfies generating CPU affinity bind-core policy based on the
|
|
232
|
+
resources on the environment.
|
|
233
|
+
numa_to_cpu_map (dict): A map of NUMA node to its affinity CPUs.
|
|
234
|
+
device_to_numa_map (dict): A map of device ID to its affinity NUMA nodes.
|
|
235
|
+
|
|
236
|
+
Returns:
|
|
237
|
+
dict: Mapping of device to its affinity CPUs.
|
|
238
|
+
"""
|
|
239
|
+
device_to_cpu_map = {}
|
|
240
|
+
for device_id in available_devices:
|
|
241
|
+
device_to_cpu_map[device_id] = list()
|
|
242
|
+
|
|
243
|
+
available_cpu_num = len(available_cpus)
|
|
244
|
+
available_device_num = len(available_devices)
|
|
245
|
+
cpu_num_per_device = available_cpu_num // available_device_num
|
|
246
|
+
if cpu_num_per_device < 7:
|
|
247
|
+
raise RuntimeError(f"Cpu num available for each device is {cpu_num_per_device}, "
|
|
248
|
+
"which is less than the minimum cpu num need. Will not enable bind core feature.")
|
|
249
|
+
|
|
250
|
+
if affinity_flag:
|
|
251
|
+
device_to_cpu_idx = {}
|
|
252
|
+
for numa_id in numa_to_cpu_map:
|
|
253
|
+
device_to_cpu_idx[numa_id] = 0
|
|
254
|
+
for device_id in available_devices:
|
|
255
|
+
numa_id = device_to_numa_map.get(device_id)
|
|
256
|
+
affinity_cpu_num = 0
|
|
257
|
+
# Prioritize the use of affinity cpu resources.
|
|
258
|
+
affinity_cpu_start_idx = device_to_cpu_idx[numa_id]
|
|
259
|
+
if len(numa_to_cpu_map[numa_id][affinity_cpu_start_idx:]) >= cpu_num_per_device:
|
|
260
|
+
affinity_cpu = numa_to_cpu_map[numa_id][
|
|
261
|
+
affinity_cpu_start_idx:(affinity_cpu_start_idx + cpu_num_per_device)]
|
|
262
|
+
else:
|
|
263
|
+
affinity_cpu = numa_to_cpu_map[numa_id][affinity_cpu_start_idx:]
|
|
264
|
+
affinity_cpu_num = len(affinity_cpu)
|
|
265
|
+
device_to_cpu_map[device_id].extend(affinity_cpu)
|
|
266
|
+
device_to_cpu_idx[numa_id] = affinity_cpu_start_idx + affinity_cpu_num
|
|
267
|
+
# If the affinity cpu resources are insufficient then use resources from the non-affinity cpu pool.
|
|
268
|
+
if -1 in device_to_cpu_idx:
|
|
269
|
+
unaffinity_cpu_start_idx = device_to_cpu_idx[-1]
|
|
270
|
+
unaffinity_cpu_num = cpu_num_per_device - affinity_cpu_num
|
|
271
|
+
unaffinity_cpu = numa_to_cpu_map[-1][
|
|
272
|
+
unaffinity_cpu_start_idx:(unaffinity_cpu_start_idx + unaffinity_cpu_num)]
|
|
273
|
+
device_to_cpu_map[device_id].extend(unaffinity_cpu)
|
|
274
|
+
device_to_cpu_idx[-1] = unaffinity_cpu_start_idx + unaffinity_cpu_num
|
|
275
|
+
else:
|
|
276
|
+
device_rank = 0
|
|
277
|
+
for device_id in available_devices:
|
|
278
|
+
cpu_start = device_rank * cpu_num_per_device
|
|
279
|
+
device_to_cpu_map[device_id] = available_cpus[cpu_start:(cpu_start + cpu_num_per_device)]
|
|
280
|
+
device_rank += 1
|
|
281
|
+
return device_to_cpu_map
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
def _customize_generate_policy(affinity_cpu_list, available_cpus):
|
|
285
|
+
"""
|
|
286
|
+
Generate customized bind-core policy based on user-configured inputs.
|
|
287
|
+
|
|
288
|
+
Args:
|
|
289
|
+
affinity_cpu_list (dict): User-configured inputs to generate customized bind-core policy.
|
|
290
|
+
available_cpus (list): A list of available CPUs on the environment.
|
|
291
|
+
|
|
292
|
+
Returns:
|
|
293
|
+
dict: Mapping of device to its affinity CPUs.
|
|
294
|
+
"""
|
|
295
|
+
device_to_cpu_map = {}
|
|
296
|
+
_validate_affinity_cpu_list(affinity_cpu_list)
|
|
297
|
+
for device, cpu_id_ranges in affinity_cpu_list.items():
|
|
298
|
+
ranges = list()
|
|
299
|
+
for range_str in cpu_id_ranges:
|
|
300
|
+
endpoints = range_str.split("-")
|
|
301
|
+
for cid in range(int(endpoints[0]), int(endpoints[1]) + 1):
|
|
302
|
+
if cid not in available_cpus:
|
|
303
|
+
raise RuntimeError(f"CPU id: {cid} set in affinity_cpu_list is not available.")
|
|
304
|
+
ranges.append(cid)
|
|
305
|
+
if len(ranges) < 7:
|
|
306
|
+
raise RuntimeError(f"cpu num available for {device} is less than 7, which is the minimum cpu num need.")
|
|
307
|
+
device_id = int(device.replace("device", ""))
|
|
308
|
+
device_to_cpu_map[device_id] = ranges
|
|
309
|
+
return device_to_cpu_map
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
def _assign_cpu_to_module(device_to_cpu_map):
|
|
313
|
+
"""
|
|
314
|
+
Assign specific CPUs to modules.
|
|
315
|
+
|
|
316
|
+
Args:
|
|
317
|
+
device_to_cpu_map (dict): A map of device to its affinity CPUs.
|
|
318
|
+
|
|
319
|
+
Returns:
|
|
320
|
+
dict: Mapping of device to its affinity CPUs based on module segmentation.
|
|
321
|
+
"""
|
|
322
|
+
module_bind_core_policy = {}
|
|
323
|
+
for device, cpu_list in device_to_cpu_map.items():
|
|
324
|
+
thread_to_cpu_map = {}
|
|
325
|
+
thread_to_cpu_map["main"] = [cpu_list[0]]
|
|
326
|
+
thread_to_cpu_map["runtime"] = cpu_list[1:6]
|
|
327
|
+
thread_to_cpu_map["pynative"] = cpu_list[1:5]
|
|
328
|
+
thread_to_cpu_map["minddata"] = cpu_list[6:]
|
|
329
|
+
module_bind_core_policy[device] = thread_to_cpu_map
|
|
330
|
+
return module_bind_core_policy
|
|
331
|
+
|
|
332
|
+
|
|
333
|
+
def _get_cpu_affinity_policy(affinity_cpu_list=None):
|
|
334
|
+
"""
|
|
335
|
+
The entry to get bind-core policy.
|
|
336
|
+
|
|
337
|
+
Args:
|
|
338
|
+
affinity_cpu_list (dict, optional): User-configured inputs to generate customized bind-core policy.
|
|
339
|
+
Default: ``None``.
|
|
340
|
+
|
|
341
|
+
Returns:
|
|
342
|
+
dict: Mapping of device to its affinity CPUs based on module segmentation.
|
|
343
|
+
bool: Whether the generated bind-core policy is based on cpu affinity.
|
|
344
|
+
"""
|
|
345
|
+
device_target = context.get_context("device_target")
|
|
346
|
+
device_pcie_map = {}
|
|
347
|
+
device_to_numa_map = {}
|
|
348
|
+
numa_to_device_map = {}
|
|
349
|
+
numa_to_cpu_map = {}
|
|
350
|
+
affinity_flag = False
|
|
351
|
+
bind_policy_flag = False
|
|
352
|
+
|
|
353
|
+
# Get the CPU resources in the environment. If this fails, the binding core feature will not be enabled.
|
|
354
|
+
try:
|
|
355
|
+
available_cpus = _get_cpu_available()
|
|
356
|
+
except RuntimeError as e:
|
|
357
|
+
logger.warning(f"Failed to acquire available cpu info, error: {e} Will not enable bind core feature.")
|
|
358
|
+
return {}, False
|
|
359
|
+
# Automatic generation of binding core policy based on resources on the environment.
|
|
360
|
+
if (affinity_cpu_list is None) or (not affinity_cpu_list):
|
|
361
|
+
# If the device target is Ascend, the affinity between the device and NUMA node is taken into account
|
|
362
|
+
# to generate the binding core policy.
|
|
363
|
+
if device_target == "Ascend":
|
|
364
|
+
# Get the hardware resources in the environment. If this fails, will bind core not based on device.
|
|
365
|
+
try:
|
|
366
|
+
device_map_info, available_devices = _get_device_map_info()
|
|
367
|
+
except RuntimeError as e:
|
|
368
|
+
logger.warning(f"Failed to acquire device to numa affinity info, error: {e} "
|
|
369
|
+
"Will not bind core based on affinity. Module bind core policy "
|
|
370
|
+
f"generated: {available_cpus}.")
|
|
371
|
+
return available_cpus, bind_policy_flag
|
|
372
|
+
# Get the affinity resources in the environment. If this fails, will bind core not based on affinity.
|
|
373
|
+
try:
|
|
374
|
+
device_pcie_map = _get_pcie_info(device_map_info, available_devices)
|
|
375
|
+
device_to_numa_map, numa_to_device_map = _get_numa_info(device_pcie_map)
|
|
376
|
+
numa_to_cpu_map = _get_cpu_info(list(numa_to_device_map.keys()), available_cpus)
|
|
377
|
+
except RuntimeError as e:
|
|
378
|
+
logger.warning(f"Failed to acquire device to numa affinity info, error: {e} "
|
|
379
|
+
"Will not bind core based on affinity.")
|
|
380
|
+
affinity_flag = False
|
|
381
|
+
if device_pcie_map and device_to_numa_map and numa_to_device_map and numa_to_cpu_map:
|
|
382
|
+
affinity_flag = True
|
|
383
|
+
# Auto-generation of bind core policy for Ascned.
|
|
384
|
+
try:
|
|
385
|
+
device_to_cpu_map = _auto_generate_policy(available_devices, available_cpus, affinity_flag,
|
|
386
|
+
numa_to_cpu_map, device_to_numa_map)
|
|
387
|
+
except (RuntimeError, ZeroDivisionError) as e:
|
|
388
|
+
logger.warning(f"Failed to auto generate bind core policy, error: {e}. "
|
|
389
|
+
"Will not enable bind core feature.")
|
|
390
|
+
return {}, False
|
|
391
|
+
module_bind_core_policy = _assign_cpu_to_module(device_to_cpu_map)
|
|
392
|
+
bind_policy_flag = True
|
|
393
|
+
else:
|
|
394
|
+
module_bind_core_policy = available_cpus
|
|
395
|
+
# User configured binding core policy.
|
|
396
|
+
else:
|
|
397
|
+
device_to_cpu_map = _customize_generate_policy(affinity_cpu_list, available_cpus)
|
|
398
|
+
module_bind_core_policy = _assign_cpu_to_module(device_to_cpu_map)
|
|
399
|
+
bind_policy_flag = True
|
|
400
|
+
logger.warning(f"Module bind core policy generated: {module_bind_core_policy}.")
|
|
401
|
+
return module_bind_core_policy, bind_policy_flag
|
|
@@ -129,7 +129,7 @@ def obfuscate_ckpt(network, ckpt_files, target_modules=None, obf_config=None, sa
|
|
|
129
129
|
Args:
|
|
130
130
|
network (nn.Cell): The original network that need to be obfuscated.
|
|
131
131
|
ckpt_files (str): The directory path of original ckpt files.
|
|
132
|
-
target_modules (list[str]): The target ops that need to be obfuscated in the network. The first string
|
|
132
|
+
target_modules (list[str], optional): The target ops that need to be obfuscated in the network. The first string
|
|
133
133
|
represents the network path of the target ops in the original network, which should be in form of
|
|
134
134
|
``"A/B/C"``. The second string represents the names of multiple target ops in the same path, which
|
|
135
135
|
should be in form of ``"D|E|F"``. For example, the target_modules of GPT2 can be ``['backbone/blocks
|
|
@@ -137,10 +137,11 @@ def obfuscate_ckpt(network, ckpt_files, target_modules=None, obf_config=None, sa
|
|
|
137
137
|
format of 'obfuscate_layers:all' or 'obfuscate_layers:int', which represents the number of layers
|
|
138
138
|
need to be obfuscated of duplicate layers (such as transformer layers or resnet blocks).
|
|
139
139
|
Default: ``None``.
|
|
140
|
-
obf_config (dict): The configuration of model obfuscation polices. Default: ``None``.
|
|
141
|
-
saved_path (str): The directory path for saving obfuscated ckpt files. Default: ``'./'``.
|
|
142
|
-
obfuscate_scale (Union[float, int]): Obfuscate scale of weights.
|
|
143
|
-
|
|
140
|
+
obf_config (dict, optional): The configuration of model obfuscation polices. Default: ``None``.
|
|
141
|
+
saved_path (str, optional): The directory path for saving obfuscated ckpt files. Default: ``'./'``.
|
|
142
|
+
obfuscate_scale (Union[float, int], optional): Obfuscate scale of weights.
|
|
143
|
+
The generated random obf_ratios will be in
|
|
144
|
+
range of (1 / obfuscate_scale, obfuscate_scale). Default: ``100``.
|
|
144
145
|
|
|
145
146
|
Returns:
|
|
146
147
|
dict[str], obf_metadata, which is the necessary data that needs to be load when running obfuscated network.
|
|
@@ -371,7 +372,8 @@ def load_obf_params_into_net(network, target_modules=None, obf_ratios=None, obf_
|
|
|
371
372
|
|
|
372
373
|
Args:
|
|
373
374
|
network (nn.Cell): The original network that need to be obfuscated.
|
|
374
|
-
target_modules (list[str]): The target ops that need to be obfuscated in the network.
|
|
375
|
+
target_modules (list[str], optional): The target ops that need to be obfuscated in the network.
|
|
376
|
+
The first string
|
|
375
377
|
represents the network path of the target ops in the original network, which should be in form of
|
|
376
378
|
``"A/B/C"``. The second string represents the names of multiple target ops in the same path, which
|
|
377
379
|
should be in form of ``"D|E|F"``. For example, thr target_modules of GPT2 can be ``['backbone
|
|
@@ -379,9 +381,10 @@ def load_obf_params_into_net(network, target_modules=None, obf_ratios=None, obf_
|
|
|
379
381
|
in the format of 'obfuscate_layers:all' or 'obfuscate_layers:int', which represents the number of
|
|
380
382
|
layers need to be obfuscated of duplicate layers (such as transformer layers or resnet blocks).
|
|
381
383
|
Default: ``None``.
|
|
382
|
-
obf_ratios (Tensor): The obf ratios generated when execute :func:`mindspore.obfuscate_ckpt`.
|
|
383
|
-
|
|
384
|
-
|
|
384
|
+
obf_ratios (Tensor, optional): The obf ratios generated when execute :func:`mindspore.obfuscate_ckpt`.
|
|
385
|
+
Default: ``None``.
|
|
386
|
+
obf_config (dict, optional): The configuration of model obfuscation polices. Default: ``None``.
|
|
387
|
+
data_parallel_num (int, optional): The data parallel number of parallel training. Default: ``1``.
|
|
385
388
|
kwargs (dict): Configuration options dictionary.
|
|
386
389
|
|
|
387
390
|
- ignored_func_decorators (list[str]): The name list of function decorators in network's python code.
|
mindspore/swresample-4.dll
CHANGED
|
Binary file
|
mindspore/swscale-6.dll
CHANGED
|
Binary file
|
mindspore/tinyxml2.dll
CHANGED
|
Binary file
|
mindspore/train/__init__.py
CHANGED
|
@@ -25,12 +25,12 @@ from mindspore.train import amp
|
|
|
25
25
|
from mindspore.train.amp import build_train_network
|
|
26
26
|
from mindspore.train.loss_scale_manager import LossScaleManager, FixedLossScaleManager, DynamicLossScaleManager
|
|
27
27
|
from mindspore.train.serialization import save_checkpoint, load_checkpoint, load_param_into_net, export, \
|
|
28
|
-
load, parse_print,
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
load, parse_print, async_ckpt_thread_status, convert_model, export_split_mindir, \
|
|
29
|
+
load_checkpoint_async, check_checkpoint, get_ckpt_path_with_strategy, ckpt_to_safetensors, safetensors_to_ckpt, \
|
|
30
|
+
build_searched_strategy, merge_sliced_parameter, load_distributed_checkpoint, restore_group_info_list
|
|
31
31
|
from mindspore.train.callback import Callback, LossMonitor, TimeMonitor, ModelCheckpoint, SummaryCollector, \
|
|
32
32
|
CheckpointConfig, RunContext, LearningRateScheduler, SummaryLandscape, FlopsUtilizationCollector, \
|
|
33
|
-
History, LambdaCallback, ReduceLROnPlateau, EarlyStopping, OnRequestExit, BackupAndRestore,
|
|
33
|
+
History, LambdaCallback, ReduceLROnPlateau, EarlyStopping, OnRequestExit, BackupAndRestore, TrainFaultTolerance
|
|
34
34
|
from mindspore.train.summary import SummaryRecord
|
|
35
35
|
from mindspore.train.train_thor import ConvertNetUtils, ConvertModelUtils
|
|
36
36
|
from mindspore.train.metrics import *
|
|
@@ -38,10 +38,10 @@ from mindspore.train.data_sink import data_sink
|
|
|
38
38
|
|
|
39
39
|
__all__ = ["Model", "DatasetHelper", "connect_network_with_dataset", "build_train_network", "LossScaleManager",
|
|
40
40
|
"FixedLossScaleManager", "DynamicLossScaleManager", "save_checkpoint", "load_checkpoint", "check_checkpoint",
|
|
41
|
-
"load_param_into_net", "export", "load", "export_split_mindir", "parse_print", "
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
41
|
+
"load_param_into_net", "export", "load", "export_split_mindir", "parse_print", "async_ckpt_thread_status",
|
|
42
|
+
"convert_model", "data_sink", "load_checkpoint_async", "get_ckpt_path_with_strategy", "ckpt_to_safetensors",
|
|
43
|
+
"safetensors_to_ckpt", "build_searched_strategy", "merge_sliced_parameter", "load_distributed_checkpoint",
|
|
44
|
+
"restore_group_info_list"]
|
|
45
45
|
__all__.extend(callback.__all__)
|
|
46
46
|
__all__.extend(summary.__all__)
|
|
47
47
|
__all__.extend(train_thor.__all__)
|