diff --git a/runs/frontier-fidelity-envelope-v1/jobs_qwen235_collective_profile.toml b/runs/frontier-fidelity-envelope-v1/jobs_qwen235_collective_profile.toml index ce6ed9f..65d369a 100644 --- a/runs/frontier-fidelity-envelope-v1/jobs_qwen235_collective_profile.toml +++ b/runs/frontier-fidelity-envelope-v1/jobs_qwen235_collective_profile.toml @@ -43,3 +43,25 @@ MODEL = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-235B-A22B-FP8" OUTPUT_ROOT = "/home/admin/cpfs/wjh/aituner/gpu-fleet-fidelity-envelope-v1/artifacts/qwen235-serving-allreduce-tp8-20260719-v1" VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1" VLLM_SOURCE = "/home/admin/cpfs/wjh/agentic-kv/third_party/vllm_v20_build" + +[[jobs]] +name = "qwen235-vllm020-serving-allreduce-tp8-20260719-v2" +gpus = 8 +gpu_model = "H20" +hosts = ["dash0"] +command = "cd /home/admin/cpfs/wjh/aituner/aituner-q235-collective-20260719/runs/frontier-qwen30-vllm020-profile-v1 && timeout --signal=TERM --kill-after=30s 1020 bash run_allreduce_profile.sh" +artifacts = ["artifacts/qwen235-serving-allreduce-tp8-20260719-v2"] + +[jobs.env] +XDG_CACHE_HOME = "/tmp/wjh/.cache" +VLLM_CACHE_ROOT = "/tmp/wjh/.cache/vllm" +TP = "8" +NUM_TOKENS = "1 2 4 8 16 24 32 40 48 56 63 64 65 72 80 88 96 104 112 120 128 136 144 152 160 168 176 184 192 200 208 216 224 232 240 248 255 256 257 512 1024 2048 4096 8192" +HIDDEN_DIM = "4096" +COLLECTIVE_CONTRACT = "qwen235-serving-projected" +TRIALS = "3" +REPEATS = "20" +MODEL = "/home/admin/cpfs/wjh/models/Qwen/Qwen3-235B-A22B-FP8" +OUTPUT_ROOT = "/home/admin/cpfs/wjh/aituner/gpu-fleet-fidelity-envelope-v1/artifacts/qwen235-serving-allreduce-tp8-20260719-v2" +VENV_ROOT = "/tmp/wjh/venvs/vllm-0.20.0-cu129-profiler-v1" +VLLM_SOURCE = "/home/admin/cpfs/wjh/agentic-kv/third_party/vllm_v20_build" diff --git a/runs/frontier-qwen30-vllm020-profile-v1/profile_vllm020_allreduce.py b/runs/frontier-qwen30-vllm020-profile-v1/profile_vllm020_allreduce.py index 63309a1..04564b8 100644 --- a/runs/frontier-qwen30-vllm020-profile-v1/profile_vllm020_allreduce.py +++ b/runs/frontier-qwen30-vllm020-profile-v1/profile_vllm020_allreduce.py @@ -147,9 +147,28 @@ def main() -> None: f"no FlashInfer fusion limit for SM{capability}, TP{world_size}" ) from error if input_tensor.nbytes <= fusion_limit_bytes: + from vllm.distributed.device_communicators.flashinfer_all_reduce import ( + get_fi_ar_workspace, + ) + fi_comm = communicator.fi_ar_comm if fi_comm is None or fi_comm.disabled: raise SystemExit("FlashInfer all-reduce communicator is unavailable") + max_token_num = fusion_limit_bytes // ( + args.hidden_dim * input_tensor.element_size() + ) + workspace = get_fi_ar_workspace( + world_size=world_size, + rank=rank, + max_token_num=max_token_num, + hidden_dim=args.hidden_dim, + dtype=input_tensor.dtype, + group=get_tp_group().device_group, + ) + if workspace is None: + raise SystemExit( + "FlashInfer rejected the serving-matched integer workspace" + ) if not fi_comm.should_use_fi_ar(input_tensor): raise SystemExit("FlashInfer rejected a fusion-eligible payload") return (