vllm.distributed.device_communicators.aiter_custom_all_reduce ¶
vLLM-owned wrapper over AITER's CustomAllreduce.
vLLM's CudaCommunicator stores one of these as aiter_ar_comm (when VLLM_ROCM_USE_AITER_CUSTOM_AR is set) so the plain allreduce and the fused allreduce+RMSNorm path share a single AITER instance with its IPC buffers.
Classes:
AiterCustomAllreduce ¶
Methods:
-
build_supports_per_group_quant–True if the running AITER build exposes the per-group AR+RMS+quant
-
effective_max_size–Max input byte size eligible for AITER custom allreduce.
Attributes:
-
supports_dynamic_hidden_dim(bool) –Aiter's fused_allreduce_rmsnorm kernel dispatches on hidden_dim.
Source code in vllm/distributed/device_communicators/aiter_custom_all_reduce.py
supports_dynamic_hidden_dim property ¶
Aiter's fused_allreduce_rmsnorm kernel dispatches on hidden_dim. Before aiter v0.1.12 the launcher was template-specialized on HIDDEN_DIM and silently no-op'd for sizes outside {512, 1024, 2048, 4096}. From v0.1.12 hidden_dim is a runtime argument. Older builds are detected via AiterCustomAllreduce.supports_dynamic_hidden_dim; This function is used to skip fusion for unsupported sizes on them. Ref (old kernel): https://github.com/ROCm/aiter/blob/6a0e7b26ccf33164785531212cc2ec2cde0b9243/csrc/include/custom_all_reduce.cuh#L2590
build_supports_per_group_quant() staticmethod ¶
True if the running AITER build exposes the per-group AR+RMS+quant kernel (added in ROCm/aiter PR #2823).
The pattern registration in RocmAiterAllReduceFusionPass keys off this so vLLM degrades to the AR+RMS-only fusion when run against an older aiter that lacks the per-group launcher.