From 4eff61a7d5579ba44dbfcf369991e280cf7c295e Mon Sep 17 00:00:00 2001 From: August <11751797+august_ust@user.noreply.gitee.com> Date: Sat, 13 Sep 2025 11:07:32 +0800 Subject: [PATCH] add default setting for ds_r1_w8a8c16_a3_5p1d for omni_cli --- .../test_config/ds_r1_w8a8c16_a3_5p1d_d.json | 26 + .../test_config/ds_r1_w8a8c16_a3_5p1d_p.json | 19 + .../ep_ds_r1_w8a8c16_a3_5p1d_d.yaml | 42 + .../ep_ds_r1_w8a8c16_a3_5p1d_p.npy | Bin 0 -> 950400 bytes .../ep_ds_r1_w8a8c16_a3_5p1d_p.yaml | 43 + .../template/cli_ds_r1_w8a8c16_a3_5p1d.yml | 1155 +++++++++++++++++ 6 files changed, 1285 insertions(+) create mode 100644 tests/test_config/ds_r1_w8a8c16_a3_5p1d_d.json create mode 100644 tests/test_config/ds_r1_w8a8c16_a3_5p1d_p.json create mode 100644 tests/test_config/ep_ds_r1_w8a8c16_a3_5p1d_d.yaml create mode 100644 tests/test_config/ep_ds_r1_w8a8c16_a3_5p1d_p.npy create mode 100644 tests/test_config/ep_ds_r1_w8a8c16_a3_5p1d_p.yaml create mode 100644 tools/omni_cli/configs/template/cli_ds_r1_w8a8c16_a3_5p1d.yml diff --git a/tests/test_config/ds_r1_w8a8c16_a3_5p1d_d.json b/tests/test_config/ds_r1_w8a8c16_a3_5p1d_d.json new file mode 100644 index 000000000..1b9953943 --- /dev/null +++ b/tests/test_config/ds_r1_w8a8c16_a3_5p1d_d.json @@ -0,0 +1,26 @@ +{ + "model_parallel_config": { + "dense_mlp_tp_size": 4, + "o_proj_tp_size": 1, + "dp_size": 64 + }, + "operator_optimizition_config": { + "enable_kv_rmsnorm_rope_cache": true, + "prefill_moe_all_to_all": true, + "moe_multi_stream_tune": true, + "best_ep": false, + "merge_qkv": false, + "gmm_nz": true, + "decode_moe_dispatch_combine": true, + "use_omni_placement": true, + "omni_placement_config_path": "../../tests/test_config/ep_ds_r1_w8a8c16_a3_5p1d_d.yaml", + "use_super_kernel": false, + "use_mlaprolog": false, + "opt_w2_scale_cast": true, + "control_accept_rate": -1, + "use_prefetch": true, + "expert_gate_up_prefetch": 50, + "expert_down_prefetch": 0, + "attn_prefetch": 96 + } +} \ No newline at end of file diff --git a/tests/test_config/ds_r1_w8a8c16_a3_5p1d_p.json b/tests/test_config/ds_r1_w8a8c16_a3_5p1d_p.json new file mode 100644 index 000000000..d0047e5b0 --- /dev/null +++ b/tests/test_config/ds_r1_w8a8c16_a3_5p1d_p.json @@ -0,0 +1,19 @@ +{ + "model_parallel_config": { + "dense_mlp_tp_size": 4, + "o_proj_tp_size": 1, + "dp_size": 1 + }, + "operator_optimizition_config": { + "enable_kv_rmsnorm_rope_cache": true, + "prefill_moe_all_to_all": true, + "best_ep": false, + "merge_qkv": false, + "gmm_nz": true, + "use_omni_placement": true, + "omni_placement_config_path": "../../tests/test_config/ep_ds_r1_w8a8c16_a3_5p1d_p.yaml", + "control_accept_rate": -1, + "enable_prefill_micro_batch": false, + "experts_pruning": false + } +} \ No newline at end of file diff --git a/tests/test_config/ep_ds_r1_w8a8c16_a3_5p1d_d.yaml b/tests/test_config/ep_ds_r1_w8a8c16_a3_5p1d_d.yaml new file mode 100644 index 000000000..b882e6814 --- /dev/null +++ b/tests/test_config/ep_ds_r1_w8a8c16_a3_5p1d_d.yaml @@ -0,0 +1,42 @@ +# Patterns: Path to the pattern file specifying expert deployment configuration. + +# The placement pattern is represented as a three-dimensional binary matrix (`expert_mapping`) indicating +# the presence (`1`) or absence (`0`) of experts (EPs) across dimensions of devices, layers, and expert IDs (`epid`). +# Specifically, the three dimensions are: + +# - deviceid: Identifier of the device. +# - layerid: Identifier of the MoE layer. +# - epid: Identifier of the expert within a layer. +# Note that experts in different layers may share the same `epid`, but they represent distinct experts. + +# Thus, `expert_mapping[deviceid][layerid][epid] = 1` indicates that the expert identified by `epid` at layer `layerid` +# is deployed on device `deviceid`. Conversely, a value of `0` indicates the absence of that expert on the specified device and layer. + +# Note: The same `epid` within the same `layerid` can have multiple entries with the value `1` across different devices. +# This means the combination `(layerid, epid)` alone does not uniquely identify a deployment; +# rather, experts may be replicated across multiple devices to enable parallelism or redundancy. + +# Defaults to None. +pattern_path: "../../omni/accelerators/placement/patterns/base_patterns/DSV3_baseline_64_devices_58_MoE_Layers.npy" + +#define max_layer_num as a constant 58 (for deepseek moe layer num 58) +max_moe_layer_num: 58 + +enable_dynamic: True +max_redundant_per_expert: 10 # 10 +max_redundant_per_rank: 1 # 1 + +enable_rank_round_robin: True + +enable_dump: False +dump_dir: "../dump_data" + +# Optimizers +Optimizers: + - expert_balance_optimizer.ExpertsBalanceOptimizer: + batch_size: 48 + top_k_count: 8 + - heat_optimizer.HEAT_ExpertsBalancer: + is_global_maximum_offset: True + - resdispatch_optimizer.ResDis_ExpertsBalancer: + is_rand_op: False \ No newline at end of file diff --git a/tests/test_config/ep_ds_r1_w8a8c16_a3_5p1d_p.npy b/tests/test_config/ep_ds_r1_w8a8c16_a3_5p1d_p.npy new file mode 100644 index 0000000000000000000000000000000000000000..ae70833c6ef03b0cef543ed29948c8b295c4591f GIT binary patch literal 950400 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