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