mindspore 2.4.10__cp310-cp310-win_amd64.whl → 2.6.0__cp310-cp310-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mindspore might be problematic. Click here for more details.
- mindspore/.commit_id +1 -1
- mindspore/Microsoft.VisualStudio.Telemetry.dll +0 -0
- mindspore/Newtonsoft.Json.dll +0 -0
- mindspore/__init__.py +13 -6
- mindspore/_c_dataengine.cp310-win_amd64.pyd +0 -0
- mindspore/_c_expression.cp310-win_amd64.pyd +0 -0
- mindspore/_c_mindrecord.cp310-win_amd64.pyd +0 -0
- mindspore/_check_jit_forbidden_api.py +3 -0
- mindspore/_checkparam.py +3 -38
- mindspore/_deprecated/__init__.py +17 -0
- mindspore/_deprecated/jit.py +198 -0
- mindspore/_extends/builtin_operations.py +1 -1
- mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +1 -1
- mindspore/_extends/parse/__init__.py +6 -7
- mindspore/_extends/parse/compile_config.py +83 -0
- mindspore/_extends/parse/deprecated/__init__.py +0 -0
- mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +394 -0
- mindspore/_extends/parse/jit_fallback_modules/__init__.py +0 -0
- mindspore/_extends/parse/jit_fallback_modules/check_utils.py +123 -0
- mindspore/_extends/parse/jit_fallback_modules/third_party_modules.py +50 -0
- mindspore/_extends/parse/parser.py +47 -198
- mindspore/_extends/parse/resources.py +1 -5
- mindspore/_extends/parse/standard_method.py +229 -99
- mindspore/_extends/pijit/__init__.py +2 -2
- mindspore/_extends/pijit/pijit_func_white_list.py +17 -12
- mindspore/_extends/pijit/tensor_func_list.py +27 -0
- mindspore/_extends/utils.py +1 -1
- mindspore/amp.py +11 -5
- mindspore/atlprov.dll +0 -0
- mindspore/avcodec-59.dll +0 -0
- mindspore/avdevice-59.dll +0 -0
- mindspore/avfilter-8.dll +0 -0
- mindspore/avformat-59.dll +0 -0
- mindspore/avutil-57.dll +0 -0
- mindspore/boost/__init__.py +2 -2
- mindspore/boost/base.py +3 -7
- mindspore/boost/boost_cell_wrapper.py +138 -43
- mindspore/c1.dll +0 -0
- mindspore/c1xx.dll +0 -0
- mindspore/c2.dll +0 -0
- mindspore/common/__init__.py +6 -3
- mindspore/common/_grad_function.py +56 -0
- mindspore/common/_pijit_context.py +14 -5
- mindspore/common/_register_for_tensor.py +1 -2
- mindspore/common/_stub_tensor.py +30 -14
- mindspore/common/_tensor_cpp_method.py +17 -0
- mindspore/common/_tensor_docs.py +4760 -0
- mindspore/common/api.py +480 -372
- mindspore/common/auto_dynamic_shape.py +41 -44
- mindspore/common/dtype.py +39 -36
- mindspore/common/dump.py +9 -6
- mindspore/common/file_system.py +9 -1
- mindspore/common/generator.py +5 -0
- mindspore/common/hook_handle.py +6 -2
- mindspore/common/initializer.py +13 -10
- mindspore/common/jit_begin_end.py +94 -0
- mindspore/common/jit_config.py +6 -1
- mindspore/common/jit_context.py +76 -0
- mindspore/common/jit_trace.py +378 -0
- mindspore/common/lazy_inline.py +9 -3
- mindspore/common/mindir_util.py +10 -2
- mindspore/common/mutable.py +5 -4
- mindspore/common/parameter.py +135 -52
- mindspore/common/seed.py +2 -2
- mindspore/common/sparse_tensor.py +23 -17
- mindspore/common/tensor.py +975 -1981
- mindspore/communication/__init__.py +7 -5
- mindspore/communication/_comm_helper.py +52 -2
- mindspore/communication/comm_func.py +240 -181
- mindspore/communication/management.py +95 -26
- mindspore/context.py +324 -573
- mindspore/dataset/__init__.py +65 -37
- mindspore/dataset/audio/__init__.py +2 -8
- mindspore/dataset/audio/transforms.py +3 -17
- mindspore/dataset/callback/ds_callback.py +2 -1
- mindspore/dataset/core/config.py +87 -6
- mindspore/dataset/engine/cache_admin.py +3 -3
- mindspore/dataset/engine/cache_client.py +6 -5
- mindspore/dataset/engine/datasets.py +292 -267
- mindspore/dataset/engine/datasets_audio.py +22 -8
- mindspore/dataset/engine/datasets_standard_format.py +46 -27
- mindspore/dataset/engine/datasets_text.py +78 -48
- mindspore/dataset/engine/datasets_user_defined.py +183 -117
- mindspore/dataset/engine/datasets_vision.py +120 -44
- mindspore/dataset/engine/iterators.py +283 -63
- mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
- mindspore/dataset/engine/obs/util.py +8 -0
- mindspore/dataset/engine/queue.py +40 -0
- mindspore/dataset/engine/samplers.py +289 -43
- mindspore/dataset/engine/serializer_deserializer.py +3 -2
- mindspore/dataset/engine/validators.py +53 -11
- mindspore/dataset/text/__init__.py +7 -6
- mindspore/dataset/text/transforms.py +6 -5
- mindspore/dataset/text/utils.py +3 -3
- mindspore/dataset/transforms/__init__.py +0 -9
- mindspore/dataset/transforms/py_transforms_util.py +17 -0
- mindspore/dataset/transforms/transforms.py +31 -14
- mindspore/dataset/utils/browse_dataset.py +1 -1
- mindspore/dataset/vision/__init__.py +2 -9
- mindspore/dataset/vision/transforms.py +202 -158
- mindspore/dataset/vision/utils.py +7 -5
- mindspore/dataset/vision/validators.py +1 -2
- mindspore/device_context/__init__.py +21 -0
- mindspore/device_context/ascend/__init__.py +25 -0
- mindspore/device_context/ascend/device.py +72 -0
- mindspore/device_context/ascend/op_debug.py +153 -0
- mindspore/device_context/ascend/op_precision.py +193 -0
- mindspore/device_context/ascend/op_tuning.py +123 -0
- mindspore/{ops_generate/gen_constants.py → device_context/cpu/__init__.py} +6 -17
- mindspore/device_context/cpu/device.py +62 -0
- mindspore/device_context/cpu/op_tuning.py +43 -0
- mindspore/device_context/gpu/__init__.py +21 -0
- mindspore/device_context/gpu/device.py +70 -0
- mindspore/device_context/gpu/op_precision.py +67 -0
- mindspore/device_context/gpu/op_tuning.py +175 -0
- mindspore/device_manager.py +170 -0
- mindspore/dnnl.dll +0 -0
- mindspore/dpcmi.dll +0 -0
- mindspore/experimental/es/embedding_service.py +35 -27
- mindspore/experimental/llm_boost/__init__.py +1 -0
- mindspore/experimental/llm_boost/ascend_native/__init__.py +22 -0
- mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +209 -0
- mindspore/experimental/llm_boost/ascend_native/llm_boost.py +52 -0
- mindspore/experimental/llm_boost/atb/boost_base.py +2 -3
- mindspore/experimental/llm_boost/atb/llama_boost.py +6 -1
- mindspore/experimental/llm_boost/register.py +1 -0
- mindspore/experimental/map_parameter.py +4 -4
- mindspore/experimental/optim/adadelta.py +6 -6
- mindspore/experimental/optim/adagrad.py +4 -4
- mindspore/experimental/optim/adam.py +7 -0
- mindspore/experimental/optim/adamax.py +4 -4
- mindspore/experimental/optim/adamw.py +4 -0
- mindspore/experimental/optim/asgd.py +1 -1
- mindspore/experimental/optim/lr_scheduler.py +73 -46
- mindspore/experimental/optim/radam.py +34 -31
- mindspore/experimental/optim/rprop.py +1 -1
- mindspore/experimental/optim/sgd.py +1 -1
- mindspore/hal/contiguous_tensors_handle.py +6 -10
- mindspore/hal/device.py +55 -53
- mindspore/hal/event.py +52 -52
- mindspore/hal/memory.py +179 -120
- mindspore/hal/stream.py +150 -109
- mindspore/include/api/context.h +0 -1
- mindspore/include/dataset/constants.h +7 -4
- mindspore/include/dataset/execute.h +2 -2
- mindspore/jpeg62.dll +0 -0
- mindspore/log.py +50 -0
- mindspore/mindrecord/__init__.py +21 -8
- mindspore/mindrecord/config.py +17 -316
- mindspore/mindrecord/filereader.py +1 -9
- mindspore/mindrecord/filewriter.py +5 -15
- mindspore/mindrecord/mindpage.py +1 -9
- mindspore/mindspore_backend_common.dll +0 -0
- mindspore/mindspore_backend_manager.dll +0 -0
- mindspore/mindspore_common.dll +0 -0
- mindspore/mindspore_core.dll +0 -0
- mindspore/mindspore_dump.dll +0 -0
- mindspore/mindspore_frontend.dll +0 -0
- mindspore/mindspore_glog.dll +0 -0
- mindspore/mindspore_memory_pool.dll +0 -0
- mindspore/mindspore_ms_backend.dll +0 -0
- mindspore/mindspore_ops.dll +0 -0
- mindspore/{mindspore_backend.dll → mindspore_ops_host.dll} +0 -0
- mindspore/mindspore_ops_kernel_common.dll +0 -0
- mindspore/mindspore_profiler.dll +0 -0
- mindspore/mindspore_pyboost.dll +0 -0
- mindspore/mindspore_pynative.dll +0 -0
- mindspore/mindspore_res_manager.dll +0 -0
- mindspore/mindspore_runtime_pipeline.dll +0 -0
- mindspore/mint/__init__.py +798 -761
- mindspore/mint/distributed/__init__.py +70 -4
- mindspore/mint/distributed/distributed.py +2679 -44
- mindspore/mint/linalg/__init__.py +8 -0
- mindspore/mint/nn/__init__.py +743 -22
- mindspore/mint/nn/functional.py +716 -23
- mindspore/mint/nn/layer/__init__.py +21 -4
- mindspore/mint/nn/layer/_functions.py +334 -0
- mindspore/mint/nn/layer/activation.py +276 -1
- mindspore/mint/nn/layer/basic.py +123 -0
- mindspore/mint/nn/layer/conv.py +933 -0
- mindspore/mint/nn/layer/normalization.py +223 -28
- mindspore/mint/nn/layer/padding.py +797 -0
- mindspore/mint/nn/layer/pooling.py +235 -0
- mindspore/mint/optim/__init__.py +3 -1
- mindspore/mint/optim/adam.py +223 -0
- mindspore/mint/optim/adamw.py +26 -19
- mindspore/mint/optim/sgd.py +171 -0
- mindspore/mint/special/__init__.py +2 -1
- mindspore/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/multiprocessing/__init__.py +5 -0
- mindspore/nn/__init__.py +4 -1
- mindspore/nn/cell.py +1373 -192
- mindspore/nn/dynamic_lr.py +2 -1
- mindspore/nn/layer/activation.py +29 -27
- mindspore/nn/layer/basic.py +51 -35
- mindspore/nn/layer/channel_shuffle.py +3 -3
- mindspore/nn/layer/container.py +1 -1
- mindspore/nn/layer/conv.py +53 -42
- mindspore/nn/layer/embedding.py +12 -11
- mindspore/nn/layer/normalization.py +56 -49
- mindspore/nn/layer/padding.py +4 -3
- mindspore/nn/layer/pooling.py +120 -42
- mindspore/nn/layer/rnn_cells.py +1 -1
- mindspore/nn/layer/rnns.py +2 -1
- mindspore/nn/layer/timedistributed.py +5 -5
- mindspore/nn/layer/transformer.py +59 -36
- mindspore/nn/learning_rate_schedule.py +8 -4
- mindspore/nn/loss/loss.py +58 -55
- mindspore/nn/optim/ada_grad.py +7 -5
- mindspore/nn/optim/adadelta.py +11 -9
- mindspore/nn/optim/adafactor.py +1 -1
- mindspore/nn/optim/adam.py +19 -15
- mindspore/nn/optim/adamax.py +8 -7
- mindspore/nn/optim/adasum.py +5 -5
- mindspore/nn/optim/asgd.py +3 -1
- mindspore/nn/optim/ftrl.py +11 -9
- mindspore/nn/optim/lamb.py +1 -1
- mindspore/nn/optim/lars.py +1 -4
- mindspore/nn/optim/lazyadam.py +12 -10
- mindspore/nn/optim/momentum.py +7 -6
- mindspore/nn/optim/optimizer.py +3 -3
- mindspore/nn/optim/proximal_ada_grad.py +12 -10
- mindspore/nn/optim/rmsprop.py +13 -12
- mindspore/nn/optim/rprop.py +11 -9
- mindspore/nn/optim/sgd.py +9 -6
- mindspore/nn/optim/tft_wrapper.py +5 -2
- mindspore/nn/optim/thor.py +2 -1
- mindspore/nn/probability/bijector/bijector.py +17 -11
- mindspore/nn/probability/bijector/gumbel_cdf.py +5 -5
- mindspore/nn/probability/bijector/invert.py +2 -2
- mindspore/nn/probability/bijector/scalar_affine.py +3 -3
- mindspore/nn/probability/bijector/softplus.py +3 -2
- mindspore/nn/probability/distribution/beta.py +3 -3
- mindspore/nn/probability/distribution/categorical.py +1 -1
- mindspore/nn/probability/distribution/cauchy.py +4 -2
- mindspore/nn/probability/distribution/exponential.py +6 -7
- mindspore/nn/probability/distribution/gamma.py +2 -2
- mindspore/nn/probability/distribution/gumbel.py +2 -2
- mindspore/nn/probability/distribution/half_normal.py +5 -3
- mindspore/nn/probability/distribution/logistic.py +5 -3
- mindspore/nn/probability/distribution/poisson.py +1 -1
- mindspore/nn/probability/distribution/uniform.py +5 -3
- mindspore/nn/reinforcement/_tensors_queue.py +1 -1
- mindspore/nn/reinforcement/tensor_array.py +1 -1
- mindspore/nn/utils/init.py +13 -11
- mindspore/nn/wrap/__init__.py +6 -6
- mindspore/nn/wrap/cell_wrapper.py +181 -122
- mindspore/nn/wrap/grad_reducer.py +45 -36
- mindspore/nn/wrap/loss_scale.py +6 -7
- mindspore/numpy/array_creations.py +63 -65
- mindspore/numpy/array_ops.py +149 -144
- mindspore/numpy/logic_ops.py +41 -42
- mindspore/numpy/math_ops.py +361 -359
- mindspore/numpy/utils.py +17 -18
- mindspore/numpy/utils_const.py +5 -6
- mindspore/opencv_core452.dll +0 -0
- mindspore/opencv_imgcodecs452.dll +0 -0
- mindspore/opencv_imgproc452.dll +0 -0
- mindspore/ops/__init__.py +5 -3
- mindspore/ops/_grad_experimental/grad_comm_ops.py +112 -16
- mindspore/ops/_grad_experimental/grad_debug_ops.py +14 -2
- mindspore/ops/_grad_experimental/grad_inner_ops.py +9 -0
- mindspore/ops/_grad_experimental/grad_math_ops.py +2 -1
- mindspore/ops/_grad_experimental/taylor_rule.py +29 -0
- mindspore/ops/_op_impl/cpu/__init__.py +1 -0
- mindspore/ops/_op_impl/cpu/raise_op.py +28 -0
- mindspore/ops/_register_for_op.py +0 -11
- mindspore/{ops_generate → ops/_utils}/arg_dtype_cast.py +123 -4
- mindspore/{ops_generate → ops/_utils}/arg_handler.py +3 -65
- mindspore/ops/_vmap/vmap_array_ops.py +52 -25
- mindspore/ops/_vmap/vmap_base.py +0 -2
- mindspore/ops/_vmap/vmap_grad_nn_ops.py +21 -14
- mindspore/ops/_vmap/vmap_math_ops.py +15 -16
- mindspore/ops/_vmap/vmap_nn_ops.py +29 -42
- mindspore/ops/auto_generate/__init__.py +4 -3
- mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +258 -46
- mindspore/ops/auto_generate/gen_extend_func.py +757 -185
- mindspore/ops/auto_generate/gen_ops_def.py +4197 -2243
- mindspore/ops/auto_generate/gen_ops_prim.py +16976 -6055
- mindspore/ops/auto_generate/pyboost_inner_prim.py +221 -87
- mindspore/ops/composite/__init__.py +2 -1
- mindspore/ops/composite/base.py +20 -25
- mindspore/ops/composite/math_ops.py +6 -16
- mindspore/ops/composite/multitype_ops/__init__.py +5 -2
- mindspore/ops/composite/multitype_ops/_compile_utils.py +228 -30
- mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -2
- mindspore/ops/composite/multitype_ops/add_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/div_impl.py +6 -4
- mindspore/ops/composite/multitype_ops/equal_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/floordiv_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/getitem_impl.py +3 -2
- mindspore/ops/composite/multitype_ops/greater_equal_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/greater_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/in_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/invert_impl.py +50 -0
- mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/less_equal_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/less_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/logic_not_impl.py +3 -2
- mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/mod_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/mul_impl.py +3 -2
- mindspore/ops/composite/multitype_ops/negative_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/not_equal_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/not_in_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/ones_like_impl.py +18 -0
- mindspore/ops/composite/multitype_ops/pow_impl.py +2 -30
- mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/sub_impl.py +2 -1
- mindspore/ops/function/__init__.py +40 -2
- mindspore/ops/function/_add_attr_func.py +58 -0
- mindspore/ops/function/array_func.py +2089 -2403
- mindspore/ops/function/clip_func.py +80 -23
- mindspore/ops/function/debug_func.py +57 -57
- mindspore/ops/function/grad/__init__.py +1 -0
- mindspore/ops/function/grad/grad_func.py +104 -71
- mindspore/ops/function/image_func.py +2 -2
- mindspore/ops/function/linalg_func.py +47 -78
- mindspore/ops/function/math_func.py +4351 -3813
- mindspore/ops/function/nn_func.py +1712 -637
- mindspore/ops/function/other_func.py +159 -1
- mindspore/ops/function/parameter_func.py +18 -84
- mindspore/ops/function/random_func.py +452 -387
- mindspore/ops/function/reshard_func.py +4 -70
- mindspore/ops/function/sparse_func.py +3 -3
- mindspore/ops/function/sparse_unary_func.py +6 -6
- mindspore/ops/function/spectral_func.py +25 -58
- mindspore/ops/function/vmap_func.py +26 -18
- mindspore/ops/functional.py +23 -7
- mindspore/ops/functional_overload.py +1548 -0
- mindspore/ops/op_info_register.py +32 -244
- mindspore/ops/operations/__init__.py +23 -15
- mindspore/ops/operations/_custom_ops_utils.py +235 -0
- mindspore/ops/operations/_embedding_cache_ops.py +4 -4
- mindspore/ops/operations/_grad_ops.py +2 -43
- mindspore/ops/operations/_infer_ops.py +2 -1
- mindspore/ops/operations/_inner_ops.py +43 -84
- mindspore/ops/operations/_ms_kernel.py +4 -10
- mindspore/ops/operations/_rl_inner_ops.py +1 -1
- mindspore/ops/operations/_scalar_ops.py +3 -2
- mindspore/ops/operations/_sequence_ops.py +1 -1
- mindspore/ops/operations/_tensor_array.py +1 -1
- mindspore/ops/operations/array_ops.py +81 -324
- mindspore/ops/operations/comm_ops.py +154 -108
- mindspore/ops/operations/custom_ops.py +298 -87
- mindspore/ops/operations/debug_ops.py +157 -59
- mindspore/ops/operations/inner_ops.py +7 -5
- mindspore/ops/operations/linalg_ops.py +1 -57
- mindspore/ops/operations/manually_defined/_inner.py +1 -1
- mindspore/ops/operations/manually_defined/ops_def.py +928 -180
- mindspore/ops/operations/math_ops.py +32 -234
- mindspore/ops/operations/nn_ops.py +212 -531
- mindspore/ops/operations/other_ops.py +62 -9
- mindspore/ops/operations/random_ops.py +13 -7
- mindspore/ops/operations/reshard_ops.py +1 -1
- mindspore/ops/operations/sparse_ops.py +2 -2
- mindspore/ops/primitive.py +66 -53
- mindspore/ops/tensor_method.py +1895 -0
- mindspore/ops_generate/__init__.py +0 -5
- mindspore/ops_generate/aclnn/__init__.py +0 -0
- mindspore/ops_generate/aclnn/aclnn_kernel_register_auto_cc_generator.py +135 -0
- mindspore/ops_generate/aclnn/gen_aclnn_implement.py +257 -0
- mindspore/ops_generate/api/__init__.py +0 -0
- mindspore/ops_generate/api/add_tensor_docs_generator.py +56 -0
- mindspore/ops_generate/api/cpp_create_prim_instance_helper_generator.py +105 -0
- mindspore/ops_generate/api/functional_map_cpp_generator.py +504 -0
- mindspore/ops_generate/api/functional_overload_py_generator.py +112 -0
- mindspore/ops_generate/api/functions_cc_generator.py +237 -0
- mindspore/ops_generate/api/gen_api.py +103 -0
- mindspore/ops_generate/api/op_api_proto.py +235 -0
- mindspore/ops_generate/api/tensor_func_reg_cpp_generator.py +461 -0
- mindspore/ops_generate/common/__init__.py +0 -0
- mindspore/ops_generate/common/base_generator.py +11 -0
- mindspore/ops_generate/common/gen_constants.py +91 -0
- mindspore/ops_generate/common/gen_utils.py +348 -0
- mindspore/ops_generate/common/op_proto.py +473 -0
- mindspore/ops_generate/common/template.py +523 -0
- mindspore/ops_generate/gen_ops.py +22 -1069
- mindspore/ops_generate/op_def/__init__.py +0 -0
- mindspore/ops_generate/op_def/gen_op_def.py +90 -0
- mindspore/ops_generate/op_def/lite_ops_cpp_generator.py +191 -0
- mindspore/ops_generate/op_def/ops_def_cc_generator.py +296 -0
- mindspore/ops_generate/op_def/ops_def_h_generator.py +74 -0
- mindspore/ops_generate/op_def/ops_name_h_generator.py +83 -0
- mindspore/ops_generate/op_def/ops_primitive_h_generator.py +125 -0
- mindspore/ops_generate/op_def_py/__init__.py +0 -0
- mindspore/ops_generate/op_def_py/gen_op_def_py.py +47 -0
- mindspore/ops_generate/op_def_py/op_def_py_generator.py +132 -0
- mindspore/ops_generate/op_def_py/op_prim_py_generator.py +489 -0
- mindspore/ops_generate/pyboost/__init__.py +0 -0
- mindspore/ops_generate/pyboost/auto_grad_impl_cc_generator.py +139 -0
- mindspore/ops_generate/pyboost/auto_grad_reg_cc_generator.py +93 -0
- mindspore/ops_generate/pyboost/gen_pyboost_func.py +175 -0
- mindspore/ops_generate/pyboost/op_template_parser.py +517 -0
- mindspore/ops_generate/pyboost/pyboost_functions_cpp_generator.py +407 -0
- mindspore/ops_generate/pyboost/pyboost_functions_h_generator.py +100 -0
- mindspore/ops_generate/pyboost/pyboost_functions_py_generator.py +148 -0
- mindspore/ops_generate/pyboost/pyboost_grad_function_cpp_generator.py +155 -0
- mindspore/ops_generate/pyboost/pyboost_inner_prim_generator.py +132 -0
- mindspore/ops_generate/pyboost/pyboost_native_grad_functions_generator.py +272 -0
- mindspore/ops_generate/pyboost/pyboost_op_cpp_code_generator.py +938 -0
- mindspore/ops_generate/pyboost/pyboost_overload_functions_cpp_generator.py +357 -0
- mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +179 -36
- mindspore/ops_generate/resources/__init__.py +0 -0
- mindspore/ops_generate/resources/resource_list.py +30 -0
- mindspore/ops_generate/resources/resource_loader.py +36 -0
- mindspore/ops_generate/resources/resource_manager.py +64 -0
- mindspore/ops_generate/resources/yaml_loader.py +88 -0
- mindspore/ops_generate/tensor_py_cc_generator.py +122 -0
- mindspore/parallel/__init__.py +7 -3
- mindspore/parallel/_auto_parallel_context.py +159 -40
- mindspore/parallel/_cell_wrapper.py +132 -15
- mindspore/parallel/_parallel_serialization.py +107 -5
- mindspore/parallel/_ps_context.py +1 -1
- mindspore/parallel/_recovery_context.py +7 -2
- mindspore/parallel/_tensor.py +142 -18
- mindspore/parallel/_utils.py +199 -23
- mindspore/parallel/algo_parameter_config.py +4 -4
- mindspore/parallel/auto_parallel.py +732 -0
- mindspore/parallel/checkpoint_convert.py +159 -0
- mindspore/parallel/checkpoint_transform.py +700 -35
- mindspore/parallel/cluster/process_entity/_api.py +276 -50
- mindspore/parallel/cluster/process_entity/_utils.py +41 -6
- mindspore/parallel/cluster/run.py +21 -4
- mindspore/parallel/function/__init__.py +24 -0
- mindspore/parallel/function/reshard_func.py +258 -0
- mindspore/parallel/nn/__init__.py +25 -0
- mindspore/parallel/nn/parallel_cell_wrapper.py +263 -0
- mindspore/parallel/nn/parallel_grad_reducer.py +169 -0
- mindspore/parallel/parameter_broadcast.py +25 -14
- mindspore/parallel/shard.py +137 -59
- mindspore/parallel/transform_safetensors.py +364 -305
- mindspore/pgodb140.dll +0 -0
- mindspore/pgort140.dll +0 -0
- mindspore/profiler/__init__.py +22 -5
- mindspore/profiler/analysis/__init__.py +0 -0
- mindspore/profiler/analysis/parser/__init__.py +0 -0
- mindspore/profiler/analysis/parser/ascend_cann_parser.py +170 -0
- mindspore/profiler/analysis/parser/base_parser.py +158 -0
- mindspore/profiler/analysis/parser/framework_cann_relation_parser.py +45 -0
- mindspore/profiler/analysis/parser/ms_framework_parser.py +142 -0
- mindspore/profiler/analysis/parser/ms_minddata_parser.py +145 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/__init__.py +0 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +264 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/base_timeline_assembler.py +40 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +109 -0
- mindspore/profiler/analysis/parser/timeline_creator/__init__.py +0 -0
- mindspore/profiler/analysis/parser/timeline_creator/base_timeline_creator.py +44 -0
- mindspore/profiler/analysis/parser/timeline_creator/cpu_op_timeline_creator.py +90 -0
- mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +76 -0
- mindspore/profiler/analysis/parser/timeline_creator/msprof_timeline_creator.py +103 -0
- mindspore/profiler/analysis/parser/timeline_creator/scope_layer_timeline_creator.py +134 -0
- mindspore/profiler/analysis/parser/timeline_event/__init__.py +0 -0
- mindspore/profiler/analysis/parser/timeline_event/base_event.py +233 -0
- mindspore/profiler/analysis/parser/timeline_event/cpu_op_event.py +47 -0
- mindspore/profiler/analysis/parser/timeline_event/flow_event.py +36 -0
- mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +415 -0
- mindspore/profiler/analysis/parser/timeline_event/msprof_event.py +73 -0
- mindspore/profiler/analysis/parser/timeline_event/scope_layer_event.py +53 -0
- mindspore/profiler/analysis/parser/timeline_event/timeline_event_pool.py +146 -0
- mindspore/profiler/analysis/task_manager.py +131 -0
- mindspore/profiler/analysis/time_converter.py +84 -0
- mindspore/profiler/analysis/viewer/__init__.py +0 -0
- mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +372 -0
- mindspore/profiler/analysis/viewer/ascend_integrate_viewer.py +87 -0
- mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +250 -0
- mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +320 -0
- mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +327 -0
- mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +376 -0
- mindspore/profiler/analysis/viewer/ascend_timeline_viewer.py +58 -0
- mindspore/profiler/analysis/viewer/base_viewer.py +26 -0
- mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +96 -0
- mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +581 -0
- mindspore/profiler/analysis/work_flow.py +73 -0
- mindspore/profiler/common/ascend_msprof_exporter.py +139 -0
- mindspore/profiler/common/command_executor.py +90 -0
- mindspore/profiler/common/constant.py +186 -3
- mindspore/profiler/common/file_manager.py +208 -0
- mindspore/profiler/common/log.py +130 -0
- mindspore/profiler/common/msprof_cmd_tool.py +221 -0
- mindspore/profiler/common/path_manager.py +395 -0
- mindspore/profiler/common/process_bar.py +168 -0
- mindspore/profiler/common/process_pool.py +9 -3
- mindspore/profiler/common/profiler_context.py +500 -0
- mindspore/profiler/common/profiler_info.py +304 -0
- mindspore/profiler/common/profiler_meta_data.py +74 -0
- mindspore/profiler/common/profiler_output_path.py +284 -0
- mindspore/profiler/common/profiler_parameters.py +251 -0
- mindspore/profiler/common/profiler_path_manager.py +179 -0
- mindspore/profiler/common/record_function.py +76 -0
- mindspore/profiler/common/tlv_decoder.py +76 -0
- mindspore/profiler/common/util.py +75 -2
- mindspore/profiler/dynamic_profiler.py +341 -75
- mindspore/profiler/envprofiler.py +163 -0
- mindspore/profiler/experimental_config.py +197 -0
- mindspore/profiler/mstx.py +242 -0
- mindspore/profiler/platform/__init__.py +21 -0
- mindspore/profiler/platform/base_profiler.py +40 -0
- mindspore/profiler/platform/cpu_profiler.py +124 -0
- mindspore/profiler/platform/gpu_profiler.py +74 -0
- mindspore/profiler/platform/npu_profiler.py +335 -0
- mindspore/profiler/profiler.py +1073 -90
- mindspore/profiler/profiler_action_controller.py +187 -0
- mindspore/profiler/profiler_interface.py +118 -0
- mindspore/profiler/schedule.py +243 -0
- mindspore/rewrite/api/node.py +15 -13
- mindspore/rewrite/api/symbol_tree.py +2 -3
- mindspore/run_check/_check_version.py +27 -20
- mindspore/run_check/run_check.py +1 -1
- mindspore/runtime/__init__.py +37 -0
- mindspore/runtime/device.py +27 -0
- mindspore/runtime/event.py +209 -0
- mindspore/runtime/executor.py +177 -0
- mindspore/runtime/memory.py +416 -0
- mindspore/runtime/stream.py +460 -0
- mindspore/runtime/thread_bind_core.py +401 -0
- mindspore/safeguard/rewrite_obfuscation.py +12 -9
- mindspore/swresample-4.dll +0 -0
- mindspore/swscale-6.dll +0 -0
- mindspore/tbbmalloc.dll +0 -0
- mindspore/tinyxml2.dll +0 -0
- mindspore/train/__init__.py +8 -8
- mindspore/train/_utils.py +96 -27
- mindspore/train/amp.py +9 -5
- mindspore/train/callback/__init__.py +2 -2
- mindspore/train/callback/_callback.py +2 -16
- mindspore/train/callback/_checkpoint.py +53 -55
- mindspore/train/callback/_cluster_monitor.py +14 -18
- mindspore/train/callback/_early_stop.py +1 -1
- mindspore/train/callback/_flops_collector.py +103 -68
- mindspore/train/callback/_history.py +8 -5
- mindspore/train/callback/_lambda_callback.py +2 -2
- mindspore/train/callback/_landscape.py +0 -3
- mindspore/train/callback/_loss_monitor.py +2 -1
- mindspore/train/callback/_on_request_exit.py +6 -5
- mindspore/train/callback/_reduce_lr_on_plateau.py +11 -6
- mindspore/train/callback/_summary_collector.py +52 -19
- mindspore/train/callback/_time_monitor.py +2 -1
- mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +228 -108
- mindspore/train/data_sink.py +25 -2
- mindspore/train/dataset_helper.py +15 -16
- mindspore/train/loss_scale_manager.py +8 -7
- mindspore/train/metrics/accuracy.py +3 -3
- mindspore/train/metrics/confusion_matrix.py +9 -9
- mindspore/train/metrics/error.py +3 -3
- mindspore/train/metrics/hausdorff_distance.py +4 -4
- mindspore/train/metrics/mean_surface_distance.py +3 -3
- mindspore/train/metrics/metric.py +0 -12
- mindspore/train/metrics/occlusion_sensitivity.py +4 -2
- mindspore/train/metrics/precision.py +11 -10
- mindspore/train/metrics/recall.py +9 -9
- mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
- mindspore/train/mind_ir_pb2.py +174 -46
- mindspore/train/model.py +269 -136
- mindspore/train/serialization.py +622 -978
- mindspore/train/summary/_summary_adapter.py +2 -2
- mindspore/train/summary/summary_record.py +2 -3
- mindspore/train/train_thor/model_thor.py +1 -1
- mindspore/turbojpeg.dll +0 -0
- mindspore/utils/__init__.py +6 -3
- mindspore/utils/dryrun.py +140 -0
- mindspore/utils/hooks.py +81 -0
- mindspore/utils/runtime_execution_order_check.py +552 -0
- mindspore/utils/utils.py +138 -4
- mindspore/vcmeta.dll +0 -0
- mindspore/vcruntime140.dll +0 -0
- mindspore/vcruntime140_1.dll +0 -0
- mindspore/version.py +1 -1
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/METADATA +3 -3
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/RECORD +587 -418
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/entry_points.txt +1 -1
- mindspore/_install_custom.py +0 -43
- mindspore/common/_register_for_adapter.py +0 -74
- mindspore/common/_tensor_overload.py +0 -139
- mindspore/mindspore_np_dtype.dll +0 -0
- mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
- mindspore/ops/auto_generate/gen_arg_handler.py +0 -197
- mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
- mindspore/ops_generate/gen_aclnn_implement.py +0 -263
- mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
- mindspore/ops_generate/gen_pyboost_func.py +0 -1052
- mindspore/ops_generate/gen_utils.py +0 -209
- mindspore/ops_generate/op_proto.py +0 -145
- mindspore/ops_generate/template.py +0 -261
- mindspore/profiler/envprofiling.py +0 -254
- mindspore/profiler/profiling.py +0 -1926
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/WHEEL +0 -0
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
# Copyright 2024 Huawei Technologies Co., Ltd
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
# ============================================================================
|
|
15
|
+
|
|
16
|
+
"""compile custom kernel with ninja"""
|
|
17
|
+
|
|
18
|
+
import os
|
|
19
|
+
import shlex
|
|
20
|
+
import subprocess
|
|
21
|
+
import sysconfig
|
|
22
|
+
import time
|
|
23
|
+
import stat
|
|
24
|
+
from mindspore import log as logger
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class VersionManager:
|
|
28
|
+
"""version manager"""
|
|
29
|
+
|
|
30
|
+
def __init__(self):
|
|
31
|
+
self.entries = {} # module_name : (version, hash)
|
|
32
|
+
|
|
33
|
+
def _get_version(self, module_name):
|
|
34
|
+
"""get version"""
|
|
35
|
+
return self.entries.get(module_name, (None, None))[0]
|
|
36
|
+
|
|
37
|
+
def _update_version_if_changed(self, module_name, sources, build_args, build_dir):
|
|
38
|
+
"""update version if changed"""
|
|
39
|
+
hash_value = self._update_hash(0, build_dir)
|
|
40
|
+
hash_value = self._update_sources_hash(hash_value, sources)
|
|
41
|
+
hash_value = self._update_args_hash(hash_value, build_args)
|
|
42
|
+
|
|
43
|
+
entry = self.entries.get(module_name)
|
|
44
|
+
if entry is None:
|
|
45
|
+
self.entries[module_name] = entry = (0, hash_value)
|
|
46
|
+
elif hash_value != entry[1]:
|
|
47
|
+
self.entries[module_name] = entry = (entry[0] + 1, hash_value)
|
|
48
|
+
|
|
49
|
+
return entry[0]
|
|
50
|
+
|
|
51
|
+
def _update_hash(self, seed, value):
|
|
52
|
+
"""update hash value"""
|
|
53
|
+
# Good old boost::hash_combine
|
|
54
|
+
return seed ^ (hash(value) + 0x9e3779b9 + (seed << 6) + (seed >> 2))
|
|
55
|
+
|
|
56
|
+
def _update_sources_hash(self, hash_value, sources):
|
|
57
|
+
"""hash source files"""
|
|
58
|
+
for filename in sources:
|
|
59
|
+
with open(filename) as file:
|
|
60
|
+
hash_value = self._update_hash(hash_value, file.read())
|
|
61
|
+
return hash_value
|
|
62
|
+
|
|
63
|
+
def _update_args_hash(self, hash_value, build_args):
|
|
64
|
+
"""hash build arguments"""
|
|
65
|
+
for group in build_args:
|
|
66
|
+
if group:
|
|
67
|
+
for argument in group:
|
|
68
|
+
hash_value = self._update_hash(hash_value, argument)
|
|
69
|
+
return hash_value
|
|
70
|
+
|
|
71
|
+
def check_version(self, name, sources, cflags, ldflags, include_paths, build_dir):
|
|
72
|
+
"""check version"""
|
|
73
|
+
old_version = self._get_version(name)
|
|
74
|
+
version = self._update_version_if_changed(name, sources, [cflags, ldflags, include_paths], build_dir)
|
|
75
|
+
logger.info(f'Build module {name}, version={version}')
|
|
76
|
+
if version > 0:
|
|
77
|
+
if version != old_version:
|
|
78
|
+
logger.info(
|
|
79
|
+
f'The conditions for extension module {name} have changed. '
|
|
80
|
+
f'Updating to version {version} and re-building as {name}_v{version}.'
|
|
81
|
+
)
|
|
82
|
+
name = f'{name}_v{version}'
|
|
83
|
+
|
|
84
|
+
if version != old_version:
|
|
85
|
+
return True
|
|
86
|
+
logger.info(f'No modifications detected for extension module {name}')
|
|
87
|
+
return False
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
version_manager = VersionManager()
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
class FileLocker:
|
|
94
|
+
"""FileLocker"""
|
|
95
|
+
|
|
96
|
+
def __init__(self, build_dir):
|
|
97
|
+
"""FileLocker"""
|
|
98
|
+
self.lock_file_name = os.path.join(build_dir, 'build.lock')
|
|
99
|
+
self.lock_fd = None
|
|
100
|
+
|
|
101
|
+
def try_lock(self):
|
|
102
|
+
"""Acquire a file-based lock."""
|
|
103
|
+
try:
|
|
104
|
+
mode = stat.S_IRUSR | stat.S_IWUSR
|
|
105
|
+
self.lock_fd = os.open(self.lock_file_name, os.O_CREAT | os.O_EXCL, mode)
|
|
106
|
+
return True
|
|
107
|
+
except FileExistsError:
|
|
108
|
+
return False
|
|
109
|
+
|
|
110
|
+
def release_lock(self):
|
|
111
|
+
"""Release the file-based lock."""
|
|
112
|
+
if self.lock_fd is not None:
|
|
113
|
+
os.close(self.lock_fd)
|
|
114
|
+
self.lock_fd = None
|
|
115
|
+
os.remove(self.lock_file_name)
|
|
116
|
+
|
|
117
|
+
def wait(self):
|
|
118
|
+
"""Wait until lock is released."""
|
|
119
|
+
while os.path.exists(self.lock_file_name):
|
|
120
|
+
time.sleep(0.5)
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
class ExtensionBuilder:
|
|
124
|
+
"""ExtensionBuilder"""
|
|
125
|
+
|
|
126
|
+
def __init__(self, build_dir):
|
|
127
|
+
"""ExtensionBuilder"""
|
|
128
|
+
self.build_dir = build_dir
|
|
129
|
+
|
|
130
|
+
def _compile(self, name, sources, cflags, ldflags, include_paths):
|
|
131
|
+
"""Compile."""
|
|
132
|
+
if version_manager.check_version(name, sources, cflags, ldflags, include_paths, self.build_dir):
|
|
133
|
+
locker = FileLocker(self.build_dir)
|
|
134
|
+
if locker.try_lock():
|
|
135
|
+
try:
|
|
136
|
+
self._write_ninja_file_and_build_library(name, sources, cflags, ldflags, include_paths)
|
|
137
|
+
finally:
|
|
138
|
+
locker.release_lock()
|
|
139
|
+
else:
|
|
140
|
+
locker.wait()
|
|
141
|
+
logger.info(f'Loading extension module {name}...')
|
|
142
|
+
|
|
143
|
+
def _verify_ninja_availability(self):
|
|
144
|
+
"""Check ninja is available."""
|
|
145
|
+
try:
|
|
146
|
+
subprocess.check_output('ninja --version'.split())
|
|
147
|
+
except Exception:
|
|
148
|
+
raise RuntimeError("Ninja is required to load C++ extensions")
|
|
149
|
+
|
|
150
|
+
def _write_ninja_file_and_build_library(self, module_name, sources, cflags, ldflags, include_paths):
|
|
151
|
+
"""Write ninja file and build library."""
|
|
152
|
+
self._verify_ninja_availability()
|
|
153
|
+
|
|
154
|
+
ninja_build_file = os.path.join(self.build_dir, 'build.ninja')
|
|
155
|
+
logger.info(f'Save ninja build file {ninja_build_file}.')
|
|
156
|
+
self._write_ninja_file(ninja_build_file, module_name, sources, cflags, ldflags, include_paths)
|
|
157
|
+
|
|
158
|
+
logger.info(f'Building extension module {module_name}.')
|
|
159
|
+
self._run_ninja_build(module_name)
|
|
160
|
+
|
|
161
|
+
def _write_ninja_file(self, fname, name, sources, extra_cflags, extra_ldflags, extra_include_paths):
|
|
162
|
+
"""Write ninja file."""
|
|
163
|
+
python_include_path = sysconfig.get_path('include', scheme='posix_prefix')
|
|
164
|
+
python_includes = [python_include_path] if python_include_path is not None else []
|
|
165
|
+
cflags = [f'-DMS_EXTENSION_NAME={name}', "-D_GLIBCXX_USE_CXX11_ABI=0"]
|
|
166
|
+
cflags += [f'-I{shlex.quote(os.path.abspath(include.strip()))}' for include in extra_include_paths]
|
|
167
|
+
cflags += [f'-isystem {shlex.quote(include)}' for include in python_includes]
|
|
168
|
+
cflags += ['-fPIC', '-std=c++17']
|
|
169
|
+
cflags += extra_cflags
|
|
170
|
+
cflags = [flag.strip() for flag in cflags]
|
|
171
|
+
|
|
172
|
+
# '/path/to/file.cpp' -> 'file'
|
|
173
|
+
objs = [os.path.splitext(os.path.basename(src))[0] + ".o" for src in sources]
|
|
174
|
+
sources = [os.path.abspath(file) for file in sources]
|
|
175
|
+
ldflags = ['-shared'] + [flag.strip() for flag in extra_ldflags]
|
|
176
|
+
target = name + '.so'
|
|
177
|
+
|
|
178
|
+
config = ['ninja_required_version = 1.3']
|
|
179
|
+
config.append('cxx = ' + os.environ.get('CXX', 'g++'))
|
|
180
|
+
|
|
181
|
+
flags = [f'cflags = {" ".join(cflags)}']
|
|
182
|
+
flags.append(f'ldflags = {" ".join(ldflags)}')
|
|
183
|
+
|
|
184
|
+
compile_rule = ['rule compile']
|
|
185
|
+
compile_rule.append(' command = $cxx -MMD -MF $out.d $cflags -c $in -o $out')
|
|
186
|
+
compile_rule.append(' depfile = $out.d')
|
|
187
|
+
compile_rule.append(' deps = gcc')
|
|
188
|
+
|
|
189
|
+
build = [f'build {obj.replace(" ", "$ ")}: compile {src.replace(" ", "$ ")}' for src, obj in zip(sources, objs)]
|
|
190
|
+
|
|
191
|
+
link_rule = ['rule link', ' command = $cxx $in $ldflags -o $out']
|
|
192
|
+
link = [f'build {target}: link {" ".join(objs)}']
|
|
193
|
+
default = [f'default {target}']
|
|
194
|
+
|
|
195
|
+
blocks = [config, flags, compile_rule, link_rule, build, link, default]
|
|
196
|
+
content = "\n\n".join("\n".join(b) for b in blocks) + "\n"
|
|
197
|
+
|
|
198
|
+
if os.path.exists(fname):
|
|
199
|
+
with open(fname) as f:
|
|
200
|
+
old_content = f.read()
|
|
201
|
+
if old_content == content:
|
|
202
|
+
return
|
|
203
|
+
|
|
204
|
+
with open(fname, 'w') as source_file:
|
|
205
|
+
source_file.write(content)
|
|
206
|
+
|
|
207
|
+
def _run_ninja_build(self, module_name):
|
|
208
|
+
"""Run ninja build."""
|
|
209
|
+
cmd = ['ninja', '-v']
|
|
210
|
+
env = os.environ.copy()
|
|
211
|
+
|
|
212
|
+
try:
|
|
213
|
+
subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=self.build_dir, check=True, env=env)
|
|
214
|
+
# If the build succeeds, do nothing with the output (silent)
|
|
215
|
+
except subprocess.CalledProcessError as e:
|
|
216
|
+
# Capture the error details
|
|
217
|
+
stderr_output = e.stderr.decode() if e.stderr else ""
|
|
218
|
+
stdout_output = e.stdout.decode() if e.stdout else ""
|
|
219
|
+
full_output = stderr_output + stdout_output
|
|
220
|
+
|
|
221
|
+
# Format the error message
|
|
222
|
+
msg = f"Error building extension '{module_name}': {full_output}"
|
|
223
|
+
|
|
224
|
+
# In multi-card situation, only one process build the library.
|
|
225
|
+
# When building failed, the old extension library should be removed.
|
|
226
|
+
so_file = os.path.join(self.build_dir, f"{module_name}.so")
|
|
227
|
+
if os.path.exists(so_file):
|
|
228
|
+
os.remove(so_file)
|
|
229
|
+
raise RuntimeError(msg) from e
|
|
230
|
+
|
|
231
|
+
def build(self, module_name, sources, extra_cflags=None, extra_ldflags=None, extra_include_paths=None):
|
|
232
|
+
"""Build module."""
|
|
233
|
+
src = [sources] if isinstance(sources, str) else sources
|
|
234
|
+
self._compile(module_name, src, extra_cflags, extra_ldflags, extra_include_paths)
|
|
235
|
+
return os.path.join(self.build_dir, f"{module_name}.so")
|
|
@@ -27,7 +27,7 @@ class UpdateCache(PrimitiveWithCheck):
|
|
|
27
27
|
The difference is that UpdateCache will not update when indices < 0 or indices >= max_num.
|
|
28
28
|
|
|
29
29
|
Inputs:
|
|
30
|
-
- **input_x** (Parameter) - Parameter which is going to be updated.
|
|
30
|
+
- **input_x** (Union[Parameter, Tensor]) - Parameter or Tensor which is going to be updated.
|
|
31
31
|
- **indices** (Tensor) - Update indices of input_x.
|
|
32
32
|
- **updates** (Tensor) - The update values.
|
|
33
33
|
|
|
@@ -148,7 +148,7 @@ class CacheSwapTable(PrimitiveWithCheck):
|
|
|
148
148
|
Delete a hashmap entry,and insert a new key to hashmap, return the key and value of delete entry.
|
|
149
149
|
|
|
150
150
|
Inputs:
|
|
151
|
-
- **cache_table** (Parameter) - The cache table which is on device.
|
|
151
|
+
- **cache_table** (Union[Parameter, Tensor]) - The cache table which is on device.
|
|
152
152
|
- **swap_cache_idx** (Tensor) - The index of table which need to swap. -1 is skipped.
|
|
153
153
|
- **miss_value** (int) - The values which arg going to swap into cache table.
|
|
154
154
|
|
|
@@ -227,10 +227,10 @@ class MapCacheIdx(PrimitiveWithCheck):
|
|
|
227
227
|
|
|
228
228
|
class DynamicAssign(PrimitiveWithCheck):
|
|
229
229
|
"""
|
|
230
|
-
Assigns `Parameter` with a value, the `value` can have a dynamic shape.
|
|
230
|
+
Assigns `Parameter` or `Tensor` with a value, the `value` can have a dynamic shape.
|
|
231
231
|
|
|
232
232
|
Inputs:
|
|
233
|
-
- **variable** (Parameter) - The `Parameter`.
|
|
233
|
+
- **variable** (Union[Parameter, Tensor]) - The `Parameter` or `Tensor`.
|
|
234
234
|
- **value** (Tensor) - The value to be assigned.
|
|
235
235
|
|
|
236
236
|
Outputs:
|
|
@@ -30,13 +30,13 @@ from mindspore.communication.management import GlobalComm
|
|
|
30
30
|
from mindspore.common._utils import is_shape_unknown, is_dim_unknown
|
|
31
31
|
from ..auto_generate import (AbsGrad, ACosGrad, LogitGrad, AcoshGrad, AsinGrad, AsinhGrad, ReciprocalGrad, RsqrtGrad,
|
|
32
32
|
SqrtGrad, BatchNormGrad, BatchNormGradGrad, BiasAddGrad, GeLUGrad, FastGeLUGrad,
|
|
33
|
-
AvgPoolGrad, MinimumGrad, LogSoftmaxGrad, PReLUGrad, ReluGrad, ReLU6Grad, EluGrad,
|
|
33
|
+
AvgPoolGrad, MinimumGrad, LogSoftmaxGrad, GluGrad, PReLUGrad, ReluGrad, ReLU6Grad, EluGrad,
|
|
34
34
|
GatherDGradV2, ResizeBilinearGrad, ResizeLinear1DGrad, ResizeNearestNeighborV2Grad,
|
|
35
35
|
SigmoidGrad, HSwishGrad, NLLLossGrad, AtanGrad, GridSampler3DGrad, GridSampler2DGrad,
|
|
36
36
|
ResizeBicubicGrad, HSigmoidGrad, CholeskyGrad, ResizeNearestNeighborGrad, LayerNormGrad,
|
|
37
37
|
HShrinkGrad, LayerNormGradGrad, SiLUGrad, MaximumGrad, MaximumGradGrad, RmsNormGrad,
|
|
38
38
|
FlashAttentionScoreGrad, UpsampleTrilinear3DGrad, UpsampleNearest3DGrad, MaskedSelectGrad,
|
|
39
|
-
BinaryCrossEntropyGrad, SoftShrinkGrad, SeluGrad)
|
|
39
|
+
BinaryCrossEntropyGrad, SoftShrinkGrad, SoftMarginLossGrad, SeluGrad, SmoothL1LossGrad)
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
class SparseFillEmptyRowsGrad(Primitive):
|
|
@@ -1639,25 +1639,6 @@ class SliceGrad(PrimitiveWithInfer):
|
|
|
1639
1639
|
'value': None}
|
|
1640
1640
|
|
|
1641
1641
|
|
|
1642
|
-
class SmoothL1LossGrad(Primitive):
|
|
1643
|
-
"""Computes gradient for prediction on SmoothL1Loss."""
|
|
1644
|
-
|
|
1645
|
-
@prim_attr_register
|
|
1646
|
-
def __init__(self, beta=1.0, reduction='none'):
|
|
1647
|
-
self.add_prim_attr('sigma', self.beta)
|
|
1648
|
-
self.reduction = validator.check_string(
|
|
1649
|
-
reduction, ['none', 'sum', 'mean'], 'reduction', self.name)
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
class SoftMarginLossGrad(Primitive):
|
|
1653
|
-
"""Computes gradient for prediction on SoftMarginLoss."""
|
|
1654
|
-
|
|
1655
|
-
@prim_attr_register
|
|
1656
|
-
def __init__(self, reduction="mean"):
|
|
1657
|
-
self.init_prim_io_names(inputs=['predict', 'label', "dout"], outputs=['gradient'])
|
|
1658
|
-
self.reduction = validator.check_string(reduction, ['none', 'sum', 'mean'], 'reduction', self.name)
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
1642
|
class StridedSliceGrad(Primitive):
|
|
1662
1643
|
"""
|
|
1663
1644
|
Performs grad of StridedSlice operation.
|
|
@@ -1962,15 +1943,6 @@ class MvlgammaGrad(Primitive):
|
|
|
1962
1943
|
self.p = validator.check_value_type('p', p, [int], self.name)
|
|
1963
1944
|
|
|
1964
1945
|
|
|
1965
|
-
class CdistGrad(Primitive):
|
|
1966
|
-
"""Computes gradient for Cdist."""
|
|
1967
|
-
|
|
1968
|
-
@prim_attr_register
|
|
1969
|
-
def __init__(self, p=2.0):
|
|
1970
|
-
validator.check_value_type("p", p, [float], self.name)
|
|
1971
|
-
self.init_prim_io_names(inputs=['grad', 'input_x', 'input_y', 'cdist'], outputs=['output'])
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
1946
|
class PdistGrad(Primitive):
|
|
1975
1947
|
"""Computes gradient for Pdist operation.
|
|
1976
1948
|
|
|
@@ -2908,19 +2880,6 @@ class AffineGridGrad(Primitive):
|
|
|
2908
2880
|
self.init_prim_io_names(inputs=['y_grad', 'x_size'], outputs=['x_grad'])
|
|
2909
2881
|
|
|
2910
2882
|
|
|
2911
|
-
|
|
2912
|
-
class GluGrad(Primitive):
|
|
2913
|
-
"""
|
|
2914
|
-
Computes grad for Glu operation.
|
|
2915
|
-
"""
|
|
2916
|
-
|
|
2917
|
-
@prim_attr_register
|
|
2918
|
-
def __init__(self, axis):
|
|
2919
|
-
self.add_prim_attr("cust_aicpu", self.name)
|
|
2920
|
-
self.init_prim_io_names(inputs=["grads", "x"], outputs=["y"])
|
|
2921
|
-
validator.check_value_type("axis", axis, [int], self.name)
|
|
2922
|
-
|
|
2923
|
-
|
|
2924
2883
|
class MapTensorGetGrad(Primitive):
|
|
2925
2884
|
"""
|
|
2926
2885
|
Computes gradients for MapTensorGet operation.
|
|
@@ -16,4 +16,5 @@
|
|
|
16
16
|
"""Operator of infer net"""
|
|
17
17
|
# pylint: disable=unused-import
|
|
18
18
|
from ..auto_generate import (QuantV2, DynamicQuantExt, QuantBatchMatmul, WeightQuantBatchMatmul, KVCacheScatterUpdate,
|
|
19
|
-
FusedInferAttentionScore, GroupedMatmul, MoeFinalizeRouting, QuantLinearSparse
|
|
19
|
+
FusedInferAttentionScore, GroupedMatmul, MoeFinalizeRouting, QuantLinearSparse,
|
|
20
|
+
MatmulAllReduceAddRmsNorm, MoeGatingTopKSoftmax)
|
|
@@ -21,7 +21,6 @@ import weakref
|
|
|
21
21
|
import numpy as np
|
|
22
22
|
|
|
23
23
|
from mindspore.common import Tensor
|
|
24
|
-
from mindspore.common._stub_tensor import StubTensor
|
|
25
24
|
from mindspore.ops import composite as C
|
|
26
25
|
from mindspore.ops.operations.array_ops import Cast
|
|
27
26
|
from mindspore.ops.operations._scalar_ops import bit_or, bit_and
|
|
@@ -29,15 +28,15 @@ from mindspore.ops import signature as sig
|
|
|
29
28
|
from mindspore.ops.operations.math_ops import _infer_shape_reduce
|
|
30
29
|
from mindspore.ops.primitive import PrimitiveWithCheck, PrimitiveWithInfer, prim_attr_register, Primitive, \
|
|
31
30
|
_run_op, _check_contains_variable
|
|
32
|
-
from mindspore._c_expression import
|
|
31
|
+
from mindspore._c_expression import TensorPy as Tensor_
|
|
33
32
|
from mindspore._c_expression import typing, HookType
|
|
33
|
+
from mindspore._c_expression import pyboost_generator
|
|
34
34
|
from mindspore import _checkparam as validator
|
|
35
35
|
from mindspore.common import dtype as mstype
|
|
36
36
|
from mindspore.common.parameter import Parameter
|
|
37
|
+
from mindspore.common._stub_tensor import _convert_stub
|
|
37
38
|
from mindspore.communication.management import GlobalComm, get_rank, _get_group, get_group_size
|
|
38
39
|
from mindspore.common.api import _pynative_executor
|
|
39
|
-
from mindspore.common._register_for_adapter import ms_adapter_registry
|
|
40
|
-
from mindspore import ops
|
|
41
40
|
from ..auto_generate import TensorCopySlices, SiLU, Cummin, TopKRouter, ExtractImagePatches, DecoderKVCache, \
|
|
42
41
|
PromptKVCache, ApplyCamePart1, ApplyCamePart2, ApplyCamePart3, ApplyCamePart4
|
|
43
42
|
|
|
@@ -79,7 +78,7 @@ class Generator(Primitive):
|
|
|
79
78
|
def __call__(self, cmd, inputs):
|
|
80
79
|
if cmd == 0: # step cmd
|
|
81
80
|
return inputs[0], inputs[1]
|
|
82
|
-
return
|
|
81
|
+
return _convert_stub(pyboost_generator(self, [cmd, inputs]))
|
|
83
82
|
|
|
84
83
|
|
|
85
84
|
class Quant(PrimitiveWithInfer):
|
|
@@ -534,7 +533,8 @@ class ConvertToDynamic(PrimitiveWithCheck):
|
|
|
534
533
|
>>> dynamic_input = self.convert_to_dynamic(input)
|
|
535
534
|
>>> reshaped_input = self.reshape(dynamic_input, new_shape)
|
|
536
535
|
>>>
|
|
537
|
-
>>> ms.set_context(mode=ms.GRAPH_MODE
|
|
536
|
+
>>> ms.set_context(mode=ms.GRAPH_MODE)
|
|
537
|
+
>>> ms.set_device(device_target="CPU")
|
|
538
538
|
>>> input = Tensor(np.array([0, 1, 2, 3])
|
|
539
539
|
>>> new_shape = (2, 2)
|
|
540
540
|
>>> net = TestDynamicNet()
|
|
@@ -585,7 +585,8 @@ class GpuConvertToDynamicShape(PrimitiveWithCheck):
|
|
|
585
585
|
>>> dynamic_shape_input = self.convert_to_dynamic_shape(input)
|
|
586
586
|
>>> reshaped_input = self.reshape(input, new_shape)
|
|
587
587
|
>>>
|
|
588
|
-
>>> ms.set_context(mode=ms.GRAPH_MODE
|
|
588
|
+
>>> ms.set_context(mode=ms.GRAPH_MODE)
|
|
589
|
+
>>> ms.set_device(device_target="GPU")
|
|
589
590
|
>>> input = Tensor(np.array([0, 1, 2, 3])
|
|
590
591
|
>>> new_shape = (2, 2)
|
|
591
592
|
>>> net = TestDynamicShapeReshapeNet()
|
|
@@ -632,7 +633,8 @@ class ErrorOnDynamicShapeInput(PrimitiveWithInfer):
|
|
|
632
633
|
>>> dynamic_shape_input = self.convert_to_dynamic_shape(input)
|
|
633
634
|
>>> self.error_on_dynamic_shape_input(dynamic_shape_input)
|
|
634
635
|
>>>
|
|
635
|
-
>>> ms.set_context(mode=ms.GRAPH_MODE
|
|
636
|
+
>>> ms.set_context(mode=ms.GRAPH_MODE)
|
|
637
|
+
>>> ms.set_device(device_target="GPU")
|
|
636
638
|
>>> input = Tensor(np.array([0])
|
|
637
639
|
>>> net = TestDynamicShapeReshapeNet()
|
|
638
640
|
>>> output = net(input, new_shape)
|
|
@@ -663,17 +665,17 @@ class ErrorOnDynamicShapeInput(PrimitiveWithInfer):
|
|
|
663
665
|
|
|
664
666
|
class SequenceMask(PrimitiveWithCheck):
|
|
665
667
|
"""
|
|
666
|
-
Returns a mask tensor representing the first N positions of each cell.
|
|
668
|
+
Returns a mask tensor representing the first N positions of each cell. The internal element data type is bool.
|
|
667
669
|
|
|
668
670
|
If lengths has shape [d_1, d_2, ..., d_n], then the resulting tensor mask has type and shape
|
|
669
671
|
[d_1, d_2, ..., d_n, maxlen], with mask[i_1, i_2, ..., i_n, j] = (j < lengths[i_1, i_2, ..., i_n])
|
|
670
672
|
|
|
671
673
|
Inputs:
|
|
672
|
-
- **lengths** (Tensor) -
|
|
674
|
+
- **lengths** (Tensor) - The input tensor. All values in this tensor should be
|
|
673
675
|
less than or equal to `maxlen`. Values greater than `maxlen` will be treated as `maxlen`.
|
|
674
676
|
Must be type int32 or int64.
|
|
675
677
|
|
|
676
|
-
- **maxlen** (int) -
|
|
678
|
+
- **maxlen** (int) - Specify the length of the returned tensor. Must be positive and same
|
|
677
679
|
type as elements in `lengths`.
|
|
678
680
|
|
|
679
681
|
Outputs:
|
|
@@ -1407,9 +1409,9 @@ class PsROIPooling(PrimitiveWithInfer):
|
|
|
1407
1409
|
>>> group_size=7)
|
|
1408
1410
|
>>> out, channel_map = psRoIPooling(features, rois)
|
|
1409
1411
|
>>> print(out.shape)
|
|
1410
|
-
|
|
1412
|
+
[4, 21, 7, 7]
|
|
1411
1413
|
>>> print(channel_map.shape)
|
|
1412
|
-
|
|
1414
|
+
[4, 21, 7, 7]
|
|
1413
1415
|
"""
|
|
1414
1416
|
|
|
1415
1417
|
@prim_attr_register
|
|
@@ -1570,7 +1572,29 @@ class CellBackwardHook(PrimitiveWithInfer):
|
|
|
1570
1572
|
# If args is empty, just return.
|
|
1571
1573
|
if not args:
|
|
1572
1574
|
return args
|
|
1573
|
-
|
|
1575
|
+
|
|
1576
|
+
# Collect the indices and values of arguments that are instances of Tensor
|
|
1577
|
+
tensors_idx = []
|
|
1578
|
+
tensors = []
|
|
1579
|
+
for i, arg in enumerate(args):
|
|
1580
|
+
if isinstance(arg, Tensor):
|
|
1581
|
+
tensors_idx.append(i)
|
|
1582
|
+
tensors.append(arg)
|
|
1583
|
+
|
|
1584
|
+
# If there are no Tensor arguments, return the single argument or the original tuple
|
|
1585
|
+
if not tensors:
|
|
1586
|
+
return args[0] if len(args) == 1 else args
|
|
1587
|
+
|
|
1588
|
+
new_tensors = _run_op(self, self.name, tensors)
|
|
1589
|
+
if not isinstance(new_tensors, tuple):
|
|
1590
|
+
new_tensors = (new_tensors,)
|
|
1591
|
+
|
|
1592
|
+
# Replace the original Tensor arguments with the processed ones
|
|
1593
|
+
arg_list = list(args)
|
|
1594
|
+
for idx, val in zip(tensors_idx, new_tensors):
|
|
1595
|
+
arg_list[idx] = val
|
|
1596
|
+
|
|
1597
|
+
return arg_list[0] if len(arg_list) == 1 else tuple(arg_list)
|
|
1574
1598
|
|
|
1575
1599
|
def infer_shape(self, *inputs_shape):
|
|
1576
1600
|
if len(inputs_shape) == 1:
|
|
@@ -1772,7 +1796,8 @@ class KMeansCentroids(PrimitiveWithInfer):
|
|
|
1772
1796
|
>>> import mindspore.nn as nn
|
|
1773
1797
|
>>> from mindspore import Tensor
|
|
1774
1798
|
>>> from mindspore.ops import operations as P
|
|
1775
|
-
>>> ms.set_context(mode=ms.GRAPH_MODE
|
|
1799
|
+
>>> ms.set_context(mode=ms.GRAPH_MODE)
|
|
1800
|
+
>>> ms.set_device(device_target="Ascend")
|
|
1776
1801
|
|
|
1777
1802
|
>>> class Net(nn.Cell):
|
|
1778
1803
|
>>> def __init__(self):
|
|
@@ -2039,6 +2064,8 @@ class CheckBprop(PrimitiveWithInfer):
|
|
|
2039
2064
|
f"which is:{len(yshapes)} but got {len(xshapes)}.")
|
|
2040
2065
|
|
|
2041
2066
|
def shape_equal(shape1, shape2):
|
|
2067
|
+
if -2 in shape1 or -2 in shape2:
|
|
2068
|
+
return True
|
|
2042
2069
|
if len(shape1) != len(shape2):
|
|
2043
2070
|
return False
|
|
2044
2071
|
for shape_axis1, shape_axis2 in zip(shape1, shape2):
|
|
@@ -2226,74 +2253,6 @@ class IsInstance(PrimitiveWithInfer):
|
|
|
2226
2253
|
return out
|
|
2227
2254
|
|
|
2228
2255
|
|
|
2229
|
-
class ConvertToAdapterTensor(Primitive):
|
|
2230
|
-
"""
|
|
2231
|
-
Convert a tensor from MindSpore's Tensor type to MSAdapter's Tensor type,
|
|
2232
|
-
where MSAdapter's Tensor is a subclass of MindSpore's Tensor.
|
|
2233
|
-
|
|
2234
|
-
Inputs:
|
|
2235
|
-
- **x** (Tensor) - The input tensor.
|
|
2236
|
-
|
|
2237
|
-
Outputs:
|
|
2238
|
-
A tensor, whose type is MSAdapter's Tensor.
|
|
2239
|
-
|
|
2240
|
-
Supported Platforms:
|
|
2241
|
-
``Ascend`` ``GPU`` ``CPU``
|
|
2242
|
-
|
|
2243
|
-
Examples:
|
|
2244
|
-
>>> x = Tensor([1, 2 ,3])
|
|
2245
|
-
>>> x = ops.ConvertToAdapterTensor()(x)
|
|
2246
|
-
>>> print(x)
|
|
2247
|
-
[1 2 3]
|
|
2248
|
-
"""
|
|
2249
|
-
|
|
2250
|
-
@prim_attr_register
|
|
2251
|
-
def __init__(self):
|
|
2252
|
-
"""Initialize"""
|
|
2253
|
-
|
|
2254
|
-
def __call__(self, x):
|
|
2255
|
-
"""Run in PyNative mode"""
|
|
2256
|
-
return ms_adapter_registry.tensor(x, cast_tensor=True)
|
|
2257
|
-
|
|
2258
|
-
|
|
2259
|
-
convert_to_adapter_tensor = ConvertToAdapterTensor()
|
|
2260
|
-
|
|
2261
|
-
|
|
2262
|
-
class ConvertToMsTensor(Primitive):
|
|
2263
|
-
"""
|
|
2264
|
-
Convert a tensor from MSAdapter's Tensor type to MindSpore's Tensor type,
|
|
2265
|
-
where MSAdapter's Tensor is a subclass of MindSpore's Tensor.
|
|
2266
|
-
|
|
2267
|
-
Inputs:
|
|
2268
|
-
- **x** (Tensor) - The input tensor.
|
|
2269
|
-
|
|
2270
|
-
Outputs:
|
|
2271
|
-
A tensor, whose type is MindSpore's Tensor.
|
|
2272
|
-
|
|
2273
|
-
Supported Platforms:
|
|
2274
|
-
``Ascend`` ``GPU`` ``CPU``
|
|
2275
|
-
|
|
2276
|
-
Examples:
|
|
2277
|
-
>>> x = Tensor([1, 2 ,3])
|
|
2278
|
-
>>> x = ops.ConvertToMsTensor()(x)
|
|
2279
|
-
>>> print(x)
|
|
2280
|
-
[1 2 3]
|
|
2281
|
-
"""
|
|
2282
|
-
|
|
2283
|
-
@prim_attr_register
|
|
2284
|
-
def __init__(self):
|
|
2285
|
-
"""Initialize"""
|
|
2286
|
-
|
|
2287
|
-
def __call__(self, x):
|
|
2288
|
-
"""Run in PyNative mode"""
|
|
2289
|
-
if isinstance(x, StubTensor):
|
|
2290
|
-
return StubTensor(stub=x.stub, tensor=x.tensor)
|
|
2291
|
-
return ops.auto_generate.deepcopy(x)
|
|
2292
|
-
|
|
2293
|
-
|
|
2294
|
-
convert_to_ms_tensor = ConvertToMsTensor()
|
|
2295
|
-
|
|
2296
|
-
|
|
2297
2256
|
class GetGrad(Primitive):
|
|
2298
2257
|
"""
|
|
2299
2258
|
Use the position id or Parameter object to get the gradient from the output
|
|
@@ -2445,7 +2404,7 @@ class FFN(Primitive):
|
|
|
2445
2404
|
The FFN computation is similar to Feed-Forward Network, it contains matmul + gelu + matmul.
|
|
2446
2405
|
|
|
2447
2406
|
Args:
|
|
2448
|
-
activation (
|
|
2407
|
+
activation (str): The activation type, set to 'fastgelu' or 'gelu'.
|
|
2449
2408
|
Only support 'fastgelu' for now. Default: "fastgelu".
|
|
2450
2409
|
inner_precise (int): The precise mode, set to 0 for high precision or 1 for high performance.
|
|
2451
2410
|
Only support 1 for now. Default: 0.
|
|
@@ -496,7 +496,7 @@ def kernel(fn=None, reg_info=None, compile_attrs=None):
|
|
|
496
496
|
callable function is equal to the case when `fn` is not None.
|
|
497
497
|
|
|
498
498
|
Supported Platforms:
|
|
499
|
-
``
|
|
499
|
+
``GPU`` ``CPU``
|
|
500
500
|
|
|
501
501
|
Examples:
|
|
502
502
|
>>> import numpy as np
|
|
@@ -510,12 +510,12 @@ def kernel(fn=None, reg_info=None, compile_attrs=None):
|
|
|
510
510
|
... "test3": 12,
|
|
511
511
|
... }
|
|
512
512
|
>>> # Create the reg info json string.
|
|
513
|
-
>>>
|
|
513
|
+
>>> op_cpu_info = CustomRegOp() \\
|
|
514
514
|
... .input(0, "a") \\
|
|
515
515
|
... .input(0, "b") \\
|
|
516
516
|
... .output(0, "y") \\
|
|
517
517
|
... .dtype_format(DataType.F32_None, DataType.F32_None, DataType.F32_None) \\
|
|
518
|
-
... .target("
|
|
518
|
+
... .target("CPU") \\
|
|
519
519
|
... .get_op_info()
|
|
520
520
|
>>>
|
|
521
521
|
>>> # Create inputs for the custom op.
|
|
@@ -524,7 +524,7 @@ def kernel(fn=None, reg_info=None, compile_attrs=None):
|
|
|
524
524
|
...
|
|
525
525
|
>>> # Write a Hybrid DSL function through the decorator @kernel.
|
|
526
526
|
>>> # We can also pass the compile attrs and the reg info through the decorator.
|
|
527
|
-
>>> @kernel(reg_info=
|
|
527
|
+
>>> @kernel(reg_info=op_cpu_info, compile_attrs=attrs)
|
|
528
528
|
... def outer_product(a, b):
|
|
529
529
|
... c = output_tensor(a.shape, a.dtype)
|
|
530
530
|
...
|
|
@@ -539,12 +539,6 @@ def kernel(fn=None, reg_info=None, compile_attrs=None):
|
|
|
539
539
|
>>> # We can use the function directly as a python function.
|
|
540
540
|
>>> # In this case, the inputs should be numpy arrays.
|
|
541
541
|
>>> result = outer_product(input_x, input_y)
|
|
542
|
-
...
|
|
543
|
-
>>> # Create a custom op with mode "hybrid" (default value) by the Hybrid DSL function.
|
|
544
|
-
>>> # In this case, we will enjoy the automatic dtype/shape infer for free.
|
|
545
|
-
>>> # The inputs should be mindspore tensors.
|
|
546
|
-
>>> test_op_hybrid = ops.Custom(outer_product)
|
|
547
|
-
>>> output = test_op_hybrid(Tensor(input_x), Tensor(input_y))
|
|
548
542
|
"""
|
|
549
543
|
if compile_attrs is None:
|
|
550
544
|
compile_attrs = {}
|
|
@@ -859,7 +859,7 @@ class TensorsQueueCreate(PrimitiveWithInfer):
|
|
|
859
859
|
dtype (mindspore.dtype): the data type in the TensorsQueue.
|
|
860
860
|
shapes (tuple(tuple(int))): the shape of each tensor in element.
|
|
861
861
|
size (int): The size of the TensorsQueue.
|
|
862
|
-
name (
|
|
862
|
+
name (str): the name of this TensorsQueue. Default: "Q".
|
|
863
863
|
|
|
864
864
|
Inputs:
|
|
865
865
|
None.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright 2023 Huawei Technologies Co., Ltd
|
|
1
|
+
# Copyright 2023-2025 Huawei Technologies Co., Ltd
|
|
2
2
|
#
|
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
# you may not use this file except in compliance with the License.
|
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
|
|
17
17
|
from mindspore.ops.primitive import Primitive, prim_attr_register
|
|
18
18
|
from .manually_defined import ScalarAdd, ScalarBool, ScalarDiv, ScalarMul, ScalarEq, ScalarFloorDiv, ScalarGe, \
|
|
19
|
-
ScalarGt, ScalarLe, ScalarLog, ScalarLt, ScalarMod, ScalarPow, ScalarSub, ScalarUadd, ScalarUsub
|
|
19
|
+
ScalarGt, ScalarLe, ScalarLog, ScalarLt, ScalarMod, ScalarPow, ScalarSub, ScalarUadd, ScalarUsub, ScalarMax, \
|
|
20
|
+
ScalarMin
|
|
20
21
|
|
|
21
22
|
|
|
22
23
|
class bool_not(Primitive):
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
from mindspore.ops.primitive import Primitive, PrimitiveWithCheck, prim_attr_register
|
|
17
17
|
import mindspore._checkparam as validator
|
|
18
18
|
from mindspore.common import Tensor
|
|
19
|
-
from mindspore._c_expression import
|
|
19
|
+
from mindspore._c_expression import TensorPy as Tensor_
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
class ListAppend(Primitive):
|
|
@@ -33,7 +33,7 @@ class TensorArray(PrimitiveWithInfer):
|
|
|
33
33
|
element_shape (tuple[int]): the shape of each tensor in a TensorArray.
|
|
34
34
|
dynamic_size (bool): If true the TensorArray can increase the size. Default: ``True``.
|
|
35
35
|
size (int): The size of the TensorArray if dynamic_size = False.
|
|
36
|
-
name (
|
|
36
|
+
name (str): the name of this TensorArray. Default: "TA".
|
|
37
37
|
|
|
38
38
|
Inputs:
|
|
39
39
|
None.
|