diff --git a/.github/workflows/pr-test-amd.yml b/.github/workflows/pr-test-amd.yml index fd4539422..ca63b03bc 100644 --- a/.github/workflows/pr-test-amd.yml +++ b/.github/workflows/pr-test-amd.yml @@ -615,7 +615,7 @@ jobs: fail-fast: false matrix: runner: [linux-mi35x-gpu-8] - part: [0, 1, 2] + part: [0, 1] runs-on: ${{matrix.runner}} steps: - name: Checkout code @@ -637,7 +637,7 @@ jobs: - name: Run test timeout-minutes: 60 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 3 --timeout-per-file 3600 + 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] diff --git a/python/sglang/srt/layers/attention/nsa/nsa_indexer.py b/python/sglang/srt/layers/attention/nsa/nsa_indexer.py index 7f18f131d..0a3c5016b 100644 --- a/python/sglang/srt/layers/attention/nsa/nsa_indexer.py +++ b/python/sglang/srt/layers/attention/nsa/nsa_indexer.py @@ -220,6 +220,8 @@ class Indexer(MultiPlatformOp): @torch.compile(dynamic=True) if not _is_hip else lambda f: f def _project_and_scale_head_gates(self, x: torch.Tensor): + if _is_hip: + x = x.to(self.weights_proj.weight.dtype) weights, _ = self.weights_proj(x) weights = weights.float() weights = weights * self.n_heads**-0.5 @@ -227,6 +229,8 @@ class Indexer(MultiPlatformOp): @torch.compile(dynamic=True) if not _is_hip else lambda f: f def _get_logits_head_gate(self, x: torch.Tensor, q_scale: torch.Tensor): + if _is_hip: + x = x.to(self.weights_proj.weight.dtype) weights, _ = self.weights_proj(x) weights = weights.float() weights = weights * self.n_heads**-0.5 diff --git a/python/sglang/test/test_utils.py b/python/sglang/test/test_utils.py index f983a6456..2f4dac608 100644 --- a/python/sglang/test/test_utils.py +++ b/python/sglang/test/test_utils.py @@ -204,7 +204,7 @@ else: DEFAULT_URL_FOR_TEST = f"http://127.0.0.1:{DEFAULT_PORT_FOR_SRT_TEST_RUNNER + 1000}" if is_in_amd_ci(): - DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH = 3000 + DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH = 3600 # Match H200 timeout for large models if is_blackwell_system(): DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH = 3000 diff --git a/test/registered/amd/test_deepseek_v32_basic.py b/test/registered/amd/test_deepseek_v32_basic.py index 107947c92..1d2e35d48 100644 --- a/test/registered/amd/test_deepseek_v32_basic.py +++ b/test/registered/amd/test_deepseek_v32_basic.py @@ -15,10 +15,16 @@ from sglang.test.test_utils import ( write_github_step_summary, ) -register_amd_ci(est_time=3600, suite="stage-c-test-large-8-gpu-amd-mi35x") +register_amd_ci( + est_time=3600, + suite="stage-c-test-large-8-gpu-amd-mi35x", + disabled="move to nightly for saving time", +) + DEEPSEEK_V32_MODEL_PATH = "deepseek-ai/DeepSeek-V3.2" +@unittest.skipIf(is_in_amd_ci(), "Skip DP test for AMD CI, run TP only.") class TestDeepseekV32DP(CustomTestCase): @classmethod def setUpClass(cls): @@ -90,7 +96,6 @@ class TestDeepseekV32DP(CustomTestCase): self.assertGreater(speed, 50) -@unittest.skipIf(is_in_amd_ci(), "To reduce the CI execution time for AMD.") class TestDeepseekV32TP(CustomTestCase): @classmethod def setUpClass(cls): diff --git a/test/registered/amd/test_deepseek_v32_mtp.py b/test/registered/amd/test_deepseek_v32_mtp.py index d9878c016..24e0143e0 100644 --- a/test/registered/amd/test_deepseek_v32_mtp.py +++ b/test/registered/amd/test_deepseek_v32_mtp.py @@ -21,6 +21,7 @@ register_amd_ci(est_time=3600, suite="stage-c-test-large-8-gpu-amd-mi35x") FULL_DEEPSEEK_V32_MODEL_PATH = "deepseek-ai/DeepSeek-V3.2" +@unittest.skipIf(is_in_amd_ci(), "Skip DP test for AMD CI, run TP only.") class TestDeepseekV32DPMTP(CustomTestCase): @classmethod def setUpClass(cls): @@ -116,7 +117,6 @@ class TestDeepseekV32DPMTP(CustomTestCase): self.assertGreater(speed, 75) -@unittest.skipIf(is_in_amd_ci(), "To reduce the CI execution time for AMD.") class TestDeepseekV32TPMTP(CustomTestCase): @classmethod def setUpClass(cls): @@ -204,7 +204,7 @@ class TestDeepseekV32TPMTP(CustomTestCase): self.assertGreater(acc_length, 2.7) if is_in_amd_ci(): - self.assertGreater(speed, 60) + self.assertGreater(speed, 55) else: self.assertGreater(speed, 130)