[AMD] CI - migrate perf test and fix stage-b-test-1-gpu-amd (#17340)

Co-authored-by: Bingxu Chen <bingxche@amd.com>
Co-authored-by: bingxche <Bingxu.Chen@amd.com>
Co-authored-by: michaelzhang-ai <michaelzhang.ai@users.noreply.github.com>
This commit is contained in:
YC Tseng
2026-01-23 10:45:05 +08:00
committed by GitHub
parent 0fec8820d1
commit 04a10c9bc2
14 changed files with 68 additions and 174 deletions

View File

@@ -639,12 +639,12 @@ jobs:
run: |
bash scripts/ci/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-c-test-large-8-gpu-amd-mi35x --auto-partition-id ${{ matrix.part }} --auto-partition-size 2 --timeout-per-file 3600
performance-test-1-gpu-part-1-amd:
needs: [check-changes, stage-a-test-1-amd]
stage-b-test-small-1-gpu-performance-amd:
needs: [check-changes, call-gate, stage-a-test-1-amd]
if: |
always() &&
(
(inputs.target_stage == 'performance-test-1-gpu-part-1-amd') ||
(inputs.target_stage == 'stage-b-test-small-1-gpu-performance-amd') ||
(
!inputs.target_stage &&
(!failure() && !cancelled()) &&
@@ -673,39 +673,17 @@ jobs:
- name: Install dependencies
run: bash scripts/ci/amd_ci_install_dependency.sh
- name: Benchmark single latency
timeout-minutes: 20
- name: Run test
timeout-minutes: 30
run: |
bash scripts/ci/amd_ci_exec.sh -w /sglang-checkout/test/registered/perf python3 -m unittest test_bench_one_batch_1gpu.TestBenchOneBatch1GPU.test_bs1_small
bash scripts/ci/amd_ci_exec.sh -w /sglang-checkout/test/registered/perf python3 -m unittest test_bench_one_batch_1gpu.TestBenchOneBatch1GPU.test_bs1_default
bash scripts/ci/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-b-test-small-1-gpu-performance-amd --timeout-per-file 1200
- name: Benchmark online latency
timeout-minutes: 15
run: |
bash scripts/ci/amd_ci_exec.sh -w /sglang-checkout/test/registered/perf python3 -m unittest test_bench_serving_1gpu_part1.TestBenchServing1GPUPart1.test_online_latency_default
- name: Benchmark online latency (LoRA)
timeout-minutes: 10
run: |
bash scripts/ci/amd_ci_exec.sh -w /sglang-checkout/test/registered/perf python3 -m unittest test_bench_serving_1gpu_part1.TestBenchServing1GPUPart1.test_lora_online_latency
bash scripts/ci/amd_ci_exec.sh -w /sglang-checkout/test/registered/perf python3 -m unittest test_bench_serving_1gpu_part1.TestBenchServing1GPUPart1.test_lora_online_latency_with_concurrent_adapter_updates
- name: Benchmark offline throughput
timeout-minutes: 15
run: |
bash scripts/ci/amd_ci_exec.sh -w /sglang-checkout/test/registered/perf python3 -m unittest test_bench_serving_1gpu_part1.TestBenchServing1GPUPart1.test_offline_throughput_default
- name: Benchmark offline throughput (Non-streaming, small batch size)
timeout-minutes: 15
run: |
bash scripts/ci/amd_ci_exec.sh -w /sglang-checkout/test/registered/perf python3 -m unittest test_bench_serving_1gpu_part1.TestBenchServing1GPUPart1.test_offline_throughput_non_stream_small_batch_size
performance-test-1-gpu-part-2-amd:
needs: [check-changes, stage-a-test-1-amd]
stage-b-test-large-1-gpu-performance-amd:
needs: [check-changes, call-gate, stage-a-test-1-amd]
if: |
always() &&
(
(inputs.target_stage == 'performance-test-1-gpu-part-2-amd') ||
(inputs.target_stage == 'stage-b-test-large-1-gpu-performance-amd') ||
(
!inputs.target_stage &&
(!failure() && !cancelled()) &&
@@ -716,6 +694,7 @@ jobs:
fail-fast: false
matrix:
runner: [linux-mi325-gpu-1]
part: [0, 1]
runs-on: ${{matrix.runner}}
steps:
- name: Checkout code
@@ -734,91 +713,17 @@ jobs:
- name: Install dependencies
run: bash scripts/ci/amd_ci_install_dependency.sh
- name: Benchmark offline throughput (w/o RadixAttention)
timeout-minutes: 15
- name: Run test
timeout-minutes: 30
run: |
bash scripts/ci/amd_ci_exec.sh -w /sglang-checkout/test/registered/perf python3 -m unittest test_bench_serving_1gpu_part1.TestBenchServing1GPUPart1.test_offline_throughput_without_radix_cache
bash scripts/ci/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-b-test-large-1-gpu-performance-amd --auto-partition-id ${{ matrix.part }} --auto-partition-size 2 --timeout-per-file 1200
- name: Benchmark offline throughput (w/ Triton)
timeout-minutes: 15
run: |
bash scripts/ci/amd_ci_exec.sh -w /sglang-checkout/test/registered/perf python3 -m unittest test_bench_serving_1gpu_part1.TestBenchServing1GPUPart1.test_offline_throughput_with_triton_attention_backend
- name: Benchmark offline throughput (w/ FP8)
timeout-minutes: 15
run: |
bash scripts/ci/amd_ci_exec.sh -w /sglang-checkout/test/registered/perf python3 -m unittest test_bench_serving_1gpu_large.TestBenchServing1GPULarge.test_offline_throughput_default_fp8
- name: Benchmark VLM offline throughput
timeout-minutes: 10
run: |
bash scripts/ci/amd_ci_exec.sh -w /sglang-checkout/test/registered/perf python3 -m unittest test_bench_serving_1gpu_part2.TestBenchServing1GPUPart2.test_vlm_offline_throughput
- name: Benchmark VLM online latency
timeout-minutes: 10
run: |
bash scripts/ci/amd_ci_exec.sh -w /sglang-checkout/test/registered/perf python3 -m unittest test_bench_serving_1gpu_part2.TestBenchServing1GPUPart2.test_vlm_online_latency
performance-test-1-gpu-part-3-amd:
needs: [check-changes, stage-a-test-1-amd]
stage-b-test-large-2-gpu-performance-amd:
needs: [check-changes, call-gate, stage-a-test-1-amd]
if: |
always() &&
(
(inputs.target_stage == 'performance-test-1-gpu-part-3-amd') ||
(
!inputs.target_stage &&
(!failure() && !cancelled()) &&
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
)
)
strategy:
fail-fast: false
matrix:
runner: [linux-mi325-gpu-1]
runs-on: ${{matrix.runner}}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ inputs.pr_head_sha || inputs.ref || github.sha }}
- name: Ensure VRAM is clear
run: bash scripts/ensure_vram_clear.sh rocm
- name: Start CI container
run: bash scripts/ci/amd_ci_start_container.sh
env:
GITHUB_WORKSPACE: ${{ github.workspace }}
- name: Install dependencies
run: bash scripts/ci/amd_ci_install_dependency.sh
- name: Benchmark Scores online latency and throughput
timeout-minutes: 10
run: |
bash scripts/ci/amd_ci_exec.sh -w /sglang-checkout/test/registered/perf python3 -m unittest test_bench_serving_1gpu_part2.TestBenchServing1GPUPart2.test_score_api_latency_throughput
- name: Benchmark Scores online latency and throughput (batch size scaling)
timeout-minutes: 10
run: |
bash scripts/ci/amd_ci_exec.sh -w /sglang-checkout/test/registered/perf python3 -m unittest test_bench_serving_1gpu_part2.TestBenchServing1GPUPart2.test_score_api_batch_scaling
- name: Benchmark Embeddings online latency and throughput
timeout-minutes: 10
run: |
bash scripts/ci/amd_ci_exec.sh -w /sglang-checkout/test/registered/perf python3 -m unittest test_bench_serving_1gpu_part2.TestBenchServing1GPUPart2.test_embeddings_api_latency_throughput
- name: Benchmark Embeddings online latency and throughput (batch size scaling)
timeout-minutes: 10
run: |
bash scripts/ci/amd_ci_exec.sh -w /sglang-checkout/test/registered/perf python3 -m unittest test_bench_serving_1gpu_part2.TestBenchServing1GPUPart2.test_embeddings_api_batch_scaling
performance-test-2-gpu-amd:
needs: [check-changes, stage-a-test-1-amd]
if: |
always() &&
(
(inputs.target_stage == 'performance-test-2-gpu-amd') ||
(inputs.target_stage == 'stage-b-test-large-2-gpu-performance-amd') ||
(
!inputs.target_stage &&
(!failure() && !cancelled()) &&
@@ -847,47 +752,17 @@ jobs:
- name: Install dependencies
run: bash scripts/ci/amd_ci_install_dependency.sh
- name: Benchmark dummy grok (TP=2)
- name: Run test
timeout-minutes: 30
run: |
bash scripts/ci/amd_ci_exec.sh python3 models/test_dummy_grok_models.py
bash scripts/ci/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-b-test-large-2-gpu-performance-amd --timeout-per-file 1200
- name: Benchmark single latency (TP=2)
timeout-minutes: 25
run: |
bash scripts/ci/amd_ci_exec.sh -w /sglang-checkout/test/registered/perf python3 -m unittest test_bench_one_batch_2gpu.TestBenchOneBatch2GPU.test_moe_tp2_bs1
- name: Benchmark single latency + torch.compile (TP=2)
timeout-minutes: 25
run: |
bash scripts/ci/amd_ci_exec.sh -w /sglang-checkout/test/registered/perf python3 -m unittest test_bench_one_batch_2gpu.TestBenchOneBatch2GPU.test_torch_compile_tp2_bs1
- name: Benchmark offline throughput (TP=2)
timeout-minutes: 25
run: |
bash scripts/ci/amd_ci_exec.sh -w /sglang-checkout/test/registered/perf python3 -m unittest test_bench_serving_2gpu.TestBenchServing2GPU.test_moe_offline_throughput_default
- name: Benchmark offline throughput (w/o RadixAttention) (TP=2)
timeout-minutes: 25
run: |
bash scripts/ci/amd_ci_exec.sh -w /sglang-checkout/test/registered/perf python3 -m unittest test_bench_serving_2gpu.TestBenchServing2GPU.test_moe_offline_throughput_without_radix_cache
- name: Benchmark offline PP decode throughput (PP=2)
timeout-minutes: 10
run: |
bash scripts/ci/amd_ci_exec.sh -w /sglang-checkout/test/registered/perf python3 -m unittest test_bench_serving_2gpu.TestBenchServing2GPU.test_pp_offline_throughput_default_decode
- name: Benchmark offline PP prefill throughput (PP=2)
timeout-minutes: 10
run: |
bash scripts/ci/amd_ci_exec.sh -w /sglang-checkout/test/registered/perf python3 -m unittest test_bench_serving_2gpu.TestBenchServing2GPU.test_pp_long_context_prefill
accuracy-test-1-gpu-amd:
stage-b-test-small-1-gpu-accuracy-amd:
needs: [check-changes, stage-a-test-1-amd]
if: |
always() &&
(
(inputs.target_stage == 'accuracy-test-1-gpu-amd') ||
(inputs.target_stage == 'stage-b-test-small-1-gpu-accuracy-amd') ||
(
!inputs.target_stage &&
(!failure() && !cancelled()) &&
@@ -916,18 +791,17 @@ jobs:
- name: Install dependencies
run: bash scripts/ci/amd_ci_install_dependency.sh
- name: Evaluate Accuracy
- name: Run test
timeout-minutes: 30
run: |
bash scripts/ci/amd_ci_exec.sh -w /sglang-checkout/test/registered/eval -e SGLANG_USE_AITER=0 python3 test_eval_accuracy_large.py
bash scripts/ci/amd_ci_exec.sh -w "/sglang-checkout/test" -e SGLANG_USE_AITER=0 python3 run_suite.py --hw amd --suite stage-b-test-small-1-gpu-accuracy-amd --timeout-per-file 1800
accuracy-test-2-gpu-amd:
needs: [check-changes, accuracy-test-1-gpu-amd]
# Temporarily disabled - uncomment when ready to re-enable (tracked here: https://github.com/sgl-project/sglang/issues/13107)
stage-b-test-large-2-gpu-accuracy-amd:
needs: [check-changes, stage-a-test-1-amd]
if: |
always() &&
(
(inputs.target_stage == 'accuracy-test-2-gpu-amd') ||
(inputs.target_stage == 'stage-b-test-large-2-gpu-accuracy-amd') ||
(
!inputs.target_stage &&
(!failure() && !cancelled()) &&
@@ -956,10 +830,10 @@ jobs:
- name: Install dependencies
run: bash scripts/ci/amd_ci_install_dependency.sh
- name: Evaluate accuracy (TP=2)
- name: Run test
timeout-minutes: 30
run: |
bash scripts/ci/amd_ci_exec.sh -w /sglang-checkout/test/registered/eval -e SGLANG_USE_AITER_AR=0 -e SGLANG_USE_AITER=0 -e HF_HUB_ENABLE_HF_TRANSFER=0 python3 test_moe_eval_accuracy_large.py
bash scripts/ci/amd_ci_exec.sh -w "/sglang-checkout/test" -e SGLANG_USE_AITER_AR=0 -e SGLANG_USE_AITER=0 -e HF_HUB_ENABLE_HF_TRANSFER=0 python3 run_suite.py --hw amd --suite stage-b-test-large-2-gpu-accuracy-amd --timeout-per-file 1800
pr-test-amd-finish:
needs:
@@ -975,14 +849,13 @@ jobs:
stage-b-test-small-1-gpu-amd,
stage-b-test-small-1-gpu-amd-mi35x,
stage-b-test-large-2-gpu-amd,
stage-b-test-small-1-gpu-performance-amd,
stage-b-test-large-1-gpu-performance-amd,
stage-b-test-large-2-gpu-performance-amd,
stage-b-test-small-1-gpu-accuracy-amd,
stage-b-test-large-2-gpu-accuracy-amd,
stage-c-test-large-8-gpu-amd,
stage-c-test-large-8-gpu-amd-mi35x,
performance-test-1-gpu-part-1-amd,
performance-test-1-gpu-part-2-amd,
performance-test-1-gpu-part-3-amd,
performance-test-2-gpu-amd,
accuracy-test-1-gpu-amd,
accuracy-test-2-gpu-amd,
]
if: always()
runs-on: ubuntu-latest

View File

@@ -257,13 +257,13 @@ def handle_rerun_stage(
"stage-b-test-small-1-gpu-amd",
"stage-b-test-small-1-gpu-amd-mi35x",
"stage-b-test-large-2-gpu-amd",
"stage-b-test-small-1-gpu-performance-amd",
"stage-b-test-large-1-gpu-performance-amd",
"stage-b-test-large-2-gpu-performance-amd",
"stage-c-test-large-8-gpu-amd-mi35x",
"unit-test-backend-1-gpu-amd",
"unit-test-backend-2-gpu-amd",
"unit-test-backend-8-gpu-amd",
"performance-test-1-gpu-part-1-amd",
"performance-test-1-gpu-part-2-amd",
"performance-test-2-gpu-amd",
"accuracy-test-1-gpu-amd",
"accuracy-test-2-gpu-amd",
]

View File

@@ -7,7 +7,7 @@ import unittest
from types import SimpleNamespace
from sglang.srt.utils import kill_process_tree
from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
from sglang.test.run_eval import run_eval
from sglang.test.test_utils import (
DEFAULT_MODEL_NAME_FOR_TEST,
@@ -20,6 +20,7 @@ from sglang.test.test_utils import (
)
register_cuda_ci(est_time=300, suite="stage-b-test-small-1-gpu-accuracy")
register_amd_ci(est_time=300, suite="stage-b-test-small-1-gpu-accuracy-amd")
class TestEvalAccuracyLarge(CustomTestCase):

View File

@@ -7,7 +7,7 @@ import unittest
from types import SimpleNamespace
from sglang.srt.utils import kill_process_tree
from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
from sglang.test.run_eval import run_eval
from sglang.test.test_utils import (
DEFAULT_MOE_MODEL_NAME_FOR_TEST,
@@ -20,6 +20,7 @@ from sglang.test.test_utils import (
)
register_cuda_ci(est_time=500, suite="stage-b-test-large-2-gpu-accuracy")
register_amd_ci(est_time=500, suite="stage-b-test-large-2-gpu-accuracy-amd")
class TestMoEEvalAccuracyLarge(CustomTestCase):

View File

@@ -3,7 +3,7 @@
import unittest
from types import SimpleNamespace
from sglang.srt.utils import kill_process_tree
from sglang.srt.utils import is_hip, kill_process_tree
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
from sglang.test.few_shot_gsm8k import run_eval
from sglang.test.test_utils import (
@@ -45,7 +45,11 @@ class TestCompressedTensorsLlama3FP8(CustomTestCase):
)
metrics = run_eval(args)
print(f"{metrics=}")
self.assertGreaterEqual(metrics["accuracy"], 0.45)
if is_hip():
# Lower threshold for AMD because FP8 dtype differs (fp8_fnuz)
self.assertGreaterEqual(metrics["accuracy"], 0.40)
else:
self.assertGreaterEqual(metrics["accuracy"], 0.45)
if __name__ == "__main__":

View File

@@ -12,7 +12,7 @@ import unittest
import openai
from sglang.srt.utils import kill_process_tree
from sglang.srt.utils import is_hip, kill_process_tree
from sglang.srt.utils.hf_transformers_utils import get_tokenizer
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
from sglang.test.test_utils import (
@@ -855,6 +855,7 @@ class TestToolChoiceMistral(TestToolChoiceLlama32):
# cls.tokenizer = get_tokenizer(cls.model)
@unittest.skipIf(is_hip(), "Disabled for AMD")
class TestToolChoiceLfm2(TestToolChoiceLlama32):
"""Test tool_choice functionality with LiquidAI LFM2 model"""

View File

@@ -1,6 +1,6 @@
import unittest
from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
from sglang.test.test_utils import (
DEFAULT_MODEL_NAME_FOR_TEST,
DEFAULT_SMALL_MODEL_NAME_FOR_TEST,
@@ -12,6 +12,7 @@ from sglang.test.test_utils import (
)
register_cuda_ci(est_time=120, suite="stage-b-test-large-1-gpu-performance")
register_amd_ci(est_time=120, suite="stage-b-test-large-1-gpu-performance-amd")
class TestBenchOneBatch1GPU(CustomTestCase):

View File

@@ -1,6 +1,6 @@
import unittest
from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
from sglang.test.test_utils import (
DEFAULT_MODEL_NAME_FOR_TEST,
DEFAULT_MOE_MODEL_NAME_FOR_TEST,
@@ -12,6 +12,7 @@ from sglang.test.test_utils import (
)
register_cuda_ci(est_time=180, suite="stage-b-test-large-2-gpu-performance")
register_amd_ci(est_time=630, suite="stage-b-test-large-2-gpu-performance-amd")
class TestBenchOneBatch2GPU(CustomTestCase):

View File

@@ -4,7 +4,8 @@ Performance tests for single GPU that need H200 (80GB) - FP8 and EAGLE tests.
import unittest
from sglang.test.ci.ci_register import register_cuda_ci
from sglang.srt.utils import is_hip
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
from sglang.test.test_utils import (
DEFAULT_DRAFT_MODEL_EAGLE,
DEFAULT_MODEL_NAME_FOR_TEST_FP8,
@@ -17,6 +18,7 @@ from sglang.test.test_utils import (
)
register_cuda_ci(est_time=300, suite="stage-b-test-large-1-gpu-performance")
register_amd_ci(est_time=300, suite="stage-b-test-large-1-gpu-performance-amd")
class TestBenchServing1GPULarge(CustomTestCase):
@@ -38,6 +40,7 @@ class TestBenchServing1GPULarge(CustomTestCase):
else:
self.assertGreater(res["output_throughput"], 4300)
@unittest.skipIf(is_hip(), "Skip Eagle test for ROCm")
def test_online_latency_eagle(self):
res = run_bench_serving(
model=DEFAULT_TARGET_MODEL_EAGLE,

View File

@@ -9,7 +9,7 @@ import unittest
import requests
from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
from sglang.test.test_utils import (
DEFAULT_MODEL_NAME_FOR_TEST,
CustomTestCase,
@@ -20,6 +20,7 @@ from sglang.test.test_utils import (
)
register_cuda_ci(est_time=1000, suite="stage-b-test-large-1-gpu-performance")
register_amd_ci(est_time=1100, suite="stage-b-test-large-1-gpu-performance-amd")
class TestBenchServing1GPUPart1(CustomTestCase):

View File

@@ -5,7 +5,7 @@ Works on 5090 (32GB).
import unittest
from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
from sglang.test.test_utils import (
DEFAULT_SMALL_EMBEDDING_MODEL_NAME_FOR_TEST,
DEFAULT_SMALL_MODEL_NAME_FOR_TEST_SCORE,
@@ -20,6 +20,7 @@ from sglang.test.test_utils import (
)
register_cuda_ci(est_time=900, suite="stage-b-test-large-1-gpu-performance")
register_amd_ci(est_time=900, suite="stage-b-test-large-1-gpu-performance-amd")
class TestBenchServing1GPUPart2(CustomTestCase):

View File

@@ -4,7 +4,7 @@ Performance tests for 2-GPU that need large GPUs (H200 80GB) - MoE and Pipeline
import unittest
from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
from sglang.test.test_utils import (
DEFAULT_MOE_MODEL_NAME_FOR_TEST,
CustomTestCase,
@@ -15,6 +15,7 @@ from sglang.test.test_utils import (
)
register_cuda_ci(est_time=600, suite="stage-b-test-large-2-gpu-performance")
register_amd_ci(est_time=600, suite="stage-b-test-large-2-gpu-performance-amd")
class TestBenchServing2GPU(CustomTestCase):

View File

@@ -4,7 +4,7 @@ VLM Performance tests that work on 5090 (32GB) - VLM offline throughput and onli
import unittest
from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
from sglang.test.test_utils import (
DEFAULT_SMALL_VLM_MODEL_NAME_FOR_TEST,
CustomTestCase,
@@ -14,6 +14,7 @@ from sglang.test.test_utils import (
)
register_cuda_ci(est_time=600, suite="stage-b-test-small-1-gpu-performance")
register_amd_ci(est_time=500, suite="stage-b-test-small-1-gpu-performance-amd")
class TestVLMPerf5090(CustomTestCase):

View File

@@ -23,6 +23,11 @@ PER_COMMIT_SUITES = {
"stage-b-test-small-1-gpu-amd",
"stage-b-test-small-1-gpu-amd-mi35x",
"stage-b-test-large-2-gpu-amd",
"stage-b-test-small-1-gpu-performance-amd",
"stage-b-test-large-1-gpu-performance-amd",
"stage-b-test-large-2-gpu-performance-amd",
"stage-b-test-small-1-gpu-accuracy-amd",
"stage-b-test-large-2-gpu-accuracy-amd",
"stage-c-test-large-8-gpu-amd-mi35x",
],
HWBackend.CUDA: [