mindspore 2.7.0__cp310-cp310-win_amd64.whl → 2.7.1__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/__init__.py +4 -1
- 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/_extends/parse/compile_config.py +24 -1
- mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +6 -2
- mindspore/_extends/parse/resources.py +1 -1
- mindspore/_extends/parse/standard_method.py +8 -1
- mindspore/_extends/parse/trope.py +2 -1
- mindspore/_extends/pijit/pijit_func_white_list.py +7 -22
- 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/base.py +29 -2
- mindspore/common/_decorator.py +3 -2
- mindspore/common/_grad_function.py +3 -1
- mindspore/common/_tensor_cpp_method.py +1 -1
- mindspore/common/_tensor_docs.py +275 -64
- mindspore/common/_utils.py +0 -44
- mindspore/common/api.py +285 -35
- mindspore/common/dump.py +7 -108
- mindspore/common/dynamic_shape/auto_dynamic_shape.py +1 -3
- mindspore/common/hook_handle.py +60 -0
- mindspore/common/jit_config.py +5 -1
- mindspore/common/jit_trace.py +27 -12
- mindspore/common/lazy_inline.py +5 -3
- mindspore/common/parameter.py +13 -107
- mindspore/common/recompute.py +4 -11
- mindspore/common/tensor.py +16 -169
- mindspore/communication/_comm_helper.py +11 -1
- mindspore/communication/comm_func.py +138 -4
- mindspore/communication/management.py +85 -1
- mindspore/config/op_info.config +0 -15
- mindspore/context.py +5 -85
- mindspore/dataset/engine/datasets.py +8 -4
- mindspore/dataset/engine/datasets_vision.py +1 -1
- mindspore/dataset/engine/validators.py +1 -15
- mindspore/dnnl.dll +0 -0
- mindspore/{experimental/llm_boost/ascend_native → graph}/__init__.py +7 -7
- mindspore/graph/custom_pass.py +55 -0
- mindspore/include/dataset/execute.h +2 -2
- mindspore/jpeg62.dll +0 -0
- mindspore/mindrecord/__init__.py +3 -3
- mindspore/mindrecord/common/exceptions.py +1 -0
- mindspore/mindrecord/config.py +1 -1
- mindspore/{parallel/mpi → mindrecord/core}/__init__.py +4 -1
- mindspore/mindrecord/{shardheader.py → core/shardheader.py} +2 -1
- mindspore/mindrecord/{shardindexgenerator.py → core/shardindexgenerator.py} +1 -1
- mindspore/mindrecord/{shardreader.py → core/shardreader.py} +2 -1
- mindspore/mindrecord/{shardsegment.py → core/shardsegment.py} +2 -2
- mindspore/mindrecord/{shardutils.py → core/shardutils.py} +1 -1
- mindspore/mindrecord/{shardwriter.py → core/shardwriter.py} +1 -1
- mindspore/mindrecord/filereader.py +4 -4
- mindspore/mindrecord/filewriter.py +5 -5
- mindspore/mindrecord/mindpage.py +2 -2
- mindspore/mindrecord/tools/cifar10.py +1 -1
- mindspore/mindrecord/tools/cifar100.py +1 -1
- mindspore/mindrecord/tools/cifar100_to_mr.py +1 -1
- mindspore/mindrecord/tools/cifar10_to_mr.py +1 -1
- mindspore/mindrecord/tools/csv_to_mr.py +1 -1
- mindspore/mindrecord/tools/imagenet_to_mr.py +1 -1
- mindspore/mindrecord/tools/mnist_to_mr.py +1 -1
- mindspore/mindrecord/tools/tfrecord_to_mr.py +1 -1
- mindspore/mindspore_backend_common.dll +0 -0
- mindspore/mindspore_backend_manager.dll +0 -0
- mindspore/mindspore_cluster.dll +0 -0
- mindspore/mindspore_common.dll +0 -0
- mindspore/mindspore_core.dll +0 -0
- mindspore/mindspore_cpu.dll +0 -0
- mindspore/mindspore_dump.dll +0 -0
- mindspore/mindspore_frontend.dll +0 -0
- mindspore/mindspore_glog.dll +0 -0
- mindspore/mindspore_hardware_abstract.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 → mindspore_ops_cpu.dll} +0 -0
- mindspore/mindspore_profiler.dll +0 -0
- mindspore/mindspore_pyboost.dll +0 -0
- mindspore/mindspore_pynative.dll +0 -0
- mindspore/mindspore_runtime_pipeline.dll +0 -0
- mindspore/mindspore_runtime_utils.dll +0 -0
- mindspore/mindspore_tools.dll +0 -0
- mindspore/mint/__init__.py +15 -10
- mindspore/mint/distributed/distributed.py +182 -62
- mindspore/mint/nn/__init__.py +2 -16
- mindspore/mint/nn/functional.py +4 -110
- mindspore/mint/nn/layer/__init__.py +0 -2
- mindspore/mint/nn/layer/activation.py +0 -6
- mindspore/mint/nn/layer/basic.py +0 -47
- mindspore/mint/nn/layer/conv.py +4 -4
- mindspore/mint/nn/layer/normalization.py +8 -13
- mindspore/mint/nn/layer/pooling.py +0 -4
- mindspore/nn/__init__.py +1 -3
- mindspore/nn/cell.py +16 -66
- mindspore/nn/layer/basic.py +49 -1
- mindspore/nn/layer/container.py +16 -0
- mindspore/nn/layer/embedding.py +4 -169
- mindspore/nn/layer/normalization.py +2 -1
- mindspore/nn/layer/thor_layer.py +4 -85
- mindspore/nn/optim/ada_grad.py +0 -1
- mindspore/nn/optim/adafactor.py +0 -1
- mindspore/nn/optim/adam.py +31 -124
- mindspore/nn/optim/adamax.py +0 -1
- mindspore/nn/optim/asgd.py +0 -1
- mindspore/nn/optim/ftrl.py +8 -102
- mindspore/nn/optim/lamb.py +0 -1
- mindspore/nn/optim/lars.py +0 -3
- mindspore/nn/optim/lazyadam.py +25 -218
- mindspore/nn/optim/momentum.py +5 -43
- mindspore/nn/optim/optimizer.py +6 -55
- mindspore/nn/optim/proximal_ada_grad.py +0 -1
- mindspore/nn/optim/rmsprop.py +0 -1
- mindspore/nn/optim/rprop.py +0 -1
- mindspore/nn/optim/sgd.py +0 -1
- mindspore/nn/optim/tft_wrapper.py +0 -1
- mindspore/nn/optim/thor.py +0 -2
- mindspore/nn/probability/bijector/bijector.py +7 -8
- mindspore/nn/probability/bijector/gumbel_cdf.py +2 -2
- mindspore/nn/probability/bijector/power_transform.py +20 -21
- mindspore/nn/probability/bijector/scalar_affine.py +5 -5
- mindspore/nn/probability/bijector/softplus.py +13 -14
- mindspore/nn/wrap/grad_reducer.py +4 -74
- mindspore/numpy/array_creations.py +2 -2
- mindspore/numpy/fft.py +9 -9
- mindspore/{nn/reinforcement → onnx}/__init__.py +5 -8
- mindspore/onnx/onnx_export.py +137 -0
- mindspore/opencv_core4110.dll +0 -0
- mindspore/opencv_imgcodecs4110.dll +0 -0
- mindspore/{opencv_imgproc452.dll → opencv_imgproc4110.dll} +0 -0
- mindspore/ops/__init__.py +2 -0
- mindspore/ops/_grad_experimental/grad_comm_ops.py +38 -2
- mindspore/ops/_op_impl/aicpu/__init__.py +0 -10
- mindspore/ops/_op_impl/cpu/__init__.py +0 -5
- mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +16 -22
- mindspore/ops/auto_generate/gen_extend_func.py +2 -7
- mindspore/ops/auto_generate/gen_ops_def.py +98 -141
- mindspore/ops/auto_generate/gen_ops_prim.py +12708 -12686
- mindspore/ops/communication.py +97 -0
- mindspore/ops/composite/__init__.py +5 -2
- mindspore/ops/composite/base.py +15 -1
- mindspore/ops/composite/multitype_ops/__init__.py +3 -1
- mindspore/ops/composite/multitype_ops/_compile_utils.py +150 -8
- mindspore/ops/composite/multitype_ops/add_impl.py +7 -0
- mindspore/ops/composite/multitype_ops/mod_impl.py +27 -0
- mindspore/ops/function/__init__.py +1 -0
- mindspore/ops/function/array_func.py +14 -12
- mindspore/ops/function/comm_func.py +3883 -0
- mindspore/ops/function/debug_func.py +3 -4
- mindspore/ops/function/math_func.py +45 -54
- mindspore/ops/function/nn_func.py +75 -294
- mindspore/ops/function/random_func.py +9 -18
- mindspore/ops/functional.py +2 -0
- mindspore/ops/functional_overload.py +354 -18
- mindspore/ops/operations/__init__.py +2 -5
- mindspore/ops/operations/_custom_ops_utils.py +7 -9
- mindspore/ops/operations/_inner_ops.py +1 -38
- mindspore/ops/operations/_rl_inner_ops.py +0 -933
- mindspore/ops/operations/array_ops.py +1 -0
- mindspore/ops/operations/comm_ops.py +94 -2
- mindspore/ops/operations/custom_ops.py +228 -19
- mindspore/ops/operations/debug_ops.py +27 -29
- mindspore/ops/operations/manually_defined/ops_def.py +27 -306
- mindspore/ops/operations/nn_ops.py +2 -2
- mindspore/ops/operations/sparse_ops.py +0 -83
- mindspore/ops/primitive.py +1 -17
- mindspore/ops/tensor_method.py +72 -3
- mindspore/ops_generate/aclnn/aclnn_kernel_register_auto_cc_generator.py +5 -5
- mindspore/ops_generate/aclnn/gen_aclnn_implement.py +8 -8
- mindspore/ops_generate/api/functions_cc_generator.py +53 -4
- mindspore/ops_generate/api/tensor_func_reg_cpp_generator.py +25 -11
- mindspore/ops_generate/common/gen_constants.py +11 -10
- mindspore/ops_generate/common/op_proto.py +18 -1
- mindspore/ops_generate/common/template.py +102 -245
- mindspore/ops_generate/common/template_utils.py +212 -0
- mindspore/ops_generate/gen_custom_ops.py +69 -0
- mindspore/ops_generate/op_def/ops_def_cc_generator.py +78 -7
- mindspore/ops_generate/op_def_py/base_op_prim_py_generator.py +360 -0
- mindspore/ops_generate/op_def_py/custom_op_prim_py_generator.py +140 -0
- mindspore/ops_generate/op_def_py/op_def_py_generator.py +54 -7
- mindspore/ops_generate/op_def_py/op_prim_py_generator.py +5 -312
- mindspore/ops_generate/pyboost/auto_grad_impl_cc_generator.py +74 -17
- mindspore/ops_generate/pyboost/auto_grad_reg_cc_generator.py +22 -5
- mindspore/ops_generate/pyboost/op_template_parser.py +3 -2
- mindspore/ops_generate/pyboost/pyboost_functions_cpp_generator.py +21 -5
- mindspore/ops_generate/pyboost/pyboost_functions_h_generator.py +2 -2
- mindspore/ops_generate/pyboost/pyboost_functions_impl_cpp_generator.py +30 -10
- mindspore/ops_generate/pyboost/pyboost_grad_function_cpp_generator.py +10 -3
- mindspore/ops_generate/pyboost/pyboost_internal_kernel_info_adapter_generator.py +1 -1
- mindspore/ops_generate/pyboost/pyboost_native_grad_functions_generator.py +19 -9
- mindspore/ops_generate/pyboost/pyboost_op_cpp_code_generator.py +71 -28
- mindspore/ops_generate/pyboost/pyboost_overload_functions_cpp_generator.py +10 -9
- mindspore/ops_generate/pyboost/pyboost_utils.py +27 -16
- mindspore/ops_generate/resources/yaml_loader.py +13 -0
- mindspore/ops_generate/tensor_py_cc_generator.py +2 -2
- mindspore/parallel/_cell_wrapper.py +1 -1
- mindspore/parallel/_parallel_serialization.py +1 -4
- mindspore/parallel/_utils.py +29 -6
- mindspore/parallel/checkpoint_transform.py +18 -2
- mindspore/parallel/cluster/process_entity/_api.py +24 -32
- mindspore/parallel/cluster/process_entity/_utils.py +9 -5
- mindspore/{experimental/llm_boost/atb → parallel/distributed}/__init__.py +21 -23
- mindspore/parallel/distributed/distributed_data_parallel.py +393 -0
- mindspore/parallel/distributed/flatten_grad_buffer.py +295 -0
- mindspore/parallel/strategy.py +336 -0
- mindspore/parallel/transform_safetensors.py +117 -16
- mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +3 -0
- mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +1 -1
- mindspore/profiler/common/constant.py +5 -0
- mindspore/profiler/common/file_manager.py +9 -0
- mindspore/profiler/common/msprof_cmd_tool.py +38 -2
- mindspore/profiler/common/path_manager.py +56 -24
- mindspore/profiler/common/profiler_context.py +2 -12
- mindspore/profiler/common/profiler_info.py +3 -3
- mindspore/profiler/common/profiler_path_manager.py +13 -0
- mindspore/profiler/common/util.py +30 -3
- mindspore/profiler/experimental_config.py +2 -1
- mindspore/profiler/platform/npu_profiler.py +33 -6
- mindspore/run_check/_check_version.py +108 -24
- mindspore/runtime/__init__.py +3 -2
- mindspore/runtime/executor.py +11 -3
- mindspore/runtime/memory.py +112 -0
- mindspore/swresample-4.dll +0 -0
- mindspore/swscale-6.dll +0 -0
- mindspore/tinyxml2.dll +0 -0
- mindspore/{experimental/llm_boost → tools}/__init__.py +5 -5
- mindspore/tools/data_dump.py +130 -0
- mindspore/tools/sdc_detect.py +91 -0
- mindspore/tools/stress_detect.py +63 -0
- mindspore/train/__init__.py +6 -6
- mindspore/train/_utils.py +5 -18
- mindspore/train/amp.py +6 -4
- mindspore/train/callback/_checkpoint.py +0 -9
- mindspore/train/callback/_train_fault_tolerance.py +69 -18
- mindspore/train/data_sink.py +1 -5
- mindspore/train/model.py +38 -211
- mindspore/train/serialization.py +126 -387
- mindspore/turbojpeg.dll +0 -0
- mindspore/utils/__init__.py +6 -3
- mindspore/utils/dlpack.py +92 -0
- mindspore/utils/dryrun.py +1 -1
- mindspore/utils/runtime_execution_order_check.py +10 -0
- mindspore/utils/sdc_detect.py +14 -12
- mindspore/utils/stress_detect.py +43 -0
- mindspore/utils/utils.py +144 -8
- mindspore/version.py +1 -1
- {mindspore-2.7.0.dist-info → mindspore-2.7.1.dist-info}/METADATA +3 -2
- {mindspore-2.7.0.dist-info → mindspore-2.7.1.dist-info}/RECORD +254 -267
- mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +0 -210
- mindspore/experimental/llm_boost/ascend_native/llm_boost.py +0 -52
- mindspore/experimental/llm_boost/atb/boost_base.py +0 -385
- mindspore/experimental/llm_boost/atb/llama_boost.py +0 -137
- mindspore/experimental/llm_boost/atb/qwen_boost.py +0 -124
- mindspore/experimental/llm_boost/register.py +0 -130
- mindspore/experimental/llm_boost/utils.py +0 -31
- mindspore/include/OWNERS +0 -7
- mindspore/mindspore_cpu_res_manager.dll +0 -0
- mindspore/mindspore_ops_kernel_common.dll +0 -0
- mindspore/mindspore_res_manager.dll +0 -0
- mindspore/nn/optim/_dist_optimizer_registry.py +0 -111
- mindspore/nn/reinforcement/_batch_read_write.py +0 -142
- mindspore/nn/reinforcement/_tensors_queue.py +0 -152
- mindspore/nn/reinforcement/tensor_array.py +0 -145
- mindspore/opencv_core452.dll +0 -0
- mindspore/opencv_imgcodecs452.dll +0 -0
- mindspore/ops/_op_impl/aicpu/priority_replay_buffer.py +0 -113
- mindspore/ops/_op_impl/aicpu/reservoir_replay_buffer.py +0 -96
- mindspore/ops/_op_impl/aicpu/sparse_cross.py +0 -42
- mindspore/ops/_op_impl/cpu/buffer_append.py +0 -28
- mindspore/ops/_op_impl/cpu/buffer_get.py +0 -28
- mindspore/ops/_op_impl/cpu/buffer_sample.py +0 -28
- mindspore/ops/_op_impl/cpu/priority_replay_buffer.py +0 -42
- mindspore/ops/operations/_tensor_array.py +0 -359
- mindspore/ops/operations/rl_ops.py +0 -288
- mindspore/parallel/_offload_context.py +0 -275
- mindspore/parallel/_recovery_context.py +0 -115
- mindspore/parallel/_transformer/__init__.py +0 -35
- mindspore/parallel/_transformer/layers.py +0 -765
- mindspore/parallel/_transformer/loss.py +0 -251
- mindspore/parallel/_transformer/moe.py +0 -693
- mindspore/parallel/_transformer/op_parallel_config.py +0 -222
- mindspore/parallel/_transformer/transformer.py +0 -3124
- mindspore/parallel/mpi/_mpi_config.py +0 -116
- mindspore/train/memory_profiling_pb2.py +0 -298
- {mindspore-2.7.0.dist-info → mindspore-2.7.1.dist-info}/WHEEL +0 -0
- {mindspore-2.7.0.dist-info → mindspore-2.7.1.dist-info}/entry_points.txt +0 -0
- {mindspore-2.7.0.dist-info → mindspore-2.7.1.dist-info}/top_level.txt +0 -0
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
# Copyright 2023 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
|
-
Parallel Config for the Parallel Training.
|
|
17
|
-
These are experimental APIs that are subject to change or deletion.
|
|
18
|
-
"""
|
|
19
|
-
from __future__ import absolute_import
|
|
20
|
-
|
|
21
|
-
from mindspore import _checkparam as Validator
|
|
22
|
-
from mindspore import context
|
|
23
|
-
import mindspore.communication.management as D
|
|
24
|
-
from mindspore.context import ParallelMode
|
|
25
|
-
from mindspore.parallel._utils import _get_parallel_mode
|
|
26
|
-
from mindspore import log as logger
|
|
27
|
-
|
|
28
|
-
__all__ = [
|
|
29
|
-
"OpParallelConfig"
|
|
30
|
-
]
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
class _Config:
|
|
34
|
-
r""" A basic class of the configure"""
|
|
35
|
-
|
|
36
|
-
def __str__(self):
|
|
37
|
-
info = "[ParallelConfig]" + '\n'
|
|
38
|
-
for k, v in self.__dict__.items():
|
|
39
|
-
var_info = "{}:{}\n".format(k, v)
|
|
40
|
-
info += var_info
|
|
41
|
-
return info
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
class MoEParallelConfig(_Config):
|
|
45
|
-
r"""
|
|
46
|
-
MoEParallelConfig for MoE structure, which includes setting data parallel, model parallel and expert parallel.
|
|
47
|
-
|
|
48
|
-
Args:
|
|
49
|
-
data_parallel (int): The data parallel way. Default: 1
|
|
50
|
-
model_parallel (int): The model parallel way. Default: 1
|
|
51
|
-
expert_parallel (int): The expert parallel way. Default: 1
|
|
52
|
-
Supported Platforms:
|
|
53
|
-
``Ascend``
|
|
54
|
-
"""
|
|
55
|
-
|
|
56
|
-
def __init__(self, data_parallel=1, model_parallel=1, expert_parallel=1):
|
|
57
|
-
Validator.check_positive_int(data_parallel, "data_parallel")
|
|
58
|
-
Validator.check_positive_int(model_parallel, "model_parallel")
|
|
59
|
-
Validator.check_positive_int(expert_parallel, "expert_parallel")
|
|
60
|
-
self._dpmp = OpParallelConfig(data_parallel=data_parallel, model_parallel=model_parallel)
|
|
61
|
-
self.expert_parallel = expert_parallel
|
|
62
|
-
|
|
63
|
-
@property
|
|
64
|
-
def data_parallel(self):
|
|
65
|
-
return self._dpmp.data_parallel
|
|
66
|
-
|
|
67
|
-
@data_parallel.setter
|
|
68
|
-
def data_parallel(self, value):
|
|
69
|
-
Validator.check_positive_int(value, "data_parallel")
|
|
70
|
-
self._dpmp.data_parallel = value
|
|
71
|
-
|
|
72
|
-
@property
|
|
73
|
-
def model_parallel(self):
|
|
74
|
-
return self._dpmp.model_parallel
|
|
75
|
-
|
|
76
|
-
@model_parallel.setter
|
|
77
|
-
def model_parallel(self, value):
|
|
78
|
-
Validator.check_positive_int(value, "model_parallel")
|
|
79
|
-
self._dpmp.model_parallel = value
|
|
80
|
-
|
|
81
|
-
@property
|
|
82
|
-
def expert_parallel(self):
|
|
83
|
-
return self._expert_parallel
|
|
84
|
-
|
|
85
|
-
@expert_parallel.setter
|
|
86
|
-
def expert_parallel(self, value):
|
|
87
|
-
Validator.check_positive_int(value, "expert_parallel")
|
|
88
|
-
self._expert_parallel = value
|
|
89
|
-
|
|
90
|
-
@property
|
|
91
|
-
def dpmp(self):
|
|
92
|
-
""" Get the configuration for dpmp """
|
|
93
|
-
return self._dpmp
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
class OpParallelConfig(_Config):
|
|
97
|
-
r"""
|
|
98
|
-
OpParallelConfig for the setting data parallel and model parallel.
|
|
99
|
-
|
|
100
|
-
Args:
|
|
101
|
-
data_parallel (int): The data parallel way. Default: 1
|
|
102
|
-
model_parallel (int): The model parallel way. Default: 1
|
|
103
|
-
Supported Platforms:
|
|
104
|
-
``Ascend`` ``GPU``
|
|
105
|
-
|
|
106
|
-
Examples:
|
|
107
|
-
>>> from mindspore.nn.transformer import OpParallelConfig
|
|
108
|
-
>>> config=OpParallelConfig(data_parallel=1, model_parallel=1)
|
|
109
|
-
"""
|
|
110
|
-
|
|
111
|
-
def __init__(self, data_parallel=1, model_parallel=1):
|
|
112
|
-
Validator.check_positive_int(data_parallel, "data_parallel")
|
|
113
|
-
Validator.check_positive_int(model_parallel, "model_parallel")
|
|
114
|
-
self.data_parallel = data_parallel
|
|
115
|
-
self.model_parallel = model_parallel
|
|
116
|
-
|
|
117
|
-
@property
|
|
118
|
-
def data_parallel(self):
|
|
119
|
-
return self._data_parallel
|
|
120
|
-
|
|
121
|
-
@data_parallel.setter
|
|
122
|
-
def data_parallel(self, value):
|
|
123
|
-
Validator.check_positive_int(value, "data_parallel")
|
|
124
|
-
self._data_parallel = value
|
|
125
|
-
|
|
126
|
-
@property
|
|
127
|
-
def model_parallel(self):
|
|
128
|
-
return self._model_parallel
|
|
129
|
-
|
|
130
|
-
@model_parallel.setter
|
|
131
|
-
def model_parallel(self, value):
|
|
132
|
-
Validator.check_positive_int(value, "model_parallel")
|
|
133
|
-
self._model_parallel = value
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
class _PipeLineConfig(_Config):
|
|
137
|
-
r"""
|
|
138
|
-
PPConfig for the setting data parallel, model parallel
|
|
139
|
-
|
|
140
|
-
Args:
|
|
141
|
-
pipeline_stage (int): The number of the pipeline stages. Default: 1
|
|
142
|
-
micro_batch_num (int): The model parallel way. Default: 1
|
|
143
|
-
Supported Platforms:
|
|
144
|
-
``Ascend`` ``GPU``
|
|
145
|
-
|
|
146
|
-
Examples:
|
|
147
|
-
>>> config=_PipeLineConfig(pipeline_stage=1, micro_batch_num=1)
|
|
148
|
-
"""
|
|
149
|
-
|
|
150
|
-
def __init__(self, pipeline_stage=1, micro_batch_num=1, pipeline_segment=1):
|
|
151
|
-
Validator.check_positive_int(pipeline_stage, "pipeline_stage")
|
|
152
|
-
Validator.check_positive_int(micro_batch_num, "micro_batch_num")
|
|
153
|
-
self.pipeline_stage = pipeline_stage
|
|
154
|
-
self.pipeline_segment = pipeline_segment
|
|
155
|
-
self.micro_batch_num = micro_batch_num
|
|
156
|
-
|
|
157
|
-
@property
|
|
158
|
-
def pipeline_stage(self):
|
|
159
|
-
return self._pipeline_stage
|
|
160
|
-
|
|
161
|
-
@pipeline_stage.setter
|
|
162
|
-
def pipeline_stage(self, value):
|
|
163
|
-
Validator.check_positive_int(value, "pipeline_stage")
|
|
164
|
-
self._pipeline_stage = value
|
|
165
|
-
context.set_auto_parallel_context(pipeline_stages=value)
|
|
166
|
-
|
|
167
|
-
@property
|
|
168
|
-
def pipeline_segment(self):
|
|
169
|
-
return self._pipeline_segment
|
|
170
|
-
|
|
171
|
-
@pipeline_segment.setter
|
|
172
|
-
def pipeline_segment(self, value):
|
|
173
|
-
Validator.check_positive_int(value, "pipeline_segment")
|
|
174
|
-
self._pipeline_segment = value
|
|
175
|
-
context.set_auto_parallel_context(pipeline_segments=value)
|
|
176
|
-
|
|
177
|
-
@property
|
|
178
|
-
def micro_batch_num(self):
|
|
179
|
-
return self._micro_batch_num
|
|
180
|
-
|
|
181
|
-
@micro_batch_num.setter
|
|
182
|
-
def micro_batch_num(self, value):
|
|
183
|
-
Validator.check_positive_int(value, "micro_batch_num")
|
|
184
|
-
self._micro_batch_num = value
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
# In case the user doesn't pass a config as args.
|
|
188
|
-
default_dpmp_config = OpParallelConfig()
|
|
189
|
-
default_moeparallel_config = MoEParallelConfig()
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
def _check_config(config):
|
|
193
|
-
"""
|
|
194
|
-
Check if micro_batch_num >= pipeline_stage
|
|
195
|
-
"""
|
|
196
|
-
# the config pipeline_stage is same with context.pipeline_stage
|
|
197
|
-
pipeline_stage = context.get_auto_parallel_context("pipeline_stages")
|
|
198
|
-
if hasattr(config, 'pipeline_stage') and pipeline_stage != config.pipeline_stage:
|
|
199
|
-
raise ValueError(
|
|
200
|
-
f"The pipeline stage {pipeline_stage} in auto_parallel_context is not equal to the pipeline_stage "
|
|
201
|
-
f"{config.pipeline_stage}"
|
|
202
|
-
f" in the config.")
|
|
203
|
-
|
|
204
|
-
# make sure the following is in auto parallel mode
|
|
205
|
-
is_auto_parallel = _get_parallel_mode() in (ParallelMode.SEMI_AUTO_PARALLEL, ParallelMode.AUTO_PARALLEL)
|
|
206
|
-
if not is_auto_parallel:
|
|
207
|
-
return
|
|
208
|
-
|
|
209
|
-
device_num = D.get_group_size()
|
|
210
|
-
optimizer_shard = context.get_auto_parallel_context("enable_parallel_optimizer")
|
|
211
|
-
|
|
212
|
-
if config.data_parallel * config.model_parallel * pipeline_stage > device_num:
|
|
213
|
-
raise ValueError(f"The product of the data parallel {config.data_parallel}, "
|
|
214
|
-
f"model parallel {config.model_parallel} "
|
|
215
|
-
f"pipeline stages {pipeline_stage} "
|
|
216
|
-
f"should be less than device_num {device_num}.")
|
|
217
|
-
|
|
218
|
-
# the config optimizer_shard is same with context.optimizer_shard
|
|
219
|
-
if hasattr(config, "optimizer_shard") and optimizer_shard and optimizer_shard != config.optimizer_shard:
|
|
220
|
-
logger.warning(f"The optimizer shard {optimizer_shard} in auto_parallel_context is not equal to the"
|
|
221
|
-
f" optimizer_shard {config.optimizer_shard} in the OpParallelConfig. Please check the "
|
|
222
|
-
f"optimizer_shard to make them consistent.")
|