mindspore 2.6.0rc1__cp311-cp311-win_amd64.whl → 2.7.0__cp311-cp311-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mindspore might be problematic. Click here for more details.
- mindspore/.commit_id +1 -1
- mindspore/Microsoft.VisualStudio.Telemetry.dll +0 -0
- mindspore/Newtonsoft.Json.dll +0 -0
- mindspore/__init__.py +2 -2
- mindspore/_c_dataengine.cp311-win_amd64.pyd +0 -0
- mindspore/_c_expression.cp311-win_amd64.pyd +0 -0
- mindspore/_c_mindrecord.cp311-win_amd64.pyd +0 -0
- mindspore/_checkparam.py +42 -11
- mindspore/_extends/builtin_operations.py +3 -3
- mindspore/{_deprecated → _extends/optimize}/__init__.py +9 -3
- mindspore/_extends/optimize/cell_utils.py +96 -0
- mindspore/_extends/parallel_compile/akg_compiler/custom.py +1109 -0
- mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +1 -1
- mindspore/_extends/parse/__init__.py +3 -3
- mindspore/_extends/parse/compile_config.py +44 -22
- mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +1 -2
- mindspore/_extends/parse/parser.py +65 -84
- mindspore/_extends/parse/resources.py +39 -0
- mindspore/_extends/parse/standard_method.py +58 -14
- mindspore/_extends/parse/trope.py +8 -1
- mindspore/_extends/pijit/__init__.py +1 -2
- mindspore/_extends/pijit/pijit_func_white_list.py +2 -5
- mindspore/amp.py +4 -22
- mindspore/atlprov.dll +0 -0
- mindspore/avcodec-59.dll +0 -0
- mindspore/avdevice-59.dll +0 -0
- mindspore/avfilter-8.dll +0 -0
- mindspore/avformat-59.dll +0 -0
- mindspore/avutil-57.dll +0 -0
- mindspore/boost/adasum.py +1 -1
- mindspore/boost/boost_cell_wrapper.py +4 -4
- mindspore/c1.dll +0 -0
- mindspore/c1xx.dll +0 -0
- mindspore/c2.dll +0 -0
- mindspore/common/__init__.py +43 -12
- mindspore/common/_grad_function.py +2 -1
- mindspore/common/_pijit_context.py +28 -7
- mindspore/common/_stub_tensor.py +1 -209
- mindspore/common/_tensor_cpp_method.py +1 -1
- mindspore/common/_tensor_docs.py +178 -53
- mindspore/common/_utils.py +9 -1
- mindspore/common/api.py +377 -203
- mindspore/common/dtype.py +108 -57
- mindspore/common/dump.py +11 -16
- mindspore/common/dynamic_shape/__init__.py +0 -0
- mindspore/common/{auto_dynamic_shape.py → dynamic_shape/auto_dynamic_shape.py} +17 -23
- mindspore/common/dynamic_shape/enable_dynamic.py +197 -0
- mindspore/common/file_system.py +59 -9
- mindspore/common/generator.py +5 -3
- mindspore/common/hook_handle.py +33 -5
- mindspore/common/jit_config.py +1 -1
- mindspore/common/jit_trace.py +84 -105
- mindspore/common/np_dtype.py +3 -3
- mindspore/common/parameter.py +27 -29
- mindspore/common/recompute.py +5 -7
- mindspore/common/sparse_tensor.py +0 -3
- mindspore/common/symbol.py +0 -1
- mindspore/common/tensor.py +117 -131
- mindspore/communication/_comm_helper.py +46 -4
- mindspore/communication/management.py +79 -7
- mindspore/context.py +67 -55
- mindspore/dataset/__init__.py +1 -1
- mindspore/dataset/audio/transforms.py +1 -1
- mindspore/dataset/core/config.py +38 -4
- mindspore/dataset/engine/datasets.py +350 -322
- mindspore/dataset/engine/datasets_user_defined.py +70 -24
- mindspore/dataset/engine/iterators.py +2 -2
- mindspore/dataset/engine/obs/config_loader.py +2 -2
- mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +8 -0
- mindspore/dataset/transforms/c_transforms.py +2 -2
- mindspore/dataset/transforms/py_transforms.py +7 -3
- mindspore/dataset/transforms/transforms.py +10 -6
- mindspore/dataset/vision/__init__.py +1 -1
- mindspore/dataset/vision/py_transforms.py +8 -8
- mindspore/dataset/vision/transforms.py +17 -5
- mindspore/dataset/vision/utils.py +632 -21
- mindspore/dataset/vision/validators.py +1 -0
- mindspore/device_context/ascend/device.py +1 -1
- mindspore/device_context/ascend/op_tuning.py +35 -1
- mindspore/device_context/gpu/__init__.py +2 -2
- mindspore/device_context/gpu/device.py +1 -1
- mindspore/device_context/gpu/op_precision.py +4 -2
- mindspore/device_context/gpu/op_tuning.py +6 -3
- mindspore/device_manager.py +16 -9
- mindspore/dnnl.dll +0 -0
- mindspore/dpcmi.dll +0 -0
- mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +3 -4
- mindspore/experimental/llm_boost/atb/boost_base.py +2 -3
- mindspore/experimental/optim/adadelta.py +13 -20
- mindspore/experimental/optim/adagrad.py +15 -22
- mindspore/experimental/optim/adam.py +17 -24
- mindspore/experimental/optim/adamax.py +14 -22
- mindspore/experimental/optim/adamw.py +28 -34
- mindspore/experimental/optim/asgd.py +15 -25
- mindspore/experimental/optim/lr_scheduler.py +27 -45
- mindspore/experimental/optim/nadam.py +14 -24
- mindspore/experimental/optim/optimizer.py +13 -23
- mindspore/experimental/optim/radam.py +18 -24
- mindspore/experimental/optim/rmsprop.py +14 -25
- mindspore/experimental/optim/rprop.py +15 -26
- mindspore/experimental/optim/sgd.py +9 -19
- mindspore/hal/__init__.py +4 -4
- mindspore/hal/contiguous_tensors_handle.py +2 -2
- mindspore/hal/memory.py +27 -7
- mindspore/include/api/cell.h +65 -5
- mindspore/include/api/cfg.h +24 -7
- mindspore/include/api/context.h +1 -0
- mindspore/include/api/delegate.h +10 -2
- mindspore/include/api/dual_abi_helper.h +100 -19
- mindspore/include/api/graph.h +14 -1
- mindspore/include/api/kernel.h +16 -3
- mindspore/include/api/kernel_api.h +9 -1
- mindspore/include/api/metrics/accuracy.h +9 -0
- mindspore/include/api/model.h +8 -1
- mindspore/include/api/model_group.h +4 -0
- mindspore/include/api/model_parallel_runner.h +2 -0
- mindspore/include/api/status.h +48 -10
- mindspore/include/api/types.h +8 -3
- mindspore/include/c_api/model_c.h +0 -58
- mindspore/include/c_api/tensor_c.h +0 -26
- mindspore/include/dataset/constants.h +9 -0
- mindspore/include/dataset/vision_ascend.h +1 -1
- mindspore/jpeg62.dll +0 -0
- mindspore/mindrecord/tools/cifar10.py +61 -11
- mindspore/mindrecord/tools/cifar10_to_mr.py +5 -0
- 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_cpu_res_manager.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_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 +6 -46
- mindspore/mint/distributed/__init__.py +5 -0
- mindspore/mint/distributed/distributed.py +429 -23
- mindspore/mint/nn/__init__.py +1 -1
- mindspore/mint/nn/functional.py +53 -6
- mindspore/mint/nn/layer/_functions.py +163 -294
- mindspore/mint/nn/layer/activation.py +8 -6
- mindspore/mint/nn/layer/conv.py +140 -104
- mindspore/mint/nn/layer/normalization.py +11 -25
- mindspore/mint/optim/adam.py +19 -18
- mindspore/mint/optim/adamw.py +14 -8
- mindspore/mint/optim/sgd.py +5 -5
- mindspore/msobj140.dll +0 -0
- mindspore/mspdb140.dll +0 -0
- mindspore/mspdbcore.dll +0 -0
- mindspore/mspdbst.dll +0 -0
- mindspore/mspft140.dll +0 -0
- mindspore/msvcdis140.dll +0 -0
- mindspore/msvcp140_1.dll +0 -0
- mindspore/msvcp140_2.dll +0 -0
- mindspore/msvcp140_atomic_wait.dll +0 -0
- mindspore/msvcp140_codecvt_ids.dll +0 -0
- mindspore/nn/cell.py +491 -623
- mindspore/nn/grad/cell_grad.py +11 -12
- mindspore/nn/layer/activation.py +36 -36
- mindspore/nn/layer/basic.py +74 -77
- mindspore/nn/layer/channel_shuffle.py +4 -4
- mindspore/nn/layer/combined.py +4 -2
- mindspore/nn/layer/conv.py +117 -110
- mindspore/nn/layer/dense.py +9 -7
- mindspore/nn/layer/embedding.py +50 -52
- mindspore/nn/layer/image.py +38 -40
- mindspore/nn/layer/math.py +111 -112
- mindspore/nn/layer/normalization.py +56 -44
- mindspore/nn/layer/pooling.py +58 -63
- mindspore/nn/layer/rnn_cells.py +33 -33
- mindspore/nn/layer/rnns.py +56 -56
- mindspore/nn/layer/thor_layer.py +74 -73
- mindspore/nn/layer/transformer.py +11 -1
- mindspore/nn/learning_rate_schedule.py +20 -20
- mindspore/nn/loss/loss.py +79 -81
- mindspore/nn/optim/adam.py +4 -6
- mindspore/nn/optim/adasum.py +2 -2
- mindspore/nn/optim/asgd.py +2 -0
- mindspore/nn/optim/lamb.py +1 -3
- mindspore/nn/optim/optimizer.py +1 -1
- mindspore/nn/optim/tft_wrapper.py +2 -3
- mindspore/nn/optim/thor.py +2 -2
- mindspore/nn/probability/distribution/_utils/utils.py +2 -2
- mindspore/nn/probability/distribution/exponential.py +2 -1
- mindspore/nn/probability/distribution/poisson.py +2 -1
- mindspore/nn/sparse/sparse.py +3 -3
- mindspore/nn/wrap/cell_wrapper.py +73 -42
- mindspore/nn/wrap/grad_reducer.py +37 -52
- mindspore/nn/wrap/loss_scale.py +72 -74
- mindspore/numpy/array_creations.py +7 -7
- mindspore/numpy/fft.py +1 -1
- mindspore/numpy/math_ops.py +5 -5
- mindspore/numpy/utils_const.py +1 -1
- mindspore/opencv_core452.dll +0 -0
- mindspore/opencv_imgcodecs452.dll +0 -0
- mindspore/opencv_imgproc452.dll +0 -0
- mindspore/ops/_grad_experimental/grad_comm_ops.py +51 -13
- mindspore/ops/_grad_experimental/grad_debug_ops.py +14 -0
- mindspore/ops/_grad_experimental/grad_inner_ops.py +0 -9
- mindspore/ops/_op_impl/cpu/__init__.py +1 -0
- mindspore/{experimental/es/__init__.py → ops/_op_impl/cpu/joinedstr_op.py} +12 -6
- mindspore/ops/_vmap/vmap_array_ops.py +31 -13
- mindspore/ops/_vmap/vmap_nn_ops.py +8 -16
- mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +54 -13
- mindspore/ops/auto_generate/gen_extend_func.py +27 -145
- mindspore/ops/auto_generate/gen_ops_def.py +1027 -347
- mindspore/ops/auto_generate/gen_ops_prim.py +2341 -1117
- mindspore/ops/auto_generate/pyboost_inner_prim.py +31 -1
- mindspore/ops/composite/__init__.py +10 -0
- mindspore/ops/composite/base.py +9 -5
- mindspore/ops/composite/multitype_ops/__init__.py +12 -1
- mindspore/ops/composite/multitype_ops/_compile_utils.py +133 -109
- mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -1
- mindspore/ops/composite/multitype_ops/add_impl.py +70 -2
- mindspore/ops/composite/multitype_ops/div_impl.py +49 -0
- mindspore/ops/composite/multitype_ops/floordiv_impl.py +29 -0
- mindspore/ops/composite/multitype_ops/getitem_impl.py +11 -0
- mindspore/ops/composite/multitype_ops/mod_impl.py +5 -3
- mindspore/ops/composite/multitype_ops/mul_impl.py +49 -0
- mindspore/ops/composite/multitype_ops/setitem_impl.py +57 -0
- mindspore/ops/composite/multitype_ops/sub_impl.py +34 -0
- mindspore/ops/composite/multitype_ops/zeros_like_impl.py +14 -0
- mindspore/ops/function/__init__.py +4 -1
- mindspore/ops/function/_add_attr_func.py +11 -6
- mindspore/ops/function/array_func.py +19 -102
- mindspore/ops/function/debug_func.py +8 -5
- mindspore/ops/function/grad/grad_func.py +5 -13
- mindspore/ops/function/math_func.py +77 -572
- mindspore/ops/function/nn_func.py +46 -94
- mindspore/ops/function/other_func.py +4 -1
- mindspore/ops/function/random_func.py +44 -5
- mindspore/ops/function/vmap_func.py +2 -1
- mindspore/ops/functional.py +4 -4
- mindspore/ops/functional_overload.py +594 -18
- mindspore/ops/op_info_register.py +21 -0
- mindspore/ops/operations/__init__.py +16 -11
- mindspore/ops/operations/_custom_ops_utils.py +689 -34
- mindspore/ops/operations/_inner_ops.py +14 -18
- mindspore/ops/operations/_sequence_ops.py +1 -1
- mindspore/ops/operations/array_ops.py +5 -51
- mindspore/ops/operations/comm_ops.py +186 -41
- mindspore/ops/operations/custom_ops.py +303 -177
- mindspore/ops/operations/debug_ops.py +59 -4
- mindspore/ops/operations/image_ops.py +13 -13
- mindspore/ops/operations/manually_defined/ops_def.py +27 -28
- mindspore/ops/operations/math_ops.py +8 -9
- mindspore/ops/operations/nn_ops.py +8 -40
- mindspore/ops/primitive.py +9 -20
- mindspore/ops/tensor_method.py +63 -15
- mindspore/ops_generate/api/cpp_create_prim_instance_helper_generator.py +1 -1
- mindspore/ops_generate/api/functional_map_cpp_generator.py +10 -9
- mindspore/ops_generate/api/functions_cc_generator.py +58 -10
- mindspore/ops_generate/api/tensor_func_reg_cpp_generator.py +1 -1
- mindspore/ops_generate/common/base_generator.py +14 -0
- mindspore/ops_generate/common/gen_constants.py +8 -3
- mindspore/ops_generate/common/gen_utils.py +0 -19
- mindspore/ops_generate/common/op_proto.py +11 -4
- mindspore/ops_generate/common/template.py +88 -11
- mindspore/ops_generate/gen_ops.py +1 -1
- mindspore/ops_generate/op_def/lite_ops_cpp_generator.py +4 -4
- mindspore/ops_generate/op_def/ops_def_cc_generator.py +0 -3
- mindspore/ops_generate/op_def/ops_name_h_generator.py +0 -3
- mindspore/ops_generate/op_def/ops_primitive_h_generator.py +0 -4
- mindspore/ops_generate/op_def_py/op_prim_py_generator.py +5 -2
- mindspore/ops_generate/pyboost/auto_grad_impl_cc_generator.py +49 -8
- mindspore/ops_generate/pyboost/auto_grad_reg_cc_generator.py +2 -2
- mindspore/ops_generate/pyboost/gen_pyboost_func.py +31 -16
- mindspore/ops_generate/pyboost/op_template_parser.py +98 -72
- mindspore/ops_generate/pyboost/pyboost_functions_cpp_generator.py +70 -273
- mindspore/ops_generate/pyboost/pyboost_functions_h_generator.py +14 -6
- mindspore/ops_generate/pyboost/pyboost_functions_impl_cpp_generator.py +316 -0
- mindspore/ops_generate/pyboost/pyboost_functions_py_generator.py +1 -1
- mindspore/ops_generate/pyboost/pyboost_grad_function_cpp_generator.py +5 -3
- mindspore/ops_generate/pyboost/pyboost_inner_prim_generator.py +1 -1
- mindspore/ops_generate/pyboost/pyboost_internal_functions_cpp_generator.py +76 -0
- mindspore/ops_generate/pyboost/pyboost_internal_functions_h_generator.py +76 -0
- mindspore/ops_generate/pyboost/pyboost_internal_kernel_info_adapter_generator.py +125 -0
- mindspore/ops_generate/pyboost/pyboost_native_grad_functions_generator.py +4 -3
- mindspore/ops_generate/pyboost/pyboost_op_cpp_code_generator.py +348 -61
- mindspore/ops_generate/pyboost/pyboost_overload_functions_cpp_generator.py +1 -1
- mindspore/ops_generate/pyboost/pyboost_utils.py +118 -9
- mindspore/ops_generate/tensor_py_cc_generator.py +1 -24
- mindspore/parallel/_auto_parallel_context.py +16 -23
- mindspore/parallel/_cell_wrapper.py +113 -45
- mindspore/parallel/_parallel_serialization.py +4 -3
- mindspore/parallel/_ps_context.py +4 -6
- mindspore/parallel/_tensor.py +167 -12
- mindspore/parallel/_transformer/moe.py +1 -1
- mindspore/parallel/_transformer/transformer.py +17 -12
- mindspore/parallel/_utils.py +5 -11
- mindspore/parallel/auto_parallel.py +35 -14
- mindspore/parallel/checkpoint_convert.py +3 -3
- mindspore/parallel/checkpoint_transform.py +13 -7
- mindspore/parallel/cluster/process_entity/_api.py +88 -49
- mindspore/parallel/cluster/process_entity/_utils.py +95 -7
- mindspore/parallel/cluster/run.py +48 -7
- mindspore/parallel/function/__init__.py +8 -1
- mindspore/parallel/function/reshard_func.py +12 -12
- mindspore/parallel/nn/__init__.py +15 -2
- mindspore/parallel/nn/parallel_cell_wrapper.py +50 -14
- mindspore/parallel/nn/parallel_grad_reducer.py +7 -14
- mindspore/parallel/shard.py +10 -25
- mindspore/parallel/transform_safetensors.py +469 -174
- mindspore/pgodb140.dll +0 -0
- mindspore/pgort140.dll +0 -0
- mindspore/profiler/__init__.py +2 -1
- mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +7 -7
- mindspore/profiler/analysis/parser/timeline_assembly_factory/base_timeline_assembler.py +3 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +12 -6
- mindspore/profiler/analysis/parser/timeline_creator/cpu_op_timeline_creator.py +3 -3
- mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +3 -3
- mindspore/profiler/analysis/parser/timeline_creator/msprof_timeline_creator.py +4 -4
- mindspore/profiler/analysis/parser/timeline_creator/scope_layer_timeline_creator.py +3 -3
- mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +4 -1
- mindspore/profiler/analysis/parser/timeline_event/timeline_event_pool.py +2 -1
- mindspore/profiler/analysis/task_manager.py +1 -1
- mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +5 -1
- mindspore/profiler/analysis/viewer/ascend_integrate_viewer.py +2 -1
- mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +10 -9
- mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +43 -23
- mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +3 -2
- mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +9 -5
- mindspore/profiler/analysis/viewer/ms_operator_details_viewer.py +132 -0
- mindspore/profiler/common/constant.py +16 -0
- mindspore/profiler/common/msprof_cmd_tool.py +2 -2
- mindspore/profiler/common/path_manager.py +9 -0
- mindspore/profiler/common/profiler_context.py +50 -29
- mindspore/profiler/common/profiler_info.py +0 -16
- mindspore/profiler/common/profiler_meta_data.py +1 -0
- mindspore/profiler/common/profiler_op_analyse.py +239 -0
- mindspore/profiler/common/profiler_output_path.py +23 -8
- mindspore/profiler/common/profiler_parameters.py +128 -35
- mindspore/profiler/dynamic_profile/__init__.py +0 -0
- mindspore/profiler/dynamic_profile/dynamic_monitor_proxy.py +39 -0
- mindspore/profiler/dynamic_profile/dynamic_profiler_config_context.py +666 -0
- mindspore/profiler/dynamic_profile/dynamic_profiler_utils.py +62 -0
- mindspore/profiler/dynamic_profiler.py +374 -338
- mindspore/profiler/envprofiler.py +42 -12
- mindspore/profiler/experimental_config.py +112 -7
- mindspore/profiler/mstx.py +33 -12
- mindspore/profiler/platform/__init__.py +2 -3
- mindspore/profiler/platform/cpu_profiler.py +10 -4
- mindspore/profiler/platform/npu_profiler.py +30 -20
- mindspore/profiler/profiler.py +218 -154
- mindspore/profiler/profiler_action_controller.py +65 -77
- mindspore/profiler/profiler_interface.py +2 -2
- mindspore/profiler/schedule.py +10 -4
- mindspore/rewrite/common/config.py +1 -0
- mindspore/rewrite/common/namer.py +1 -0
- mindspore/rewrite/common/namespace.py +1 -0
- mindspore/rewrite/node/node.py +31 -11
- mindspore/rewrite/parsers/assign_parser.py +1 -1
- mindspore/rewrite/symbol_tree/symbol_tree.py +2 -2
- mindspore/run_check/_check_version.py +7 -10
- mindspore/runtime/__init__.py +8 -6
- mindspore/runtime/event.py +10 -4
- mindspore/runtime/executor.py +87 -45
- mindspore/runtime/memory.py +31 -32
- mindspore/runtime/thread_bind_core.py +299 -165
- mindspore/safeguard/rewrite_obfuscation.py +12 -13
- mindspore/swresample-4.dll +0 -0
- mindspore/swscale-6.dll +0 -0
- mindspore/tbbmalloc.dll +0 -0
- mindspore/tinyxml2.dll +0 -0
- mindspore/train/_utils.py +17 -7
- mindspore/train/amp.py +43 -23
- mindspore/train/callback/__init__.py +5 -5
- mindspore/train/callback/_callback.py +2 -1
- mindspore/train/callback/_checkpoint.py +4 -14
- mindspore/train/callback/_flops_collector.py +11 -7
- mindspore/train/callback/_landscape.py +0 -1
- mindspore/train/callback/_train_fault_tolerance.py +98 -21
- mindspore/train/data_sink.py +15 -6
- mindspore/train/dataset_helper.py +14 -5
- mindspore/train/model.py +133 -69
- mindspore/train/serialization.py +168 -126
- mindspore/train/summary/summary_record.py +13 -2
- mindspore/train/train_thor/model_thor.py +2 -2
- mindspore/turbojpeg.dll +0 -0
- mindspore/utils/__init__.py +3 -2
- mindspore/utils/dryrun.py +0 -6
- mindspore/utils/runtime_execution_order_check.py +163 -77
- mindspore/utils/sdc_detect.py +68 -0
- mindspore/utils/utils.py +14 -17
- mindspore/vcmeta.dll +0 -0
- mindspore/vcruntime140.dll +0 -0
- mindspore/vcruntime140_1.dll +0 -0
- mindspore/version.py +1 -1
- {mindspore-2.6.0rc1.dist-info → mindspore-2.7.0.dist-info}/METADATA +5 -4
- {mindspore-2.6.0rc1.dist-info → mindspore-2.7.0.dist-info}/RECORD +403 -442
- mindspore/_deprecated/jit.py +0 -198
- mindspore/_extends/remote/kernel_build_server_ascend.py +0 -75
- mindspore/communication/_hccl_management.py +0 -297
- mindspore/experimental/es/embedding_service.py +0 -891
- mindspore/experimental/es/embedding_service_layer.py +0 -581
- mindspore/profiler/common/validator/__init__.py +0 -14
- mindspore/profiler/common/validator/validate_path.py +0 -84
- mindspore/profiler/parser/__init__.py +0 -14
- mindspore/profiler/parser/aicpu_data_parser.py +0 -272
- mindspore/profiler/parser/ascend_analysis/__init__.py +0 -14
- mindspore/profiler/parser/ascend_analysis/constant.py +0 -71
- mindspore/profiler/parser/ascend_analysis/file_manager.py +0 -180
- mindspore/profiler/parser/ascend_analysis/function_event.py +0 -185
- mindspore/profiler/parser/ascend_analysis/fwk_cann_parser.py +0 -136
- mindspore/profiler/parser/ascend_analysis/fwk_file_parser.py +0 -131
- mindspore/profiler/parser/ascend_analysis/msprof_timeline_parser.py +0 -104
- mindspore/profiler/parser/ascend_analysis/path_manager.py +0 -313
- mindspore/profiler/parser/ascend_analysis/profiler_info_parser.py +0 -123
- mindspore/profiler/parser/ascend_analysis/tlv_decoder.py +0 -86
- mindspore/profiler/parser/ascend_analysis/trace_event_manager.py +0 -75
- mindspore/profiler/parser/ascend_cluster_generator.py +0 -116
- mindspore/profiler/parser/ascend_communicate_generator.py +0 -314
- mindspore/profiler/parser/ascend_flops_generator.py +0 -116
- mindspore/profiler/parser/ascend_fpbp_generator.py +0 -82
- mindspore/profiler/parser/ascend_hccl_generator.py +0 -271
- mindspore/profiler/parser/ascend_integrate_generator.py +0 -42
- mindspore/profiler/parser/ascend_memory_generator.py +0 -185
- mindspore/profiler/parser/ascend_msprof_exporter.py +0 -282
- mindspore/profiler/parser/ascend_msprof_generator.py +0 -187
- mindspore/profiler/parser/ascend_op_generator.py +0 -334
- mindspore/profiler/parser/ascend_steptrace_generator.py +0 -94
- mindspore/profiler/parser/ascend_timeline_generator.py +0 -545
- mindspore/profiler/parser/base_timeline_generator.py +0 -483
- mindspore/profiler/parser/container.py +0 -229
- mindspore/profiler/parser/cpu_gpu_timeline_generator.py +0 -697
- mindspore/profiler/parser/flops_parser.py +0 -531
- mindspore/profiler/parser/framework_enum.py +0 -111
- mindspore/profiler/parser/framework_parser.py +0 -464
- mindspore/profiler/parser/framework_struct.py +0 -61
- mindspore/profiler/parser/gpu_analysis/__init__.py +0 -14
- mindspore/profiler/parser/gpu_analysis/function_event.py +0 -44
- mindspore/profiler/parser/gpu_analysis/fwk_file_parser.py +0 -89
- mindspore/profiler/parser/gpu_analysis/profiler_info_parser.py +0 -72
- mindspore/profiler/parser/hccl_parser.py +0 -573
- mindspore/profiler/parser/hwts_log_parser.py +0 -122
- mindspore/profiler/parser/integrator.py +0 -526
- mindspore/profiler/parser/memory_usage_parser.py +0 -277
- mindspore/profiler/parser/minddata_analyzer.py +0 -800
- mindspore/profiler/parser/minddata_parser.py +0 -186
- mindspore/profiler/parser/minddata_pipeline_parser.py +0 -299
- mindspore/profiler/parser/op_intermediate_parser.py +0 -149
- mindspore/profiler/parser/optime_parser.py +0 -250
- mindspore/profiler/parser/profiler_info.py +0 -213
- mindspore/profiler/parser/step_trace_parser.py +0 -666
- mindspore/utils/hooks.py +0 -81
- /mindspore/common/{_auto_dynamic.py → dynamic_shape/_auto_dynamic.py} +0 -0
- {mindspore-2.6.0rc1.dist-info → mindspore-2.7.0.dist-info}/WHEEL +0 -0
- {mindspore-2.6.0rc1.dist-info → mindspore-2.7.0.dist-info}/entry_points.txt +0 -0
- {mindspore-2.6.0rc1.dist-info → mindspore-2.7.0.dist-info}/top_level.txt +0 -0
mindspore/common/file_system.py
CHANGED
|
@@ -14,10 +14,14 @@
|
|
|
14
14
|
# ============================================================================
|
|
15
15
|
"""File system registration management"""
|
|
16
16
|
from mindspore import log as logger
|
|
17
|
+
from mindspore import _checkparam as Validator
|
|
18
|
+
|
|
19
|
+
mindio_server_info = {"memfs.data_block_pool_capacity_in_gb": "100"}
|
|
17
20
|
|
|
18
21
|
|
|
19
22
|
class FileSystem:
|
|
20
23
|
"""File operation interface manager"""
|
|
24
|
+
|
|
21
25
|
def __init__(self):
|
|
22
26
|
self.create = open
|
|
23
27
|
self.create_args = ("ab",)
|
|
@@ -35,20 +39,33 @@ def _register_basic_file_system(fs: FileSystem):
|
|
|
35
39
|
return True
|
|
36
40
|
|
|
37
41
|
|
|
38
|
-
def
|
|
39
|
-
"""
|
|
42
|
+
def _init_mindio():
|
|
43
|
+
"""Initialize MindIO and return the module if successful"""
|
|
40
44
|
try:
|
|
41
|
-
import mindio
|
|
45
|
+
import mindio_acp as mindio
|
|
46
|
+
ret = mindio.initialize(server_info=mindio_server_info)
|
|
47
|
+
if ret == 0:
|
|
48
|
+
return mindio
|
|
49
|
+
logger.warning(f"Failed to initialize mindio_acp: ret = {ret}")
|
|
42
50
|
except ImportError:
|
|
43
|
-
|
|
51
|
+
pass
|
|
44
52
|
try:
|
|
53
|
+
import mindio
|
|
45
54
|
ret = mindio.initialize()
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
55
|
+
if ret == 0:
|
|
56
|
+
return mindio
|
|
57
|
+
logger.warning(f"Failed to initialize mindio: ret = {ret}")
|
|
58
|
+
except ImportError:
|
|
59
|
+
pass
|
|
60
|
+
return None
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def _register_mindio_file_system(fs: FileSystem):
|
|
64
|
+
"""register mindio file system"""
|
|
65
|
+
mindio = _init_mindio()
|
|
66
|
+
if mindio is None:
|
|
51
67
|
return False
|
|
68
|
+
|
|
52
69
|
fs.create = mindio.create_file
|
|
53
70
|
fs.create_args = ()
|
|
54
71
|
fs.open = mindio.open_file
|
|
@@ -56,3 +73,36 @@ def _register_mindio_file_system(fs: FileSystem):
|
|
|
56
73
|
fs.backend = "mindio"
|
|
57
74
|
logger.info("The weights are stored using MindIO as the backend.")
|
|
58
75
|
return True
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
def set_mindio_server_info(data_block_pool_capacity_in_gb=100):
|
|
79
|
+
"""
|
|
80
|
+
Configure MindIO server settings.
|
|
81
|
+
|
|
82
|
+
Args:
|
|
83
|
+
data_block_pool_capacity_in_gb (int): Memory pool capacity for data blocks in gigabytes.
|
|
84
|
+
"""
|
|
85
|
+
global mindio_server_info
|
|
86
|
+
Validator.check_positive_int(data_block_pool_capacity_in_gb, "data_block_pool_capacity_in_gb")
|
|
87
|
+
mindio_server_info["memfs.data_block_pool_capacity_in_gb"] = str(data_block_pool_capacity_in_gb)
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def mindio_preload(ckpt_file_name):
|
|
91
|
+
"""
|
|
92
|
+
Preload data into memory using MindIO for faster access.
|
|
93
|
+
|
|
94
|
+
Args:
|
|
95
|
+
ckpt_file_name (str): Checkpoint file name.
|
|
96
|
+
|
|
97
|
+
Returns:
|
|
98
|
+
bool: True if preloading is successful, False otherwise.
|
|
99
|
+
"""
|
|
100
|
+
Validator.check_value_type('ckpt_file_name', ckpt_file_name, str, "mindio_preload")
|
|
101
|
+
mindio = _init_mindio()
|
|
102
|
+
if mindio is None:
|
|
103
|
+
return False
|
|
104
|
+
if not hasattr(mindio, 'preload'):
|
|
105
|
+
logger.warning("MindIO module does not have preload method")
|
|
106
|
+
return False
|
|
107
|
+
mindio.preload(ckpt_file_name)
|
|
108
|
+
return True
|
mindspore/common/generator.py
CHANGED
|
@@ -56,6 +56,9 @@ class Generator:
|
|
|
56
56
|
A generator that manages the state of random numbers and provides seed and offset for random functions.
|
|
57
57
|
When the seed and offset are fixed, the random function generates the same random sequence.
|
|
58
58
|
|
|
59
|
+
.. note::
|
|
60
|
+
Graph mode does not support the use of multiple generators at the same time for now.
|
|
61
|
+
|
|
59
62
|
Supported Platforms:
|
|
60
63
|
``Ascend`` ``GPU`` ``CPU``
|
|
61
64
|
|
|
@@ -74,10 +77,9 @@ class Generator:
|
|
|
74
77
|
"""
|
|
75
78
|
|
|
76
79
|
def __init__(self):
|
|
77
|
-
self._seed = Parameter(Tensor(0, mstype.int64),
|
|
78
|
-
name="seed", requires_grad=False)
|
|
80
|
+
self._seed = Parameter(Tensor(0, mstype.int64), requires_grad=False)
|
|
79
81
|
self._offset = Parameter(
|
|
80
|
-
Tensor(0, mstype.int64),
|
|
82
|
+
Tensor(0, mstype.int64), requires_grad=False)
|
|
81
83
|
|
|
82
84
|
self._generator = GeneratorOp().set_device("CPU")
|
|
83
85
|
self._generator.add_prim_attr("manual_seed", False)
|
mindspore/common/hook_handle.py
CHANGED
|
@@ -16,6 +16,21 @@
|
|
|
16
16
|
from __future__ import absolute_import
|
|
17
17
|
import weakref
|
|
18
18
|
from mindspore._c_expression import TensorPy as Tensor_
|
|
19
|
+
from mindspore._check_jit_forbidden_api import jit_forbidden_register
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
# Global variable to mark the `Parameter` hook and `Cell` hook version
|
|
23
|
+
_HOOK_VERSION = 0
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def _update_hook_version():
|
|
27
|
+
global _HOOK_VERSION
|
|
28
|
+
_HOOK_VERSION += 1
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def _hook_version():
|
|
32
|
+
global _HOOK_VERSION
|
|
33
|
+
return _HOOK_VERSION
|
|
19
34
|
|
|
20
35
|
|
|
21
36
|
class _TensorHookHandle:
|
|
@@ -31,8 +46,9 @@ class _TensorHookHandle:
|
|
|
31
46
|
|
|
32
47
|
def __init__(self, tensor):
|
|
33
48
|
self.id = None
|
|
34
|
-
self.
|
|
49
|
+
self.tensor_weakref = weakref.ref(tensor)
|
|
35
50
|
|
|
51
|
+
@jit_forbidden_register
|
|
36
52
|
def remove(self):
|
|
37
53
|
"""
|
|
38
54
|
Remove the tensor hook function, which corresponds to this '_TensorHookHandle' object.
|
|
@@ -67,9 +83,9 @@ class _TensorHookHandle:
|
|
|
67
83
|
"""
|
|
68
84
|
if self.id is not None:
|
|
69
85
|
Tensor_.remove_hook(self.id)
|
|
70
|
-
tensor = self.
|
|
86
|
+
tensor = self.tensor_weakref()
|
|
71
87
|
if tensor is not None:
|
|
72
|
-
tensor._remove_hook()
|
|
88
|
+
tensor._remove_hook() # pylint:disable=protected-access
|
|
73
89
|
|
|
74
90
|
|
|
75
91
|
class HookHandle:
|
|
@@ -81,20 +97,25 @@ class HookHandle:
|
|
|
81
97
|
It is only supported in pynative mode and works when registering or removing hook function for Cell object.
|
|
82
98
|
|
|
83
99
|
Args:
|
|
84
|
-
hook_dict (Dict): The hook object with hook function registered on. Default value: None.
|
|
100
|
+
hook_dict (Dict, optional): The hook object with hook function registered on. Default value: ``None`` .
|
|
101
|
+
extra_dict (Dict, optional): The extra dict. Default value: ``None`` .
|
|
85
102
|
|
|
86
103
|
Supported Platforms:
|
|
87
104
|
``Ascend`` ``GPU`` ``CPU``
|
|
88
105
|
"""
|
|
89
106
|
unique_id = 0
|
|
90
107
|
|
|
91
|
-
def __init__(self, hook_dict=None):
|
|
108
|
+
def __init__(self, hook_dict=None, *, extra_dict=None):
|
|
92
109
|
self.hook_dict_ref = None
|
|
110
|
+
self.extra_dict_ref = None
|
|
93
111
|
if hook_dict is not None:
|
|
94
112
|
self.hook_dict_ref = weakref.ref(hook_dict)
|
|
95
113
|
self.handle_id = HookHandle.unique_id
|
|
96
114
|
HookHandle.unique_id += 1
|
|
115
|
+
if extra_dict is not None:
|
|
116
|
+
self.extra_dict_ref = weakref.ref(extra_dict)
|
|
97
117
|
|
|
118
|
+
@jit_forbidden_register
|
|
98
119
|
def remove(self):
|
|
99
120
|
"""
|
|
100
121
|
Remove the cell hook function, which corresponds to this 'HookHandle' object.
|
|
@@ -141,7 +162,14 @@ class HookHandle:
|
|
|
141
162
|
(Tensor(shape=[1], dtype=Float32, value= [ 2.00000000e+00]), Tensor(shape=[1], dtype=Float32,
|
|
142
163
|
value= [ 2.00000000e+00]))
|
|
143
164
|
"""
|
|
165
|
+
_update_hook_version() # pylint:disable=protected-access
|
|
166
|
+
|
|
144
167
|
if self.hook_dict_ref is not None:
|
|
145
168
|
hook_dict = self.hook_dict_ref()
|
|
146
169
|
if hook_dict is not None and self.handle_id in hook_dict:
|
|
147
170
|
del hook_dict[self.handle_id]
|
|
171
|
+
|
|
172
|
+
if self.extra_dict_ref is not None:
|
|
173
|
+
extra_dict = self.extra_dict_ref()
|
|
174
|
+
if extra_dict is not None and self.handle_id in extra_dict:
|
|
175
|
+
del extra_dict[self.handle_id]
|
mindspore/common/jit_config.py
CHANGED
|
@@ -97,7 +97,7 @@ class JitConfig:
|
|
|
97
97
|
self.jit_config_dict["debug_level"] = debug_level
|
|
98
98
|
self.jit_config_dict["infer_boost"] = infer_boost
|
|
99
99
|
if "backend" not in self.jit_config_dict:
|
|
100
|
-
if jit_level
|
|
100
|
+
if jit_level in ["O0", "O1"]:
|
|
101
101
|
self.jit_config_dict["backend"] = "ms_backend"
|
|
102
102
|
elif jit_level == "O2":
|
|
103
103
|
self.jit_config_dict["backend"] = "GE"
|
mindspore/common/jit_trace.py
CHANGED
|
@@ -17,16 +17,15 @@
|
|
|
17
17
|
|
|
18
18
|
import inspect
|
|
19
19
|
import re
|
|
20
|
+
import types
|
|
20
21
|
from functools import wraps
|
|
21
22
|
import mindspore as ms
|
|
22
23
|
from mindspore import log as logger
|
|
23
24
|
from mindspore import context
|
|
24
25
|
from mindspore.common.jit_context import JitContext, set_jit_context, jit_context
|
|
25
26
|
from mindspore.common.tensor import Tensor as PythonTensor
|
|
26
|
-
from mindspore._checkparam import is_stub_tensor
|
|
27
27
|
from mindspore._c_expression import TraceRecorder as tr
|
|
28
28
|
from mindspore._c_expression import JitExecutor_
|
|
29
|
-
from mindspore._c_expression import TensorNode
|
|
30
29
|
from mindspore._c_expression import TensorPy as Tensor, CSRTensor, COOTensor
|
|
31
30
|
from mindspore._c_expression import typing
|
|
32
31
|
|
|
@@ -35,7 +34,7 @@ class TraceJitContext(JitContext):
|
|
|
35
34
|
"""JIT Context for trace JIT."""
|
|
36
35
|
|
|
37
36
|
def __init__(self):
|
|
38
|
-
|
|
37
|
+
super().__init__()
|
|
39
38
|
self._is_nested = False
|
|
40
39
|
|
|
41
40
|
def set_is_nested(self, status):
|
|
@@ -44,29 +43,34 @@ class TraceJitContext(JitContext):
|
|
|
44
43
|
def is_nested(self):
|
|
45
44
|
return self._is_nested
|
|
46
45
|
|
|
46
|
+
def args_preprocess(self, prim_name, prim_res, *args):
|
|
47
|
+
args = tuple(_convert_arg_for_operators(arg, prim_name)
|
|
48
|
+
for arg in args)
|
|
49
|
+
file_names, linenos = _get_caller_lines()
|
|
50
|
+
return prim_res, file_names, linenos, args
|
|
51
|
+
|
|
47
52
|
def run_op(self, prim, prim_res, *args):
|
|
48
53
|
"""Capture op"""
|
|
49
54
|
logger.debug(f'prim: {prim}, args: {args}, prim_res: {prim_res}')
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
prim_res = _sync_stub_tensor(prim_res)
|
|
53
|
-
args = tuple(_sync_stub_tensor(arg) for arg in args)
|
|
54
|
-
args = tuple(_convert_arg_for_operators(arg, prim.name) for arg in args)
|
|
55
|
-
file_names, linenos = _get_caller_lines()
|
|
56
|
-
tr.get_instance().new_node(prim, prim_res, file_names, linenos, False, *args)
|
|
55
|
+
prim_res, file_names, linenos, args = self.args_preprocess(prim.name, prim_res, *args)
|
|
56
|
+
tr.get_instance().new_node(prim, (prim_res, file_names, linenos, False), *args)
|
|
57
57
|
return prim_res
|
|
58
58
|
|
|
59
|
+
def prepare_op(self, prim_name, prim_res, *args):
|
|
60
|
+
"""Prepare op"""
|
|
61
|
+
logger.debug(f'prim: {prim_name}, args: {args}, prim_res: {prim_res}')
|
|
62
|
+
return self.args_preprocess(prim_name, prim_res, *args)
|
|
63
|
+
|
|
59
64
|
def run_graph(self, phase, prim_res, *args):
|
|
60
65
|
"""Capture func_graph generated from ast"""
|
|
61
66
|
logger.debug(f'phase: {phase}, args: {args}, prim_res: {prim_res}')
|
|
62
|
-
if isinstance(prim_res, TensorNode):
|
|
63
|
-
prim_res = prim_res.get_value()
|
|
64
|
-
prim_res = _sync_stub_tensor(prim_res)
|
|
65
|
-
args = tuple(_sync_stub_tensor(arg) for arg in args)
|
|
66
67
|
file_names, linenos = _get_caller_lines()
|
|
67
|
-
tr.get_instance().new_fg_node((
|
|
68
|
+
tr.get_instance().new_fg_node((prim_res, file_names, linenos, phase, self._is_nested), *args)
|
|
68
69
|
return prim_res
|
|
69
70
|
|
|
71
|
+
def default_output(self):
|
|
72
|
+
return PythonTensor(0)
|
|
73
|
+
|
|
70
74
|
|
|
71
75
|
_compile_only = False
|
|
72
76
|
_trace_jit_context = TraceJitContext()
|
|
@@ -80,20 +84,6 @@ def _set_compile_only(compile_only=True):
|
|
|
80
84
|
_compile_only = compile_only
|
|
81
85
|
|
|
82
86
|
|
|
83
|
-
def _sync_stub_tensor(stub):
|
|
84
|
-
"""Synchronize stub tensor"""
|
|
85
|
-
if is_stub_tensor(stub):
|
|
86
|
-
real_tensor = stub.stub_sync()
|
|
87
|
-
logger.debug(f'Convert stub tensor, stub: [{type(stub)}] {id(stub)}/{stub}, '
|
|
88
|
-
f'tensor: [{type(real_tensor)}] {id(real_tensor)}/{real_tensor}')
|
|
89
|
-
return real_tensor
|
|
90
|
-
if isinstance(stub, tuple):
|
|
91
|
-
return tuple(_sync_stub_tensor(item) for item in stub)
|
|
92
|
-
if isinstance(stub, list):
|
|
93
|
-
return list(_sync_stub_tensor(item) for item in stub)
|
|
94
|
-
return stub
|
|
95
|
-
|
|
96
|
-
|
|
97
87
|
def convert_tensorpy(args):
|
|
98
88
|
new_args = []
|
|
99
89
|
for arg in args:
|
|
@@ -129,84 +119,73 @@ def nested_run(obj, cell, *args):
|
|
|
129
119
|
if res is not tuple:
|
|
130
120
|
res = (res,)
|
|
131
121
|
file_names, linenos = _get_caller_lines()
|
|
132
|
-
res = _sync_stub_tensor(res)
|
|
133
122
|
set_jit_context(None)
|
|
134
123
|
return file_names, linenos, res
|
|
135
124
|
|
|
136
125
|
|
|
137
|
-
def _jit_trace(
|
|
138
|
-
"""
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
logger.debug(f'fn: {fn}, fn_res: {fn_res}, line: {line_str}')
|
|
201
|
-
# Use fn's output to build func graph's output.
|
|
202
|
-
output = _jit_trace_end(fn_res)
|
|
203
|
-
else:
|
|
204
|
-
output = _jit_trace_end(None) # Run with compilation.
|
|
205
|
-
logger.debug(f'output: {output}')
|
|
206
|
-
return output
|
|
207
|
-
|
|
208
|
-
jit_trace_wrap.__trace_func__ = True
|
|
209
|
-
return jit_trace_wrap
|
|
126
|
+
def _jit_trace():
|
|
127
|
+
"""Return the wrapped function for trace mode jit."""
|
|
128
|
+
def wrap_func(fn):
|
|
129
|
+
if hasattr(fn, "construct"):
|
|
130
|
+
if isinstance(fn, ms.nn.Cell):
|
|
131
|
+
# Bound the cell object to get the self arg.
|
|
132
|
+
return types.MethodType(_jit_trace()(fn.construct.__func__), fn)
|
|
133
|
+
if isinstance(fn, type) and issubclass(fn, ms.nn.Cell):
|
|
134
|
+
fn.construct = _jit_trace()(fn.construct)
|
|
135
|
+
return fn
|
|
136
|
+
|
|
137
|
+
if isinstance(fn, types.MethodType):
|
|
138
|
+
return types.MethodType(_jit_trace()(fn.__func__), fn.__self__)
|
|
139
|
+
|
|
140
|
+
if not isinstance(fn, types.FunctionType):
|
|
141
|
+
logger.warning(f"The fn should be function, method or cell instance/class, but got {fn}")
|
|
142
|
+
return fn
|
|
143
|
+
|
|
144
|
+
if hasattr(fn, "__wrapped_by_jit__"):
|
|
145
|
+
logger.warning(f"The fn {fn} should be wrapped by jit only once.")
|
|
146
|
+
|
|
147
|
+
@wraps(fn)
|
|
148
|
+
def jit_trace_wrap(*args, **kwargs):
|
|
149
|
+
# If a trace graph is already built, keep going without building a new trace graph.
|
|
150
|
+
if jit_context():
|
|
151
|
+
return fn(*args, **kwargs)
|
|
152
|
+
# Start trace process.
|
|
153
|
+
if kwargs:
|
|
154
|
+
bound_arguments = inspect.signature(fn).bind(*args, **kwargs)
|
|
155
|
+
bound_arguments.apply_defaults()
|
|
156
|
+
args = bound_arguments.args
|
|
157
|
+
kwargs = bound_arguments.kwargs
|
|
158
|
+
generate_name = fn.__module__
|
|
159
|
+
if args:
|
|
160
|
+
jit_args = args[1:] if hasattr(args[0], fn.__name__) else args
|
|
161
|
+
obj = args[0]
|
|
162
|
+
if hasattr(obj, fn.__name__): # Add class name for Cell.
|
|
163
|
+
generate_name = generate_name + "." + obj.__class__.__name__
|
|
164
|
+
else:
|
|
165
|
+
jit_args = args
|
|
166
|
+
generate_name = generate_name + "." + fn.__name__ + "#" + str(id(fn))
|
|
167
|
+
# Add create time for Cell.
|
|
168
|
+
if args and hasattr(obj, fn.__name__):
|
|
169
|
+
generate_name = generate_name + '#created_' + str(args[0].create_time)
|
|
170
|
+
line_str = fn.__code__.co_filename + ":" + str(fn.__code__.co_firstlineno)
|
|
171
|
+
generate_name = generate_name + '#[' + line_str + ']'
|
|
172
|
+
|
|
173
|
+
new_compile = _jit_trace_begin(generate_name, *jit_args)
|
|
174
|
+
if new_compile:
|
|
175
|
+
fn_res = fn(*args, **kwargs)
|
|
176
|
+
logger.debug(f'fn: {fn}, fn_res: {fn_res}, line: {line_str}')
|
|
177
|
+
# Use fn's output to build func graph's output.
|
|
178
|
+
output = _jit_trace_end(fn_res)
|
|
179
|
+
else:
|
|
180
|
+
output = _jit_trace_end(None) # Run with compilation.
|
|
181
|
+
logger.debug(f'output: {output}')
|
|
182
|
+
return output
|
|
183
|
+
|
|
184
|
+
jit_trace_wrap.__trace_func__ = True
|
|
185
|
+
setattr(jit_trace_wrap, "__wrapped_by_jit__", True)
|
|
186
|
+
return jit_trace_wrap
|
|
187
|
+
|
|
188
|
+
return wrap_func
|
|
210
189
|
|
|
211
190
|
|
|
212
191
|
def _get_caller_lines():
|
|
@@ -240,6 +219,8 @@ def _get_args_for_run(args):
|
|
|
240
219
|
new_args.append(arg)
|
|
241
220
|
elif isinstance(arg, dict) and hasattr(arg, "__ms_mutable__"):
|
|
242
221
|
new_args.append(tuple(arg.values()))
|
|
222
|
+
elif isinstance(arg, (tuple, list)) and hasattr(arg, "__ms_mutable__"):
|
|
223
|
+
new_args.append(arg)
|
|
243
224
|
return tuple(new_args)
|
|
244
225
|
|
|
245
226
|
|
|
@@ -284,7 +265,6 @@ def _jit_trace_begin(fn_name, *args):
|
|
|
284
265
|
logger.debug(f'_jit_trace_begin, args: {args}')
|
|
285
266
|
_trace_jit_context.set_is_nested(False)
|
|
286
267
|
set_jit_context(_trace_jit_context)
|
|
287
|
-
args = tuple(_sync_stub_tensor(arg) for arg in args)
|
|
288
268
|
for arg in args:
|
|
289
269
|
logger.debug(f'_jit_trace_begin, arg: {arg}, {type(arg)}')
|
|
290
270
|
|
|
@@ -355,7 +335,6 @@ def _jit_trace_end(*output_args):
|
|
|
355
335
|
logger.debug(f'jit trace result: {output}')
|
|
356
336
|
else:
|
|
357
337
|
logger.debug(f'output_args: {output_args}')
|
|
358
|
-
output_args = tuple(_sync_stub_tensor(arg) for arg in output_args)
|
|
359
338
|
file_names, linenos = _get_caller_lines()
|
|
360
339
|
tr.get_instance().end_graph(file_names, linenos, *output_args)
|
|
361
340
|
if _compile_only:
|
mindspore/common/np_dtype.py
CHANGED
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
# ============================================================================
|
|
17
17
|
"""Numpy data type for MindSpore."""
|
|
18
18
|
|
|
19
|
-
from mindspore._c_expression.np_dtypes import
|
|
20
|
-
if
|
|
19
|
+
from mindspore._c_expression.np_dtypes import np_dtype_valid
|
|
20
|
+
if np_dtype_valid(True):
|
|
21
21
|
from mindspore._c_expression.np_dtypes import bfloat16 # pylint: disable=unused-import
|
|
22
22
|
|
|
23
23
|
__all__ = []
|
|
24
|
-
if
|
|
24
|
+
if np_dtype_valid(False):
|
|
25
25
|
__all__.extend(["bfloat16"])
|
mindspore/common/parameter.py
CHANGED
|
@@ -33,6 +33,7 @@ from mindspore import context
|
|
|
33
33
|
from mindspore.common._utils import get_slice_num, get_slice_shape
|
|
34
34
|
from mindspore.common.initializer import initializer
|
|
35
35
|
from mindspore.common.tensor import Tensor, _TensorMeta
|
|
36
|
+
from mindspore.common.hook_handle import _update_hook_version
|
|
36
37
|
from mindspore import _checkparam as Validator
|
|
37
38
|
from mindspore._check_jit_forbidden_api import jit_forbidden_register
|
|
38
39
|
from mindspore._c_expression import TensorPy as Tensor_
|
|
@@ -49,20 +50,27 @@ import mindspore.common._monad as monad
|
|
|
49
50
|
__all__ = ['Parameter', 'ParameterTuple']
|
|
50
51
|
|
|
51
52
|
PARAMETER_NAME_DEFAULT = "Parameter"
|
|
53
|
+
_GENERATED_PARAMETER_NAME_PREFIX = PARAMETER_NAME_DEFAULT + '#'
|
|
52
54
|
PARAMETER_NAME_PREFIX_MAX_LEN = 1024
|
|
53
55
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
+
_PARAMETER_NAME_ID = 0
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def _generate_parameter_name():
|
|
60
|
+
global _PARAMETER_NAME_ID
|
|
61
|
+
name = _GENERATED_PARAMETER_NAME_PREFIX + str(_PARAMETER_NAME_ID)
|
|
62
|
+
_PARAMETER_NAME_ID += 1
|
|
63
|
+
return name
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def _is_parameter_generated(param_name):
|
|
67
|
+
if not param_name or not isinstance(param_name, str):
|
|
68
|
+
return False
|
|
69
|
+
return param_name.startswith(_GENERATED_PARAMETER_NAME_PREFIX)
|
|
56
70
|
|
|
57
|
-
# Global variable to mark the hook of parameter is updated
|
|
58
|
-
_parameter_hook_updated = True
|
|
59
|
-
def set_parameter_hook_updated(value):
|
|
60
|
-
global _parameter_hook_updated
|
|
61
|
-
_parameter_hook_updated = value
|
|
62
71
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
return _parameter_hook_updated
|
|
72
|
+
# Global variable for parameter unique key.
|
|
73
|
+
_GLOBAL_PARAMETER_KEY = -1
|
|
66
74
|
|
|
67
75
|
|
|
68
76
|
def _is_in_auto_parallel_mode():
|
|
@@ -72,7 +80,7 @@ def _is_in_auto_parallel_mode():
|
|
|
72
80
|
|
|
73
81
|
def _is_parallel_mode():
|
|
74
82
|
""" Whether is parallel mode """
|
|
75
|
-
if not _is_initialized()
|
|
83
|
+
if not _is_initialized():
|
|
76
84
|
return False
|
|
77
85
|
if os.getenv("RUN_MODE") != "predict":
|
|
78
86
|
return False
|
|
@@ -410,10 +418,6 @@ class Parameter(Tensor_):
|
|
|
410
418
|
"1. context.set_ps_context(enable_ps=True) \n"
|
|
411
419
|
"2. export MS_ROLE environment variable \n"
|
|
412
420
|
"Please refer to the official website for detailed usage.")
|
|
413
|
-
|
|
414
|
-
if context.get_context("mode") == context.PYNATIVE_MODE:
|
|
415
|
-
raise RuntimeError("Parameter server training is not supported in pynative mode currently."
|
|
416
|
-
"Please switch to graph mode and retry.")
|
|
417
421
|
self.is_param_ps = True
|
|
418
422
|
self.init_in_server = init_in_server
|
|
419
423
|
self.param_info.init_in_server = init_in_server
|
|
@@ -496,11 +500,11 @@ class Parameter(Tensor_):
|
|
|
496
500
|
the default value `PARAMETER_NAME_DEFAULT` is used.
|
|
497
501
|
"""
|
|
498
502
|
if name_ is None:
|
|
499
|
-
name_ =
|
|
503
|
+
name_ = _generate_parameter_name()
|
|
500
504
|
elif isinstance(name_, str):
|
|
501
505
|
name_ = name_.strip()
|
|
502
506
|
if name_ == '':
|
|
503
|
-
name_ =
|
|
507
|
+
name_ = _generate_parameter_name()
|
|
504
508
|
if len(name_) > PARAMETER_NAME_PREFIX_MAX_LEN:
|
|
505
509
|
raise ValueError("The length of the '{}' name should be less than {}.".
|
|
506
510
|
format(name_, PARAMETER_NAME_PREFIX_MAX_LEN))
|
|
@@ -904,13 +908,10 @@ class Parameter(Tensor_):
|
|
|
904
908
|
incoming_tensor_is_init = isinstance(data, Tensor) and not data.has_init
|
|
905
909
|
current_tensor_is_init = isinstance(self, Tensor) and not self.has_init
|
|
906
910
|
if self.dtype != data.dtype:
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
if isinstance(data, Tensor) and data.init is not None:
|
|
912
|
-
data.init_data()
|
|
913
|
-
data = F.cast(data, self.dtype)
|
|
911
|
+
from mindspore.ops import functional as F
|
|
912
|
+
if isinstance(data, Tensor) and data.init is not None:
|
|
913
|
+
data.init_data()
|
|
914
|
+
data = F.cast(data, self.dtype)
|
|
914
915
|
if isinstance(data, Tensor) and data.has_init:
|
|
915
916
|
# The parameter has been initialized, directly update by the data
|
|
916
917
|
if current_tensor_is_init:
|
|
@@ -938,7 +939,6 @@ class Parameter(Tensor_):
|
|
|
938
939
|
init_data_args += (slice_index, layout[2], layout[5])
|
|
939
940
|
return init_data_args
|
|
940
941
|
|
|
941
|
-
|
|
942
942
|
def init_data(self, layout=None, set_sliced=False):
|
|
943
943
|
"""
|
|
944
944
|
Initialize the parameter's data.
|
|
@@ -1007,11 +1007,11 @@ class Parameter(Tensor_):
|
|
|
1007
1007
|
For details, please refer to :func:`mindspore.Tensor.register_hook`.
|
|
1008
1008
|
"""
|
|
1009
1009
|
handle = Tensor.register_hook(self, hook_fn)
|
|
1010
|
-
|
|
1010
|
+
_update_hook_version()
|
|
1011
1011
|
return handle
|
|
1012
1012
|
|
|
1013
1013
|
def _remove_hook(self):
|
|
1014
|
-
|
|
1014
|
+
_update_hook_version()
|
|
1015
1015
|
|
|
1016
1016
|
def _offload(self):
|
|
1017
1017
|
r"""
|
|
@@ -1030,7 +1030,6 @@ class Parameter(Tensor_):
|
|
|
1030
1030
|
"""
|
|
1031
1031
|
return Tensor_._offload(self, True)
|
|
1032
1032
|
|
|
1033
|
-
|
|
1034
1033
|
def _load(self):
|
|
1035
1034
|
r"""
|
|
1036
1035
|
Load parameter to device.
|
|
@@ -1160,6 +1159,5 @@ class ParameterTuple(tuple):
|
|
|
1160
1159
|
_insert_accumu_init_info(x1.name, init_to_value(init))
|
|
1161
1160
|
return ParameterTuple(new)
|
|
1162
1161
|
|
|
1163
|
-
|
|
1164
1162
|
def __parameter_tuple__(self):
|
|
1165
1163
|
"""For parse check."""
|