{"record":{"id":"d6ae31ab2658e21d","repo":"vllm-project/vllm","slug":"mori-currently-only-support-arch-gfx942-and-gfx950","errorCode":null,"errorMessage":"mori currently only support arch gfx942 and gfx950","messagePattern":"mori currently only support arch gfx942 and gfx950","errorType":"exception","errorClass":"NotImplementedError","httpStatus":null,"severity":"error","filePath":"vllm/distributed/device_communicators/all2all.py","lineNumber":965,"sourceCode":"            warp_num_per_block = 16\n            block_num = 80\n        else:\n            # Multi-node: kernel follows --all2all-backend (mirrors deepep_* split).\n            # mori_low_latency → InterNodeV1LL; mori_high_throughput → V1.\n            if self._all2all_backend == \"mori_low_latency\":\n                kernel_type = mori.ops.EpDispatchCombineKernelType.InterNodeV1LL\n            else:\n                kernel_type = mori.ops.EpDispatchCombineKernelType.InterNodeV1\n            if on_gfx942():\n                warp_num_per_block = 16\n                block_num = 32\n                rdma_block_num = 16\n            elif on_gfx950():\n                warp_num_per_block = 8\n                block_num = 64\n                rdma_block_num = 32\n            else:\n                raise NotImplementedError(\n                    \"mori currently only support arch gfx942 and gfx950\"\n                )\n\n        return dict(\n            rank=rank,\n            world_size=num_ep_ranks,\n            data_type=quant_dtype,\n            hidden_dim=token_hidden_size,\n            scale_dim=scale_dim,\n            scale_type_size=scale_type_size,\n            max_token_type_size=input_dtype.itemsize,\n            max_num_inp_token_per_rank=max_num_tokens_per_dp_rank,\n            num_experts_per_rank=num_local_experts,\n            num_experts_per_token=num_experts_per_token,\n            warp_num_per_block=warp_num_per_block,\n            block_num=block_num,\n            kernel_type=kernel_type,\n            rdma_block_num=rdma_block_num,","sourceCodeStart":947,"sourceCodeEnd":983,"githubUrl":"https://github.com/vllm-project/vllm/blob/c794754062d49a8fdb63ab3c5215b488b865030c/vllm/distributed/device_communicators/all2all.py#L947-L983","documentation":"Raised in _make_all2all_kwargs for the mori all2all/EP path when the AMD GPU is neither gfx942 (MI300X) nor gfx950 (MI350). The mori kernel launch parameters (warp/block counts for dispatch-combine) are only tuned/implemented for those two architectures, so building kwargs on any other ROCm gfx target raises NotImplementedError.","triggerScenarios":"Selecting the mori all2all backend for expert parallelism on a ROCm GPU other than gfx942/gfx950 (e.g. gfx90a MI210, gfx1100 consumer parts); on_gfx942() and on_gfx950() both return false while the mori path is taken.","commonSituations":"Porting an EP deployment from MI300X to older/newer AMD parts; a container where the ROCm arch flag resolves differently than expected; using a mori build that defaults on for all ROCm GPUs.","solutions":["Switch to a supported all2all/EP backend for this GPU (do not select mori on gfx != 942/950).","If you believe your GPU is MI300X/MI350, verify the detected arch (rocminfo / torch.version.hip / HSA_OVERRIDE_GFX_VERSION) — an override can mask the real target.","Check the mori project's support matrix for newly added architectures and update mori + vLLM together."],"exampleFix":"# before\nVLLM_ALL2ALL_BACKEND=mori  # on gfx90a\n# after: use a backend valid for this GPU\nVLLM_ALL2ALL_BACKEND=<non-mori backend supported on gfx90a>","handlingStrategy":"validation","validationCode":"from vllm.platforms.rocm import on_gfx942, on_gfx950\n\nif backend == \"mori\" and not (on_gfx942() or on_gfx950()):\n    raise SystemExit(\"mori all2all requires gfx942 (MI300X) or gfx950 (MI350)\")","typeGuard":"def mori_supported_on_this_gpu() -> bool:\n    from vllm.platforms.rocm import on_gfx942, on_gfx950\n    return on_gfx942() or on_gfx950()","tryCatchPattern":"try:\n    kwargs = manager._make_all2all_kwargs(**kw)\nexcept NotImplementedError as e:\n    if \"gfx942\" in str(e):\n        switch_all2all_backend_and_relaunch()\n    raise","preventionTips":["Gate the mori backend selection on the detected gfx arch in cluster templates.","Beware HSA_OVERRIDE_GFX_VERSION: it can make the runtime report an arch the hardware is not."],"tags":["vllm","rocm","mori","expert-parallel","gpu-arch"],"backgroundTag":null,"analyzedSha":"c794754062d49a8fdb63ab3c5215b488b865030c","analyzedAt":"2026-08-14T21:17:39.825Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}