diff --git a/examples/grpo_trainer/run_deepseek_v4_veomni.sh b/examples/grpo_trainer/run_deepseek_v4_veomni.sh index a86552d915b..9ddbd65ba8a 100644 --- a/examples/grpo_trainer/run_deepseek_v4_veomni.sh +++ b/examples/grpo_trainer/run_deepseek_v4_veomni.sh @@ -3,7 +3,7 @@ # # Environment: # - transformers==5.9.0 -# - vllm==0.24.0; on AMD ROCm, a vLLM with VLLM_ROCM_DSV4_BPRESHUFFLE (vllm-project/vllm#63604) +# - vllm==0.24.0 # - veomni==0.1.12 set -xeuo pipefail @@ -174,15 +174,6 @@ if python -c "import sys, torch; sys.exit(torch.version.hip is None)" 2>/dev/nul gfx_version=$(awk '$1 == "gfx_target_version" && $2 > 0 {print $2; exit}' /sys/class/kfd/kfd/topology/nodes/*/properties 2>/dev/null || true) if [ -n "${VLLM_ROCM_USE_AITER:-}" ] || [[ "$gfx_version" == 904?? ]]; then add_worker_env VLLM_ROCM_USE_AITER "${VLLM_ROCM_USE_AITER:-1}" - aiter=${VLLM_ROCM_USE_AITER:-1} - # With AITER, a vLLM without VLLM_ROCM_DSV4_BPRESHUFFLE B-preshuffles DeepSeek-V4's FP8 weights once after - # loading, and the weights verl syncs later are not reshuffled. A vLLM that cannot be imported here is not checked. - if [[ $rollout_name == vllm && (${aiter,,} == 1 || ${aiter,,} == true) ]] && - python -c "import sys, vllm.envs as e; sys.exit('VLLM_ROCM_DSV4_BPRESHUFFLE' in e.environment_variables)" 2>/dev/null; then - echo "With AITER this vLLM B-preshuffles DeepSeek-V4's FP8 weights, so the rollouts would run on corrupted weights" \ - "after the first weight sync. Use a vLLM with VLLM_ROCM_DSV4_BPRESHUFFLE (vllm-project/vllm#63604)." >&2 - exit 1 - fi fi fi diff --git a/verl/plugin/platform/platform_rocm.py b/verl/plugin/platform/platform_rocm.py index b748a17ae5f..b40e953c207 100644 --- a/verl/plugin/platform/platform_rocm.py +++ b/verl/plugin/platform/platform_rocm.py @@ -63,15 +63,9 @@ def rollout_env_vars(self) -> dict[str, str]: # routes SGLang's non-attention kernels (RMSNorm/RoPE/MoE/quant) through AITER. # Default to "1" but honor an explicit user override (e.g. SGLANG_USE_AITER=0 # to fall back to vLLM kernels). - # - # VLLM_ROCM_DSV4_BPRESHUFFLE: with AITER, vLLM B-preshuffles three DeepSeek-V4 FP8 weights - # (attention and shared experts) once after loading, so the weight syncs that follow silently - # corrupt the rollouts. verl updates the rollout weights at runtime, so keep the checkpoint layout. - # vLLM builds without this variable (vllm-project/vllm#63604) ignore it and always preshuffle. return { **super().rollout_env_vars(), "SGLANG_USE_AITER": os.environ.get("SGLANG_USE_AITER", "1"), - "VLLM_ROCM_DSV4_BPRESHUFFLE": os.environ.get("VLLM_ROCM_DSV4_BPRESHUFFLE", "0"), } def ray_noset_envvars(self) -> list[str]: