@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 9570654c6d
Fork 0

A high-throughput and memory-efficient inference and serving engine for LLMs

Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git

Synced Nov 5, 12:15 UTC

[ROCm][CI] Run Kernels Core Operation Test On MI325 and mitigate flakiness (#38184)

Signed-off-by: Micah Williamson <micah.williamson@amd.com>

Micah Williamson committed Apr 5, 2026 at 20:42 UTC 9570654c6d41ffff922cd15d57added9557eb272
3 files changed +15 -2
.buildkite/test-amd.yaml
+1 -1
@@ -751,6 +751,7 @@ steps:
751 timeout_in_minutes: 180
752 mirror_hardwares: [amdexperimental, amdproduction, amdgfx90anightly, amdmi250]
753 agent_pool: mi250_1
754 + optional: true
755 working_dir: "/vllm-workspace/tests"
756 source_file_dependencies:
757 - csrc/
@@ -2035,7 +2036,6 @@ steps:
2036 timeout_in_minutes: 38
2037 mirror_hardwares: [amdexperimental, amdproduction, amdgfx942nightly, amdmi325]
2038 agent_pool: mi325_1
2038 - optional: true
2039 working_dir: "/vllm-workspace/tests"
2040 source_file_dependencies:
2041 - csrc/
tests/kernels/core/test_layernorm.py
+9 -1
@@ -7,12 +7,20 @@ import torch
7 from tests.kernels.quant_utils import FP8_DTYPE
8 from tests.kernels.utils import opcheck
9 from vllm.model_executor.layers.layernorm import RMSNorm
10 +from vllm.platforms import current_platform
11 from vllm.utils.torch_utils import set_random_seed
12
13 +if current_platform.is_rocm():
14 + from vllm.platforms.rocm import on_gfx90a
15 +
16 + on_mi250 = on_gfx90a()
17 +else:
18 + on_mi250 = False
19 +
20 DTYPES = [torch.half, torch.bfloat16, torch.float]
21 NUM_TOKENS = [7, 83, 4096] # Arbitrary values for testing
22 HIDDEN_SIZES = [8, 768, 769, 5120, 5125, 8192] # Arbitrary values for testing
15 -ADD_RESIDUAL = [False, True]
23 +ADD_RESIDUAL = [False, True] if not on_mi250 else [True]
24 SEEDS = [0]
25 CUDA_DEVICES = [
26 f"cuda:{i}" for i in range(1 if torch.accelerator.device_count() == 1 else 2)
vllm/platforms/rocm.py
+5
@@ -182,6 +182,7 @@ _ON_GFX1X = any(arch in _GCN_ARCH for arch in ["gfx11", "gfx12"])
182 _ON_GFX12X = any(arch in _GCN_ARCH for arch in ["gfx12"])
183 _ON_MI3XX = any(arch in _GCN_ARCH for arch in ["gfx942", "gfx950"])
184 _ON_GFX9 = any(arch in _GCN_ARCH for arch in ["gfx90a", "gfx942", "gfx950"])
185 +_ON_GFX90A = "gfx90a" in _GCN_ARCH
186 _ON_GFX942 = "gfx942" in _GCN_ARCH
187 _ON_GFX950 = "gfx950" in _GCN_ARCH
188
@@ -273,6 +274,10 @@ def on_gfx9() -> bool:
274 return _ON_GFX9
275
276
277 +def on_gfx90a() -> bool:
278 + return _ON_GFX90A
279 +
280 +
281 def on_gfx942() -> bool:
282 return _ON_GFX942
283