Fix GLM4-7B-Flash accuracy test configuration, tune Qwen3.6-27B/35B performance test parameters, and harden Ascend NPU multi-node E2E test utilities against pod name format errors. (#32371)
This commit is contained in:
@@ -310,7 +310,9 @@ def create_or_update_configmap(cm_name: str, data: dict, namespace: str):
|
||||
|
||||
def prepare_cm_data(namespace, pod_string):
|
||||
"""Prepare a configmap data: {pod_name: pod_ip} by the running pod's information."""
|
||||
pods = core_api.list_namespaced_pod(namespace=namespace)
|
||||
pods = core_api.list_namespaced_pod(
|
||||
namespace=namespace, label_selector="app=sgl-ascend"
|
||||
)
|
||||
data = {}
|
||||
for pod in pods.items:
|
||||
pod_name = pod.metadata.name
|
||||
|
||||
@@ -426,7 +426,12 @@ def check_role(allowed_roles: Union[str, Iterable[str]]):
|
||||
def launch_pd_mix_node(model_config):
|
||||
logger.info(f"Launch pd mix node start ......")
|
||||
host_name = get_host_name()
|
||||
pod_index = int(host_name.rsplit("-", 1)[-1])
|
||||
last_part = host_name.rsplit("-", 1)[-1]
|
||||
if not last_part.isdigit():
|
||||
raise RuntimeError(
|
||||
f"Unexpected hostname format, expected numeric suffix: {host_name}"
|
||||
)
|
||||
pod_index = int(last_part)
|
||||
|
||||
# Monitor ConfigMap to generate dist-init-addr and node-rank
|
||||
is_ready = False
|
||||
@@ -497,7 +502,12 @@ def launch_pd_mix_node(model_config):
|
||||
def launch_pd_separation_node(model_config):
|
||||
logger.info(f"Launch pd separation node start ......")
|
||||
host_name = get_host_name()
|
||||
pod_index = int(host_name.rsplit("-", 1)[-1])
|
||||
last_part = host_name.rsplit("-", 1)[-1]
|
||||
if not last_part.isdigit():
|
||||
raise RuntimeError(
|
||||
f"Unexpected hostname format, expected numeric suffix: {host_name}"
|
||||
)
|
||||
pod_index = int(last_part)
|
||||
role = "prefill" if "prefill" in host_name else "decode"
|
||||
|
||||
bootstrap_init_port = BOOTSTRAP_INIT_PORT
|
||||
@@ -717,7 +727,14 @@ def launch_router(model_config):
|
||||
node_ip_list.clear()
|
||||
|
||||
for pod_name, pod_ip in configmap.data.items():
|
||||
pod_index = int(pod_name.rsplit("-", 1)[-1])
|
||||
# Skip unexpected entries that don't end with a numeric index
|
||||
last_part = pod_name.rsplit("-", 1)[-1]
|
||||
if not last_part.isdigit():
|
||||
logger.info(
|
||||
"Skipping ConfigMap entry with non-numeric suffix: %s", pod_name
|
||||
)
|
||||
continue
|
||||
pod_index = int(last_part)
|
||||
|
||||
if "prefill" in pod_name:
|
||||
if is_multi_node_prefill_instance:
|
||||
|
||||
@@ -16,7 +16,7 @@ register_npu_ci(
|
||||
ENVS = {
|
||||
"PYTORCH_NPU_ALLOC_CONF": "expandable_segments:True",
|
||||
"STREAMS_PER_DEVICE": "32",
|
||||
"HCCL_BUFFSIZE": "1000",
|
||||
"DEEPEP_HCCL_BUFFSIZE": "1000",
|
||||
"HCCL_OP_EXPANSION_MODE": "AIV",
|
||||
"HCCL_SOCKET_IFNAME": "lo",
|
||||
"GLOO_SOCKET_IFNAME": "lo",
|
||||
@@ -57,12 +57,12 @@ OTHER_ARGS = [
|
||||
]
|
||||
|
||||
|
||||
class TestNPUDeepSeek_V3_2_8P_AIME2025(TestNpuAccuracyTestCaseBase):
|
||||
class TestNPUGLM_4_7_FLASH_1P_AIME25(TestNpuAccuracyTestCaseBase):
|
||||
|
||||
model = GLM_4_7_FLASH_MODEL_PATH
|
||||
envs = ENVS
|
||||
other_args = OTHER_ARGS
|
||||
accuracy = 0.916
|
||||
accuracy = 0.7667
|
||||
datasets = ["aime25"]
|
||||
few_shot_num = 0
|
||||
generation_config = {"max_tokens": 65536, "temperature": 1.0}
|
||||
|
||||
@@ -76,6 +76,10 @@ QWEN3_6_27B_64K_PREFIX_OTHER_ARGS = [
|
||||
1,
|
||||
"--speculative-num-draft-tokens",
|
||||
4,
|
||||
"--reasoning-parser",
|
||||
"qwen3",
|
||||
"--tool-call-parser",
|
||||
"qwen3_coder",
|
||||
]
|
||||
|
||||
|
||||
|
||||
+25
-8
@@ -21,9 +21,10 @@ QWEN3_6_27B_16K_1k_ENVS = {
|
||||
"GLOO_SOCKET_IFNAME": "lo",
|
||||
"HCCL_OP_EXPANSION_MODE": "AIV",
|
||||
"SGLANG_SET_CPU_AFFINITY": "1",
|
||||
"SGLANG_ENABLE_SPEC_V2": "1",
|
||||
"SGLANG_ENABLE_OVERLAP_PLAN_STREAM": "1",
|
||||
"SGLANG_SCHEDULER_DECREASE_PREFILL_IDLE": "1",
|
||||
"SGLANG_PREFILL_DELAYER_MAX_DELAY_PASSES": "100",
|
||||
"SGLANG_PREFILL_DELAYER_MAX_DELAY_PASSES": "50",
|
||||
"GDN_ATTN_BACKEND_TRITON": "1",
|
||||
"ASCEND_USE_FIA": "1",
|
||||
}
|
||||
@@ -44,22 +45,37 @@ QWEN3_6_27B_16K_1k_OTHER_ARGS = [
|
||||
"--disable-radix-cache",
|
||||
"--trust-remote-code",
|
||||
"--max-running-requests",
|
||||
29,
|
||||
37,
|
||||
"--max-mamba-cache-size",
|
||||
58,
|
||||
74,
|
||||
"--mem-fraction-static",
|
||||
0.68,
|
||||
0.70,
|
||||
"--cuda-graph-bs",
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
6,
|
||||
8,
|
||||
10,
|
||||
12,
|
||||
14,
|
||||
16,
|
||||
18,
|
||||
20,
|
||||
21,
|
||||
23,
|
||||
24,
|
||||
25,
|
||||
26,
|
||||
27,
|
||||
28,
|
||||
29,
|
||||
30,
|
||||
31,
|
||||
33,
|
||||
35,
|
||||
37,
|
||||
"--quantization",
|
||||
"modelslim",
|
||||
"--dtype",
|
||||
@@ -69,11 +85,11 @@ QWEN3_6_27B_16K_1k_OTHER_ARGS = [
|
||||
"--speculative-algorithm",
|
||||
"NEXTN",
|
||||
"--speculative-num-steps",
|
||||
3,
|
||||
4,
|
||||
"--speculative-eagle-topk",
|
||||
1,
|
||||
"--speculative-num-draft-tokens",
|
||||
4,
|
||||
5,
|
||||
"--reasoning-parser",
|
||||
"qwen3",
|
||||
"--tool-call-parser",
|
||||
@@ -90,8 +106,9 @@ class TestNPUQwen3_6_27B_2P_In16k_Out1k_50ms(TestNpuPerformanceTestCaseBase):
|
||||
other_args = QWEN3_6_27B_16K_1k_OTHER_ARGS
|
||||
envs = QWEN3_6_27B_16K_1k_ENVS
|
||||
dataset_name = "random"
|
||||
max_concurrency = 29
|
||||
num_prompts = 116
|
||||
max_concurrency = 37
|
||||
warmup_requests = 4
|
||||
num_prompts = 37
|
||||
input_len = 16000
|
||||
output_len = 1000
|
||||
random_range_ratio = 1
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ register_npu_ci(
|
||||
QWEN3_6_35B_A3B_3K5_1K5_ENVS = {
|
||||
"PYTORCH_NPU_ALLOC_CONF": "expandable_segments:True",
|
||||
"STREAMS_PER_DEVICE": "32",
|
||||
"HCCL_BUFFSIZE": "1",
|
||||
"HCCL_BUFFSIZE": "100",
|
||||
"HCCL_SOCKET_IFNAME": "lo",
|
||||
"GLOO_SOCKET_IFNAME": "lo",
|
||||
"HCCL_OP_EXPANSION_MODE": "AIV",
|
||||
|
||||
Reference in New Issue
Block a user