mindspore 2.6.0__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 +64 -83
- mindspore/_extends/parse/resources.py +39 -0
- mindspore/_extends/parse/standard_method.py +47 -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 +177 -52
- mindspore/common/_utils.py +9 -1
- mindspore/common/api.py +338 -208
- 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 +2 -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 +84 -133
- mindspore/communication/_comm_helper.py +46 -4
- mindspore/communication/management.py +79 -7
- mindspore/context.py +47 -38
- 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 +69 -23
- 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 +5 -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 +1 -0
- 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 +4 -44
- mindspore/mint/distributed/__init__.py +5 -0
- mindspore/mint/distributed/distributed.py +425 -19
- 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 +125 -101
- 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 +488 -620
- 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 +86 -85
- 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 +2 -4
- mindspore/nn/optim/adasum.py +2 -2
- 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 +1 -1
- 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 +6 -13
- mindspore/ops/_vmap/vmap_nn_ops.py +8 -16
- mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +29 -10
- mindspore/ops/auto_generate/gen_extend_func.py +5 -55
- mindspore/ops/auto_generate/gen_ops_def.py +753 -273
- mindspore/ops/auto_generate/gen_ops_prim.py +1687 -958
- 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 +132 -108
- 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 +17 -100
- mindspore/ops/function/debug_func.py +8 -5
- mindspore/ops/function/grad/grad_func.py +5 -13
- mindspore/ops/function/math_func.py +65 -399
- mindspore/ops/function/nn_func.py +44 -61
- mindspore/ops/function/other_func.py +4 -1
- mindspore/ops/function/random_func.py +31 -4
- mindspore/ops/functional.py +2 -3
- mindspore/ops/functional_overload.py +486 -18
- mindspore/ops/op_info_register.py +21 -0
- mindspore/ops/operations/__init__.py +5 -2
- mindspore/ops/operations/_custom_ops_utils.py +675 -8
- mindspore/ops/operations/_inner_ops.py +14 -18
- mindspore/ops/operations/_sequence_ops.py +1 -1
- mindspore/ops/operations/array_ops.py +4 -50
- mindspore/ops/operations/comm_ops.py +186 -41
- mindspore/ops/operations/custom_ops.py +244 -175
- mindspore/ops/operations/debug_ops.py +55 -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 +6 -7
- mindspore/ops/primitive.py +9 -20
- mindspore/ops/tensor_method.py +52 -11
- 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 +7 -2
- 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_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 +9 -17
- mindspore/parallel/_cell_wrapper.py +106 -40
- 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 +33 -12
- mindspore/parallel/checkpoint_convert.py +3 -3
- mindspore/parallel/checkpoint_transform.py +5 -1
- 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 +7 -6
- 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 +9 -23
- mindspore/parallel/transform_safetensors.py +468 -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 +3 -0
- 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 +22 -30
- 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 +9 -5
- 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 +72 -18
- mindspore/train/data_sink.py +15 -6
- mindspore/train/dataset_helper.py +14 -5
- mindspore/train/model.py +49 -47
- 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 +162 -78
- 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.0.dist-info → mindspore-2.7.0.dist-info}/METADATA +5 -4
- {mindspore-2.6.0.dist-info → mindspore-2.7.0.dist-info}/RECORD +400 -439
- 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.0.dist-info → mindspore-2.7.0.dist-info}/WHEEL +0 -0
- {mindspore-2.6.0.dist-info → mindspore-2.7.0.dist-info}/entry_points.txt +0 -0
- {mindspore-2.6.0.dist-info → mindspore-2.7.0.dist-info}/top_level.txt +0 -0
|
@@ -1,581 +0,0 @@
|
|
|
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
|
-
"""embedding service layer"""
|
|
16
|
-
import numpy as np
|
|
17
|
-
|
|
18
|
-
import mindspore as ms
|
|
19
|
-
from mindspore import nn, ops, Tensor, Parameter
|
|
20
|
-
from mindspore.ops.auto_generate import init_partition_map, init_embedding_hashmap, embedding_table_find_and_init,\
|
|
21
|
-
embedding_table_find, fake_remote_lookup_uniqued
|
|
22
|
-
from mindspore.ops.auto_generate import EmbeddingTableImport, EmbeddingTableExport, \
|
|
23
|
-
EmbeddingComputeVarImport, EmbeddingComputeVarExport, EmbeddingTableEvict, EmbeddingFeatureMappingV2, \
|
|
24
|
-
EmbeddingFeatureMappingTableSize, EmbeddingFeatureMappingFind, EmbeddingFeatureMappingExport, \
|
|
25
|
-
EmbeddingFeatureMappingFileSize, EmbeddingFeatureMappingImport, EmbeddingFeatureMappingInsert
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
class CounterFilter:
|
|
29
|
-
""" Counter filter for embedding table. """
|
|
30
|
-
def __init__(self, filter_freq, default_key_or_value, default_key=None, default_value=None):
|
|
31
|
-
self.filter_freq = filter_freq
|
|
32
|
-
self.default_key = default_key
|
|
33
|
-
self.default_value = default_value
|
|
34
|
-
self.default_key_or_value = default_key_or_value
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
def _get_slot_var_num(optimizer_mode):
|
|
38
|
-
""" get slot var num by diff optimizer. """
|
|
39
|
-
# adam, adamw, rmsprop include m and v, 2 slots; adagrad include accumulator, 1 slot; sgd include 0 slot
|
|
40
|
-
if optimizer_mode == "adagrad":
|
|
41
|
-
return 1
|
|
42
|
-
if optimizer_mode == "sgd":
|
|
43
|
-
return 0
|
|
44
|
-
if optimizer_mode == "":
|
|
45
|
-
return 0
|
|
46
|
-
return 2
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
def _get_backward_float_params(optimizer_mode):
|
|
50
|
-
"""
|
|
51
|
-
backward_float_params (Union[tuple[float], list[float]]):
|
|
52
|
-
- when the backward_mode is 'adam', it means:
|
|
53
|
-
[beta1_power, beta2_power, lr, beta1, beta2, epsilon]
|
|
54
|
-
- when the backward_mode is 'ftrl', it means:
|
|
55
|
-
[lr, lr_power, lambda1, lambda2]
|
|
56
|
-
- when the backward_mode is 'adamw', it means:
|
|
57
|
-
[beta1_power, beta2_power, lr, weight_decay, beta1, beta2, epsilon]
|
|
58
|
-
- when the backward_mode is 'adagrad', it means [lr,]
|
|
59
|
-
"""
|
|
60
|
-
if optimizer_mode == "adagrad" or optimizer_mode == "sgd":
|
|
61
|
-
return [0.001]
|
|
62
|
-
if optimizer_mode == "adam":
|
|
63
|
-
return [0.9, 0.99, 0.001, 0.9, 0.999, 1e-08]
|
|
64
|
-
if optimizer_mode == "ftrl":
|
|
65
|
-
return [0.001, -0.5, 0.0, 0.0]
|
|
66
|
-
if optimizer_mode == "rmsprop":
|
|
67
|
-
return [0.001, 0.9, 0.1, 1e-08]
|
|
68
|
-
# adamw
|
|
69
|
-
return [0.9, 0.99, 0.001, 0.01, 0.9, 0.999, 1e-08]
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
class ESInitLayer(nn.Cell):
|
|
73
|
-
"""
|
|
74
|
-
ESInitLayer.
|
|
75
|
-
"""
|
|
76
|
-
def __init__(self, ps_num, ps_ids, train_mode, train_level, table_id, bucket_size, embedding_dim, slot_var_num,
|
|
77
|
-
es_initializer, filter_mode, optimizer, optimizer_params, max_feature_count, mode="train"):
|
|
78
|
-
super(ESInitLayer, self).__init__()
|
|
79
|
-
self.ps_num = ps_num
|
|
80
|
-
self.ps_ids = ps_ids
|
|
81
|
-
self.train_mode = train_mode
|
|
82
|
-
self.train_level = train_level
|
|
83
|
-
self.table_id = table_id
|
|
84
|
-
self.bucket_size = bucket_size
|
|
85
|
-
self.embedding_dim = embedding_dim
|
|
86
|
-
self.es_initializer = es_initializer
|
|
87
|
-
self.filter_mode = filter_mode
|
|
88
|
-
self.optimizer_mode = optimizer if optimizer else ''
|
|
89
|
-
self.optimizer_params = optimizer_params if optimizer_params else ()
|
|
90
|
-
self.max_feature_count = max_feature_count
|
|
91
|
-
|
|
92
|
-
self.ps_num_tensor = Tensor(self.ps_num, ms.int32)
|
|
93
|
-
self.ps_ids_tensor = Tensor(self.ps_ids, ms.int32)
|
|
94
|
-
self.table_id_tensor = Tensor(self.table_id, ms.int32)
|
|
95
|
-
self.depend = ops.Depend()
|
|
96
|
-
self.slot_var_num = _get_slot_var_num(self.optimizer_mode)
|
|
97
|
-
if mode == "train":
|
|
98
|
-
self.value_total_len = self.embedding_dim * (self.slot_var_num + 1) + 2
|
|
99
|
-
else:
|
|
100
|
-
self.value_total_len = self.embedding_dim * (self.slot_var_num + 1)
|
|
101
|
-
self.filter_freq = None
|
|
102
|
-
self.default_key = None
|
|
103
|
-
self.default_value = None
|
|
104
|
-
|
|
105
|
-
def construct(self):
|
|
106
|
-
"""
|
|
107
|
-
ESInitLayer construct: init embedding hashmap
|
|
108
|
-
"""
|
|
109
|
-
init_partition = init_partition_map(self.ps_num_tensor,
|
|
110
|
-
self.ps_ids_tensor,
|
|
111
|
-
_embedding_dim=self.embedding_dim,
|
|
112
|
-
_max_key_num=self.max_feature_count,
|
|
113
|
-
_ps_num=self.ps_num)
|
|
114
|
-
depend = self.depend(self.table_id_tensor, init_partition)
|
|
115
|
-
if self.train_mode:
|
|
116
|
-
if self.train_level:
|
|
117
|
-
return init_embedding_hashmap(table_id=depend,
|
|
118
|
-
bucket_size=self.bucket_size,
|
|
119
|
-
value_total_len=self.value_total_len,
|
|
120
|
-
embedding_dim=self.embedding_dim,
|
|
121
|
-
initializer_mode=self.es_initializer.initializer_mode,
|
|
122
|
-
constant_value=self.es_initializer.constant_value,
|
|
123
|
-
min=self.es_initializer.min,
|
|
124
|
-
max=self.es_initializer.max,
|
|
125
|
-
mu=self.es_initializer.mu,
|
|
126
|
-
sigma=self.es_initializer.sigma,
|
|
127
|
-
seed=self.es_initializer.seed,
|
|
128
|
-
seed2=self.es_initializer.seed,
|
|
129
|
-
filter_mode=self.filter_mode,
|
|
130
|
-
optimizer_mode=self.optimizer_mode,
|
|
131
|
-
optimizer_params=self.optimizer_params,
|
|
132
|
-
_table_id=self.table_id)
|
|
133
|
-
return init_embedding_hashmap(table_id=depend,
|
|
134
|
-
bucket_size=self.bucket_size,
|
|
135
|
-
value_total_len=self.value_total_len,
|
|
136
|
-
embedding_dim=self.embedding_dim,
|
|
137
|
-
initializer_mode=None, constant_value=None,
|
|
138
|
-
min=None, max=None, mu=None, sigma=None,
|
|
139
|
-
seed=None, seed2=None, filter_mode=self.filter_mode,
|
|
140
|
-
optimizer_mode=self.optimizer_mode,
|
|
141
|
-
optimizer_params=self.optimizer_params,
|
|
142
|
-
_table_id=self.table_id)
|
|
143
|
-
|
|
144
|
-
return init_embedding_hashmap(table_id=depend,
|
|
145
|
-
value_total_len=self.value_total_len,
|
|
146
|
-
embedding_dim=self.embedding_dim,
|
|
147
|
-
bucket_size=self.bucket_size,
|
|
148
|
-
filter_mode=self.filter_mode,
|
|
149
|
-
optimizer_mode=self.optimizer_mode,
|
|
150
|
-
optimizer_params=self.optimizer_params,
|
|
151
|
-
_table_id=self.table_id)
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
class EsEmbeddingLookup(nn.Cell):
|
|
155
|
-
r"""
|
|
156
|
-
Look up a PS embedding.
|
|
157
|
-
|
|
158
|
-
.. warning::
|
|
159
|
-
This is an experimental EmbeddingService API that is subject to change.
|
|
160
|
-
|
|
161
|
-
Args:
|
|
162
|
-
table_id (int): The table id.
|
|
163
|
-
es_initializer (EsInitializer): The EsInitialize object for PS embedding with table_id,
|
|
164
|
-
which can be None when the inference is performed.
|
|
165
|
-
embedding_dim (int): The embedding dim of keys for PS embedding with table_id.
|
|
166
|
-
max_key_num (int): The num of keys when lookup.
|
|
167
|
-
optimizer_mode (str): The type of optimizer. Default is ``None``.
|
|
168
|
-
optimizer_params (tuple[float]): The parameters of optimizer. Default is ``None``.
|
|
169
|
-
es_filter (CounterFilter): The option of counter filter for PS embedding with table_id. Default is ``None``.
|
|
170
|
-
es_padding_key (PaddingParamsOption): The option of padding key for PS embedding with table_id.
|
|
171
|
-
Default is ``None``.
|
|
172
|
-
es_completion_key (CompletionKeyOption): The option of completion key for PS embedding with table_id.
|
|
173
|
-
Default is ``None``.
|
|
174
|
-
|
|
175
|
-
Inputs:
|
|
176
|
-
- **keys** (Tensor): The keys of each feature in PS embedding.
|
|
177
|
-
- **actual_keys_input** (Tensor): Tensor composed of all unique elements of keys.
|
|
178
|
-
- **unique_indices** (Tensor): The index value of each element in keys to actual_keys_input .
|
|
179
|
-
- **key_count** (Tensor): The count of each element in the actual_keys_input to keys.
|
|
180
|
-
|
|
181
|
-
Supported Platforms:
|
|
182
|
-
``Atlas A2 training series products``
|
|
183
|
-
"""
|
|
184
|
-
|
|
185
|
-
def __init__(self, table_id, es_initializer, embedding_dim, max_key_num, optimizer_mode=None,
|
|
186
|
-
optimizer_params=None, es_filter=None, es_padding_key=None, es_completion_key=None):
|
|
187
|
-
super(EsEmbeddingLookup, self).__init__()
|
|
188
|
-
self.cast = ops.cast
|
|
189
|
-
self.reshape = ops.Reshape()
|
|
190
|
-
|
|
191
|
-
self.table_id = Tensor(table_id, ms.int32)
|
|
192
|
-
self._table_id = table_id
|
|
193
|
-
self.es_initializer = es_initializer
|
|
194
|
-
self.embedding_dim = embedding_dim
|
|
195
|
-
self.optimizer_mode = optimizer_mode
|
|
196
|
-
self.backward_float_params = _get_backward_float_params(self.optimizer_mode)
|
|
197
|
-
self.max_key_num = max_key_num
|
|
198
|
-
self.es_filter = es_filter
|
|
199
|
-
|
|
200
|
-
self.slot_var_num = _get_slot_var_num(self.optimizer_mode)
|
|
201
|
-
self.value_total_len = [self.embedding_dim[table_id] * (self.slot_var_num + 1) + 2] * len(embedding_dim)
|
|
202
|
-
|
|
203
|
-
self.default_key_or_value = 1
|
|
204
|
-
self.filter_freq = 0
|
|
205
|
-
self.default_key = 0
|
|
206
|
-
self.optimizer_params = optimizer_params
|
|
207
|
-
|
|
208
|
-
if es_filter is not None:
|
|
209
|
-
self.filter_mode = "counter"
|
|
210
|
-
self.filter_freq = es_filter.filter_freq
|
|
211
|
-
self.default_key_or_value = es_filter.default_key_or_value
|
|
212
|
-
self.default_key = 0 if es_filter.default_key is None else es_filter.default_key
|
|
213
|
-
self.default_value = 0.0
|
|
214
|
-
else:
|
|
215
|
-
self.filter_mode = "no_filter"
|
|
216
|
-
self.filter_freq = 1
|
|
217
|
-
self.default_key_or_value = 1
|
|
218
|
-
self.default_key = 0
|
|
219
|
-
self.default_value = 1.0
|
|
220
|
-
|
|
221
|
-
self.global_step = 1
|
|
222
|
-
if es_padding_key is not None:
|
|
223
|
-
self.mask_zero = 0 if es_padding_key.mask_zero is None else int(es_padding_key.mask_zero)
|
|
224
|
-
self.padding_key = es_padding_key.padding_key
|
|
225
|
-
self.padding_key_mask = int(es_padding_key.mask)
|
|
226
|
-
else:
|
|
227
|
-
self.mask_zero = 0
|
|
228
|
-
self.padding_key = 0
|
|
229
|
-
self.padding_key_mask = 1
|
|
230
|
-
if self.optimizer_mode in ["adam", "ftrl", "adagrad", "sgd", "rmsprop"]:
|
|
231
|
-
self.backward_int_params = ([self.global_step], [self.mask_zero],
|
|
232
|
-
[self.padding_key], [self.padding_key_mask])
|
|
233
|
-
else:
|
|
234
|
-
self.backward_int_params = ([self.global_step], [0], [0], [self.mask_zero],
|
|
235
|
-
[self.padding_key], [self.padding_key_mask])
|
|
236
|
-
|
|
237
|
-
if es_completion_key is not None:
|
|
238
|
-
self.completion_key = es_completion_key.completion_key
|
|
239
|
-
self.completion_key_mask = int(es_completion_key.mask)
|
|
240
|
-
else:
|
|
241
|
-
self.completion_key = 0
|
|
242
|
-
self.completion_key_mask = 1
|
|
243
|
-
|
|
244
|
-
self.b = Parameter(Tensor(0, ms.float32), name="b", requires_grad=True)
|
|
245
|
-
self.max_grad_norm = Tensor([1.0], ms.float32)
|
|
246
|
-
|
|
247
|
-
def construct(self, keys, actual_keys_input=None, unique_indices=None, key_count=None):
|
|
248
|
-
"""
|
|
249
|
-
Using the corresponding query method to calculate the PS embedding for each key.
|
|
250
|
-
"""
|
|
251
|
-
origin_shape = None
|
|
252
|
-
if len(keys.shape) != 1:
|
|
253
|
-
origin_shape = keys.shape
|
|
254
|
-
keys = self.reshape(keys, (-1,))
|
|
255
|
-
keys = self.cast(keys, ms.int64)
|
|
256
|
-
use_host_unique = False
|
|
257
|
-
use_counter_filter = 1 if self.filter_mode == "counter" else 0
|
|
258
|
-
if (actual_keys_input is not None) and (unique_indices is not None):
|
|
259
|
-
use_host_unique = True
|
|
260
|
-
actual_keys_input = self.cast(actual_keys_input, ms.int64)
|
|
261
|
-
unique_indices = self.cast(unique_indices, ms.int32)
|
|
262
|
-
if use_host_unique:
|
|
263
|
-
if not use_counter_filter:
|
|
264
|
-
key_count = keys
|
|
265
|
-
if self.training:
|
|
266
|
-
if use_host_unique:
|
|
267
|
-
output = fake_remote_lookup_uniqued(table_id=self.table_id, keys=keys,
|
|
268
|
-
actual_keys_num=actual_keys_input,
|
|
269
|
-
unique_indices=unique_indices, key_count=key_count,
|
|
270
|
-
max_grad_norm=self.max_grad_norm,
|
|
271
|
-
embedding_dim=self.embedding_dim,
|
|
272
|
-
initializer_mode=self.es_initializer.initializer_mode,
|
|
273
|
-
constant_value=self.es_initializer.constant_value,
|
|
274
|
-
min=self.es_initializer.min,
|
|
275
|
-
max=self.es_initializer.max,
|
|
276
|
-
mu=self.es_initializer.mu,
|
|
277
|
-
sigma=self.es_initializer.sigma,
|
|
278
|
-
seed=self.es_initializer.seed,
|
|
279
|
-
seed2=self.es_initializer.seed,
|
|
280
|
-
value_total_len=self.value_total_len,
|
|
281
|
-
filter_mode=self.filter_mode,
|
|
282
|
-
filter_freq=self.filter_freq,
|
|
283
|
-
default_key_or_value=self.default_key_or_value,
|
|
284
|
-
default_key=self.default_key,
|
|
285
|
-
default_value=self.default_value,
|
|
286
|
-
optimizer_mode=self.optimizer_mode,
|
|
287
|
-
optimizer_params=self.optimizer_params,
|
|
288
|
-
_max_key_num=self.max_key_num, _table_id=self._table_id,
|
|
289
|
-
_use_counter_filter=use_counter_filter,
|
|
290
|
-
backward_mode=self.optimizer_mode,
|
|
291
|
-
backward_int_params=self.backward_int_params,
|
|
292
|
-
backward_float_params=self.backward_float_params,
|
|
293
|
-
completion_key=self.completion_key,
|
|
294
|
-
completion_key_mask=self.completion_key_mask,
|
|
295
|
-
parameter=self.b
|
|
296
|
-
)
|
|
297
|
-
else:
|
|
298
|
-
output = embedding_table_find_and_init(self.table_id, keys,
|
|
299
|
-
max_grad_norm=self.max_grad_norm,
|
|
300
|
-
embedding_dim=self.embedding_dim,
|
|
301
|
-
initializer_mode=self.es_initializer.initializer_mode,
|
|
302
|
-
constant_value=self.es_initializer.constant_value,
|
|
303
|
-
min=self.es_initializer.min,
|
|
304
|
-
max=self.es_initializer.max,
|
|
305
|
-
mu=self.es_initializer.mu,
|
|
306
|
-
sigma=self.es_initializer.sigma,
|
|
307
|
-
seed=self.es_initializer.seed,
|
|
308
|
-
seed2=self.es_initializer.seed,
|
|
309
|
-
value_total_len=self.value_total_len,
|
|
310
|
-
filter_mode=self.filter_mode,
|
|
311
|
-
filter_freq=self.filter_freq,
|
|
312
|
-
default_key_or_value=self.default_key_or_value,
|
|
313
|
-
default_key=self.default_key,
|
|
314
|
-
default_value=self.default_value,
|
|
315
|
-
optimizer_mode=self.optimizer_mode,
|
|
316
|
-
optimizer_params=self.optimizer_params,
|
|
317
|
-
_max_key_num=self.max_key_num, _table_id=self._table_id,
|
|
318
|
-
_use_counter_filter=use_counter_filter,
|
|
319
|
-
backward_mode=self.optimizer_mode,
|
|
320
|
-
backward_int_params=self.backward_int_params,
|
|
321
|
-
backward_float_params=self.backward_float_params,
|
|
322
|
-
completion_key=self.completion_key,
|
|
323
|
-
completion_key_mask=self.completion_key_mask,
|
|
324
|
-
parameter=self.b)
|
|
325
|
-
else:
|
|
326
|
-
output = embedding_table_find(self.table_id, keys, embedding_dim=self.embedding_dim,
|
|
327
|
-
default_value=self.default_value,
|
|
328
|
-
_max_key_num=self.max_key_num, _table_id=self._table_id,
|
|
329
|
-
_use_counter_filter=use_counter_filter)
|
|
330
|
-
if origin_shape is not None:
|
|
331
|
-
output = self.reshape(output, origin_shape + (-1,))
|
|
332
|
-
return output
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
class ESEmbeddingCKPTExport(nn.Cell):
|
|
336
|
-
"""
|
|
337
|
-
ESEmbeddingCKPTExport.
|
|
338
|
-
"""
|
|
339
|
-
def __init__(self, embedding_dim_list, value_total_len_list, table_name_list, table_id_list,
|
|
340
|
-
file_path, steps_to_live_list):
|
|
341
|
-
super(ESEmbeddingCKPTExport, self).__init__()
|
|
342
|
-
self.embedding_table_export = EmbeddingTableExport(
|
|
343
|
-
embedding_dim_list,
|
|
344
|
-
value_total_len_list,
|
|
345
|
-
table_name=table_name_list,
|
|
346
|
-
steps_to_live_list=steps_to_live_list)
|
|
347
|
-
self.embedding_compute_var_export = EmbeddingComputeVarExport(table_name_list)
|
|
348
|
-
self.file_path = Tensor(np.array(file_path))
|
|
349
|
-
self.ps_id_tensor = Tensor(0, ms.int32)
|
|
350
|
-
self.table_id_tensor = Tensor(table_id_list, ms.int32)
|
|
351
|
-
self.depend = ops.Depend()
|
|
352
|
-
|
|
353
|
-
def construct(self, global_step):
|
|
354
|
-
export_op1 = self.embedding_table_export(self.file_path, self.ps_id_tensor, self.table_id_tensor, global_step)
|
|
355
|
-
z = self.depend(self.file_path, export_op1)
|
|
356
|
-
export_op2 = self.embedding_compute_var_export(z, self.ps_id_tensor, self.table_id_tensor, global_step)
|
|
357
|
-
return export_op2
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
class ESEmbeddingTableExport(nn.Cell):
|
|
361
|
-
"""
|
|
362
|
-
ESEmbeddingTableExport.
|
|
363
|
-
"""
|
|
364
|
-
def __init__(self, embedding_dim_list, value_total_len_list, table_name_list, table_id_list,
|
|
365
|
-
file_path, steps_to_live_list):
|
|
366
|
-
super(ESEmbeddingTableExport, self).__init__()
|
|
367
|
-
self.op = EmbeddingTableExport(
|
|
368
|
-
embedding_dim_list,
|
|
369
|
-
value_total_len_list,
|
|
370
|
-
table_name=table_name_list,
|
|
371
|
-
steps_to_live_list=steps_to_live_list,
|
|
372
|
-
only_var_flag=True)
|
|
373
|
-
self.file_path = Tensor(np.array(file_path))
|
|
374
|
-
self.ps_id_tensor = Tensor(0, ms.int32)
|
|
375
|
-
self.table_id_tensor = Tensor(table_id_list, ms.int32)
|
|
376
|
-
|
|
377
|
-
def construct(self, global_step):
|
|
378
|
-
y = self.op(self.file_path, self.ps_id_tensor, self.table_id_tensor, global_step)
|
|
379
|
-
return y
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
class ESIncrementalEmbeddingTableExport(nn.Cell):
|
|
383
|
-
"""
|
|
384
|
-
ESIncrementalEmbeddingTableExport.
|
|
385
|
-
"""
|
|
386
|
-
def __init__(self, embedding_dim_list, value_total_len_list, table_name_list, table_id_list,
|
|
387
|
-
file_path, steps_to_live_list):
|
|
388
|
-
super(ESIncrementalEmbeddingTableExport, self).__init__()
|
|
389
|
-
self.op = EmbeddingTableExport(
|
|
390
|
-
embedding_dim_list,
|
|
391
|
-
value_total_len_list,
|
|
392
|
-
table_name=table_name_list,
|
|
393
|
-
steps_to_live_list=steps_to_live_list,
|
|
394
|
-
export_mode="new",
|
|
395
|
-
only_var_flag=True)
|
|
396
|
-
self.file_path = Tensor(np.array(file_path))
|
|
397
|
-
self.ps_id_tensor = Tensor(0, ms.int32)
|
|
398
|
-
self.table_id_tensor = Tensor(table_id_list, ms.int32)
|
|
399
|
-
|
|
400
|
-
def construct(self, global_step):
|
|
401
|
-
y = self.op(self.file_path, self.ps_id_tensor, self.table_id_tensor, global_step)
|
|
402
|
-
return y
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
class ESEmbeddingCKPTImport(nn.Cell):
|
|
406
|
-
"""
|
|
407
|
-
ESEmbeddingCKPTImport.
|
|
408
|
-
"""
|
|
409
|
-
def __init__(self, embedding_dim_list, value_total_len_list, table_name_list, table_id_list, file_path):
|
|
410
|
-
super(ESEmbeddingCKPTImport, self).__init__()
|
|
411
|
-
self.embedding_table_import = EmbeddingTableImport(
|
|
412
|
-
embedding_dim_list,
|
|
413
|
-
value_total_len_list,
|
|
414
|
-
table_name=table_name_list)
|
|
415
|
-
self.embedding_compute_var_import = EmbeddingComputeVarImport(table_name_list)
|
|
416
|
-
self.file_path = Tensor(np.array(file_path))
|
|
417
|
-
self.ps_id_tensor = Tensor(0, ms.int32)
|
|
418
|
-
self.table_id_tensor = Tensor(table_id_list, ms.int32)
|
|
419
|
-
self.depend = ops.Depend()
|
|
420
|
-
|
|
421
|
-
def construct(self, global_step):
|
|
422
|
-
export_op1 = self.embedding_table_import(self.file_path, self.ps_id_tensor, self.table_id_tensor, global_step)
|
|
423
|
-
z = self.depend(self.file_path, export_op1)
|
|
424
|
-
export_op2 = self.embedding_compute_var_import(z, self.ps_id_tensor, self.table_id_tensor, global_step)
|
|
425
|
-
return export_op2
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
class ESEmbeddingTableImport(nn.Cell):
|
|
429
|
-
"""
|
|
430
|
-
ESEmbeddingTableImport.
|
|
431
|
-
"""
|
|
432
|
-
def __init__(self, embedding_dim_list, value_total_len_list, table_name_list, table_id_list, file_path):
|
|
433
|
-
super(ESEmbeddingTableImport, self).__init__()
|
|
434
|
-
self.op = EmbeddingTableImport(
|
|
435
|
-
embedding_dim_list,
|
|
436
|
-
value_total_len_list,
|
|
437
|
-
table_name=table_name_list,
|
|
438
|
-
only_var_flag=True)
|
|
439
|
-
self.file_path = Tensor(np.array(file_path))
|
|
440
|
-
self.ps_id_tensor = Tensor(0, ms.int32)
|
|
441
|
-
self.table_id_tensor = Tensor(table_id_list, ms.int32)
|
|
442
|
-
|
|
443
|
-
def construct(self, global_step):
|
|
444
|
-
y = self.op(self.file_path, self.ps_id_tensor, self.table_id_tensor, global_step)
|
|
445
|
-
return y
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
class ESEmbeddingTableEvict(nn.Cell):
|
|
449
|
-
"""
|
|
450
|
-
ESEmbeddingTableEvict.
|
|
451
|
-
"""
|
|
452
|
-
def __init__(self, var_handle, global_step, steps_to_live):
|
|
453
|
-
super(ESEmbeddingTableEvict, self).__init__()
|
|
454
|
-
self.op = EmbeddingTableEvict()
|
|
455
|
-
self.var_handle = Tensor(var_handle, ms.int32)
|
|
456
|
-
self.global_step = global_step
|
|
457
|
-
self.steps_to_live = steps_to_live
|
|
458
|
-
|
|
459
|
-
def construct(self):
|
|
460
|
-
y = self.op(self.var_handle, self.global_step, self.steps_to_live)
|
|
461
|
-
return y
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
class ESEmbeddingFeatureMappingExport(nn.Cell):
|
|
465
|
-
"""
|
|
466
|
-
ESEmbeddingFeatureMappingExport.
|
|
467
|
-
"""
|
|
468
|
-
def __init__(self, file_path, export_value, var, var_name, small_table_embedding_dim):
|
|
469
|
-
super(ESEmbeddingFeatureMappingExport, self).__init__()
|
|
470
|
-
self.embedding_feature_mapping_table_size = EmbeddingFeatureMappingTableSize()
|
|
471
|
-
self.embedding_feature_mapping_find = EmbeddingFeatureMappingFind()
|
|
472
|
-
self.embedding_feature_mapping_export = EmbeddingFeatureMappingExport()
|
|
473
|
-
self.file_path = file_path
|
|
474
|
-
self.export_value = export_value
|
|
475
|
-
self.gather = ops.Gather()
|
|
476
|
-
self.var = Tensor(var, ms.float32)
|
|
477
|
-
self.var_name = Tensor(np.array([var_name]))
|
|
478
|
-
self.small_table_embedding_dim = [small_table_embedding_dim]
|
|
479
|
-
self.global_step = Tensor([-1], ms.int64)
|
|
480
|
-
|
|
481
|
-
def construct(self):
|
|
482
|
-
"""
|
|
483
|
-
ESEmbeddingFeatureMappingExport construct: export feature mapping for data_parallel embedding.
|
|
484
|
-
"""
|
|
485
|
-
feature_size = self.embedding_feature_mapping_table_size(self.var_name)
|
|
486
|
-
feature_id, offset_id = self.embedding_feature_mapping_find(self.var_name, feature_size, 1)
|
|
487
|
-
values = self.gather(self.var, offset_id, 0)
|
|
488
|
-
if self.export_value:
|
|
489
|
-
embed_values = values
|
|
490
|
-
else:
|
|
491
|
-
embed_values = Tensor([0], ms.float32)
|
|
492
|
-
feature_mapping_export = self.embedding_feature_mapping_export(self.file_path, self.var_name, self.global_step,
|
|
493
|
-
embed_values, self.small_table_embedding_dim,
|
|
494
|
-
[feature_id], [offset_id])
|
|
495
|
-
return feature_mapping_export
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
class ESEmbeddingFeatureMappingImport(nn.Cell):
|
|
499
|
-
"""
|
|
500
|
-
ESEmbeddingFeatureMappingImport.
|
|
501
|
-
"""
|
|
502
|
-
def __init__(self, file_path, small_table_name, small_table_embedding_dim, only_offset_flag):
|
|
503
|
-
super(ESEmbeddingFeatureMappingImport, self).__init__()
|
|
504
|
-
self.embedding_feature_mapping_file_size = EmbeddingFeatureMappingFileSize()
|
|
505
|
-
self.embedding_feature_mapping_import = EmbeddingFeatureMappingImport()
|
|
506
|
-
self.embedding_feature_mapping_insert = EmbeddingFeatureMappingInsert()
|
|
507
|
-
self.file_path = file_path
|
|
508
|
-
self.small_table_name = Tensor(np.array([small_table_name]))
|
|
509
|
-
self.small_table_embedding_dim = [small_table_embedding_dim]
|
|
510
|
-
self.only_offset_flag = only_offset_flag
|
|
511
|
-
self.global_step = Tensor([-1], ms.int64)
|
|
512
|
-
|
|
513
|
-
def construct(self):
|
|
514
|
-
"""
|
|
515
|
-
ESEmbeddingFeatureMappingImport construct: import feature mapping for data_parallel embedding.
|
|
516
|
-
"""
|
|
517
|
-
feature_size = self.embedding_feature_mapping_file_size(self.file_path,
|
|
518
|
-
self.small_table_name,
|
|
519
|
-
self.global_step,
|
|
520
|
-
self.small_table_embedding_dim,
|
|
521
|
-
self.only_offset_flag)
|
|
522
|
-
feature_id, offset_id = self.embedding_feature_mapping_import(self.file_path,
|
|
523
|
-
self.small_table_name,
|
|
524
|
-
feature_size, self.global_step,
|
|
525
|
-
self.small_table_embedding_dim,
|
|
526
|
-
self.only_offset_flag, 1)
|
|
527
|
-
feature_mapping_insert = self.embedding_feature_mapping_insert(self.small_table_name, 1,
|
|
528
|
-
[feature_id], [offset_id])
|
|
529
|
-
return feature_mapping_insert
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
class ESEmbeddingSmallTableLookup(nn.Cell):
|
|
533
|
-
r"""
|
|
534
|
-
Look up a data_parallel embedding.
|
|
535
|
-
|
|
536
|
-
.. warning::
|
|
537
|
-
This is an experimental EmbeddingService API that is subject to change.
|
|
538
|
-
|
|
539
|
-
Args:
|
|
540
|
-
name (str): The data_parallel embedding name.
|
|
541
|
-
rank_id (int): The rank id when look up data_parallel embedding key.
|
|
542
|
-
rank_size (int): The rank size when look up data_parallel embedding key.
|
|
543
|
-
small_table_to_variable (dict[str, parameter]): The dict to restore data_parallel embedding information:
|
|
544
|
-
key is table name, value is parameter.
|
|
545
|
-
|
|
546
|
-
Inputs:
|
|
547
|
-
- **ids_list** (Tensor) - The keys of each feature in data_parallel embedding.
|
|
548
|
-
|
|
549
|
-
Supported Platforms:
|
|
550
|
-
``Atlas A2 training series products``
|
|
551
|
-
"""
|
|
552
|
-
|
|
553
|
-
def __init__(self, name, rank_id, rank_size, small_table_to_variable):
|
|
554
|
-
super(ESEmbeddingSmallTableLookup, self).__init__()
|
|
555
|
-
self.small_table_to_variable = small_table_to_variable[name]
|
|
556
|
-
self.small_table_to_variable.feature_name = name
|
|
557
|
-
self.allgather = ops.AllGather()
|
|
558
|
-
self.gather = ops.Gather()
|
|
559
|
-
self.embedding_feature_mapping_v2 = EmbeddingFeatureMappingV2()
|
|
560
|
-
self.name = name
|
|
561
|
-
self.rank_id = rank_id
|
|
562
|
-
self.rank_size = rank_size
|
|
563
|
-
|
|
564
|
-
def construct(self, ids_list):
|
|
565
|
-
"""
|
|
566
|
-
Using the EmbeddingFeatureMappingV2 method to mapping hash key to non hash key, and then get embedding value.
|
|
567
|
-
"""
|
|
568
|
-
hash_key_shape = ids_list.shape
|
|
569
|
-
if self.rank_size > 1 and (hash_key_shape[0] is not None):
|
|
570
|
-
hash_key = ops.stop_gradient(self.allgather(ids_list))
|
|
571
|
-
non_hash_key = self.embedding_feature_mapping_v2(self.name, hash_key, [1], [1])
|
|
572
|
-
recovery_matrix = []
|
|
573
|
-
for i in range(hash_key_shape[0]):
|
|
574
|
-
recovery_matrix.append(self.rank_id * hash_key_shape[0] + i)
|
|
575
|
-
local_non_hash_keys = self.gather(non_hash_key, Tensor(recovery_matrix), 0)
|
|
576
|
-
else:
|
|
577
|
-
hash_key = ids_list
|
|
578
|
-
local_non_hash_keys = self.embedding_feature_mapping_v2(self.name, hash_key, [1], [1])
|
|
579
|
-
|
|
580
|
-
embedding = self.gather(self.small_table_to_variable, local_non_hash_keys, 0)
|
|
581
|
-
return embedding
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
# Copyright 2020 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
|
-
# ============================================================================
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
# Copyright 2019 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
|
-
"""Validate the input path."""
|
|
16
|
-
import os
|
|
17
|
-
import re
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
def check_valid_character_of_path(file_path):
|
|
21
|
-
"""
|
|
22
|
-
Validates path.
|
|
23
|
-
|
|
24
|
-
The output path of profiler only supports alphabets(a-zA-Z), digit(0-9) or {'-', '_', '.', '/'}.
|
|
25
|
-
|
|
26
|
-
Note:
|
|
27
|
-
Chinese and other paths are not supported at present.
|
|
28
|
-
|
|
29
|
-
Args:
|
|
30
|
-
path (str): Normalized Path.
|
|
31
|
-
|
|
32
|
-
Returns:
|
|
33
|
-
bool, whether valid.
|
|
34
|
-
"""
|
|
35
|
-
re_path = r'^[/\\_a-zA-Z0-9-_.@]+$'
|
|
36
|
-
path_valid = re.fullmatch(re_path, file_path)
|
|
37
|
-
if not path_valid:
|
|
38
|
-
msg = "The output path of profiler only supports alphabets(a-zA-Z), " \
|
|
39
|
-
"digit(0-9) or {'-', '_', '.', '/', '@'}, but got the absolute path= " + file_path
|
|
40
|
-
raise RuntimeError(msg)
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
def validate_and_normalize_path(
|
|
44
|
-
path,
|
|
45
|
-
check_absolute_path=False,
|
|
46
|
-
allow_parent_dir=True,
|
|
47
|
-
):
|
|
48
|
-
"""
|
|
49
|
-
Validates path and returns its normalized form.
|
|
50
|
-
|
|
51
|
-
If path has a valid scheme, treat path as url, otherwise consider path a
|
|
52
|
-
unix local path.
|
|
53
|
-
|
|
54
|
-
Note:
|
|
55
|
-
File scheme (rfc8089) is currently not supported.
|
|
56
|
-
|
|
57
|
-
Args:
|
|
58
|
-
path (str): Path to be normalized.
|
|
59
|
-
check_absolute_path (bool): Whether check path scheme is supported.
|
|
60
|
-
allow_parent_dir (bool): Whether allow parent dir in path.
|
|
61
|
-
|
|
62
|
-
Returns:
|
|
63
|
-
str, normalized path.
|
|
64
|
-
"""
|
|
65
|
-
if not path:
|
|
66
|
-
raise RuntimeError("The path is invalid!")
|
|
67
|
-
|
|
68
|
-
path_str = str(path)
|
|
69
|
-
if not allow_parent_dir:
|
|
70
|
-
path_components = path_str.split("/")
|
|
71
|
-
if ".." in path_components:
|
|
72
|
-
raise RuntimeError("The parent path is not allowed!")
|
|
73
|
-
|
|
74
|
-
# path does not have valid schema, treat it as unix local path.
|
|
75
|
-
if check_absolute_path:
|
|
76
|
-
if not path_str.startswith("/"):
|
|
77
|
-
raise RuntimeError("The path is invalid!")
|
|
78
|
-
try:
|
|
79
|
-
# most unix systems allow
|
|
80
|
-
normalized_path = os.path.realpath(path)
|
|
81
|
-
except ValueError as err:
|
|
82
|
-
raise RuntimeError("The path is invalid!") from err
|
|
83
|
-
check_valid_character_of_path(normalized_path)
|
|
84
|
-
return normalized_path
|