[AMD] add nightly kv_canary JIT benchmark suite (#28611)
This commit is contained in:
@@ -29,6 +29,7 @@ on:
|
|||||||
- 'all'
|
- 'all'
|
||||||
# 1-GPU Unit Tests (MI30x + MI35x)
|
# 1-GPU Unit Tests (MI30x + MI35x)
|
||||||
- nightly-test-1-gpu-unit-rocm720
|
- nightly-test-1-gpu-unit-rocm720
|
||||||
|
- nightly-test-1-gpu-kernel-rocm720
|
||||||
- nightly-test-1-gpu-mi35x-rocm720
|
- nightly-test-1-gpu-mi35x-rocm720
|
||||||
# 2-GPU and 4-GPU Tests (MI30x + MI35x)
|
# 2-GPU and 4-GPU Tests (MI30x + MI35x)
|
||||||
- nightly-accuracy-2-gpu-rocm720
|
- nightly-accuracy-2-gpu-rocm720
|
||||||
@@ -168,6 +169,36 @@ jobs:
|
|||||||
echo "$(<github_summary.md )" >> $GITHUB_STEP_SUMMARY || true
|
echo "$(<github_summary.md )" >> $GITHUB_STEP_SUMMARY || true
|
||||||
exit ${TEST_EXIT_CODE:-0}
|
exit ${TEST_EXIT_CODE:-0}
|
||||||
|
|
||||||
|
nightly-test-1-gpu-kernel-rocm720:
|
||||||
|
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-test-1-gpu-kernel-rocm720,'))
|
||||||
|
runs-on: linux-mi325-1gpu-sglang
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
ref: ${{ inputs.ref || github.sha }}
|
||||||
|
|
||||||
|
- name: Ensure VRAM is clear
|
||||||
|
run: bash scripts/ci/amd/ensure_vram_clear.sh rocm
|
||||||
|
|
||||||
|
- name: Setup docker (ROCm 7.2)
|
||||||
|
run: |
|
||||||
|
touch github_summary.md
|
||||||
|
bash scripts/ci/amd/amd_ci_start_container.sh --rocm-version rocm720
|
||||||
|
env:
|
||||||
|
GITHUB_WORKSPACE: ${{ github.workspace }}
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: bash scripts/ci/amd/amd_ci_install_dependency.sh
|
||||||
|
- name: Nightly Kernel Benchmark ROCm 7.2 (1-GPU)
|
||||||
|
timeout-minutes: 60
|
||||||
|
run: |
|
||||||
|
bash scripts/ci/amd/amd_ci_exec.sh -w /sglang-checkout/test \
|
||||||
|
-e GITHUB_STEP_SUMMARY="/sglang-checkout/github_summary.md" \
|
||||||
|
python3 run_suite.py --hw amd --suite nightly-amd-kernel-1-gpu --nightly --timeout-per-file 900 ${{ (github.event_name == 'schedule' || inputs.continue_on_error) && '--continue-on-error' || '' }} || TEST_EXIT_CODE=$?
|
||||||
|
echo "$(<github_summary.md )" >> $GITHUB_STEP_SUMMARY || true
|
||||||
|
exit ${TEST_EXIT_CODE:-0}
|
||||||
|
|
||||||
nightly-test-1-gpu-mi35x-rocm720:
|
nightly-test-1-gpu-mi35x-rocm720:
|
||||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-test-1-gpu-mi35x-rocm720,'))
|
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-test-1-gpu-mi35x-rocm720,'))
|
||||||
runs-on: linux-mi35x-gpu-1
|
runs-on: linux-mi35x-gpu-1
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ on:
|
|||||||
- 'all'
|
- 'all'
|
||||||
# 1-GPU Unit Tests (MI30x + MI35x)
|
# 1-GPU Unit Tests (MI30x + MI35x)
|
||||||
- nightly-test-1-gpu-unit
|
- nightly-test-1-gpu-unit
|
||||||
|
- nightly-test-1-gpu-kernel
|
||||||
- nightly-test-1-gpu-mi35x
|
- nightly-test-1-gpu-mi35x
|
||||||
# 2-GPU and 4-GPU Tests (MI30x + MI35x)
|
# 2-GPU and 4-GPU Tests (MI30x + MI35x)
|
||||||
- nightly-accuracy-2-gpu
|
- nightly-accuracy-2-gpu
|
||||||
@@ -165,6 +166,37 @@ jobs:
|
|||||||
echo "$(<github_summary.md )" >> $GITHUB_STEP_SUMMARY || true
|
echo "$(<github_summary.md )" >> $GITHUB_STEP_SUMMARY || true
|
||||||
exit ${TEST_EXIT_CODE:-0}
|
exit ${TEST_EXIT_CODE:-0}
|
||||||
|
|
||||||
|
nightly-test-1-gpu-kernel:
|
||||||
|
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-test-1-gpu-kernel,'))
|
||||||
|
runs-on: linux-mi325-1gpu-sglang
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
ref: ${{ inputs.ref || github.sha }}
|
||||||
|
|
||||||
|
- name: Ensure VRAM is clear
|
||||||
|
run: bash scripts/ci/amd/ensure_vram_clear.sh rocm
|
||||||
|
|
||||||
|
- name: Setup docker
|
||||||
|
run: |
|
||||||
|
touch github_summary.md
|
||||||
|
bash scripts/ci/amd/amd_ci_start_container.sh
|
||||||
|
env:
|
||||||
|
GITHUB_WORKSPACE: ${{ github.workspace }}
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: bash scripts/ci/amd/amd_ci_install_dependency.sh
|
||||||
|
|
||||||
|
- name: Nightly Kernel Benchmark (1-GPU)
|
||||||
|
timeout-minutes: 60
|
||||||
|
run: |
|
||||||
|
bash scripts/ci/amd/amd_ci_exec.sh -w /sglang-checkout/test \
|
||||||
|
-e GITHUB_STEP_SUMMARY="/sglang-checkout/github_summary.md" \
|
||||||
|
python3 run_suite.py --hw amd --suite nightly-amd-kernel-1-gpu --nightly --timeout-per-file 900 ${{ (github.event_name == 'schedule' || inputs.continue_on_error) && '--continue-on-error' || '' }} || TEST_EXIT_CODE=$?
|
||||||
|
echo "$(<github_summary.md )" >> $GITHUB_STEP_SUMMARY || true
|
||||||
|
exit ${TEST_EXIT_CODE:-0}
|
||||||
|
|
||||||
nightly-test-1-gpu-mi35x:
|
nightly-test-1-gpu-mi35x:
|
||||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-test-1-gpu-mi35x,'))
|
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-test-1-gpu-mi35x,'))
|
||||||
runs-on: linux-mi35x-gpu-1
|
runs-on: linux-mi35x-gpu-1
|
||||||
|
|||||||
@@ -23,9 +23,11 @@ from sglang.jit_kernel.benchmark.utils import (
|
|||||||
from sglang.jit_kernel.kv_canary.plan import launch_canary_plan_kernels
|
from sglang.jit_kernel.kv_canary.plan import launch_canary_plan_kernels
|
||||||
from sglang.jit_kernel.kv_canary.verify import VerifyPlan
|
from sglang.jit_kernel.kv_canary.verify import VerifyPlan
|
||||||
from sglang.jit_kernel.kv_canary.write import WritePlan
|
from sglang.jit_kernel.kv_canary.write import WritePlan
|
||||||
from sglang.test.ci.ci_register import register_cuda_ci
|
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||||
|
|
||||||
register_cuda_ci(est_time=900, suite="nightly-kernel-1-gpu", nightly=True)
|
register_cuda_ci(est_time=900, suite="nightly-kernel-1-gpu", nightly=True)
|
||||||
|
# AMD mirrors the CUDA nightly registration (nightly-only, no per-PR suite).
|
||||||
|
register_amd_ci(est_time=900, suite="nightly-amd-kernel-1-gpu", nightly=True)
|
||||||
|
|
||||||
|
|
||||||
_TOTAL_TOKENS_AXIS: list[int] = [256, 4096, 65536, 262144]
|
_TOTAL_TOKENS_AXIS: list[int] = [256, 4096, 65536, 262144]
|
||||||
|
|||||||
@@ -14,9 +14,13 @@ from sglang.jit_kernel.benchmark.utils import (
|
|||||||
from sglang.jit_kernel.kv_canary.scatter_req_token_ids import (
|
from sglang.jit_kernel.kv_canary.scatter_req_token_ids import (
|
||||||
launch_scatter_req_token_ids_kernel,
|
launch_scatter_req_token_ids_kernel,
|
||||||
)
|
)
|
||||||
from sglang.test.ci.ci_register import register_cuda_ci
|
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||||
|
|
||||||
register_cuda_ci(est_time=180, suite="nightly-kernel-1-gpu", nightly=True)
|
register_cuda_ci(est_time=180, suite="nightly-kernel-1-gpu", nightly=True)
|
||||||
|
# AMD mirrors the CUDA nightly registration (nightly-only, no per-PR suite).
|
||||||
|
# Note: amd_ci_exec.sh sets SGLANG_IS_IN_CI, so this runs the CI-reduced range
|
||||||
|
# (_BS_AXIS_CI/_SEQ_LEN_AXIS_CI via get_benchmark_range), same as CUDA nightly.
|
||||||
|
register_amd_ci(est_time=180, suite="nightly-amd-kernel-1-gpu", nightly=True)
|
||||||
|
|
||||||
|
|
||||||
_BS_AXIS_FULL: list[int] = [1, 8, 64, 256]
|
_BS_AXIS_FULL: list[int] = [1, 8, 64, 256]
|
||||||
|
|||||||
@@ -30,9 +30,13 @@ from sglang.jit_kernel.kv_canary.verify import (
|
|||||||
VerifyPlan,
|
VerifyPlan,
|
||||||
launch_canary_verify_kernel,
|
launch_canary_verify_kernel,
|
||||||
)
|
)
|
||||||
from sglang.test.ci.ci_register import register_cuda_ci
|
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||||
|
|
||||||
register_cuda_ci(est_time=900, suite="nightly-kernel-1-gpu", nightly=True)
|
register_cuda_ci(est_time=900, suite="nightly-kernel-1-gpu", nightly=True)
|
||||||
|
# AMD mirrors the CUDA nightly registration (nightly-only, no per-PR suite).
|
||||||
|
# Note: amd_ci_exec.sh sets SGLANG_IS_IN_CI, so this runs the CI-reduced range
|
||||||
|
# (build_fast_matrix_cases via get_benchmark_range), same as CUDA nightly.
|
||||||
|
register_amd_ci(est_time=900, suite="nightly-amd-kernel-1-gpu", nightly=True)
|
||||||
|
|
||||||
|
|
||||||
_X_NAMES = [
|
_X_NAMES = [
|
||||||
|
|||||||
@@ -28,9 +28,13 @@ from sglang.jit_kernel.kv_canary.verify import (
|
|||||||
VerifyOrWriteContext,
|
VerifyOrWriteContext,
|
||||||
)
|
)
|
||||||
from sglang.jit_kernel.kv_canary.write import WritePlan, launch_canary_write_kernel
|
from sglang.jit_kernel.kv_canary.write import WritePlan, launch_canary_write_kernel
|
||||||
from sglang.test.ci.ci_register import register_cuda_ci
|
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||||
|
|
||||||
register_cuda_ci(est_time=900, suite="nightly-kernel-1-gpu", nightly=True)
|
register_cuda_ci(est_time=900, suite="nightly-kernel-1-gpu", nightly=True)
|
||||||
|
# AMD mirrors the CUDA nightly registration (nightly-only, no per-PR suite).
|
||||||
|
# Note: amd_ci_exec.sh sets SGLANG_IS_IN_CI, so this runs the CI-reduced range
|
||||||
|
# (build_fast_matrix_cases via get_benchmark_range), same as CUDA nightly.
|
||||||
|
register_amd_ci(est_time=900, suite="nightly-amd-kernel-1-gpu", nightly=True)
|
||||||
|
|
||||||
|
|
||||||
_X_NAMES = [
|
_X_NAMES = [
|
||||||
|
|||||||
@@ -129,6 +129,7 @@ NIGHTLY_SUITES = {
|
|||||||
HWBackend.AMD: [
|
HWBackend.AMD: [
|
||||||
"nightly-amd",
|
"nightly-amd",
|
||||||
"nightly-amd-1-gpu",
|
"nightly-amd-1-gpu",
|
||||||
|
"nightly-amd-kernel-1-gpu",
|
||||||
"nightly-amd-1-gpu-mi35x",
|
"nightly-amd-1-gpu-mi35x",
|
||||||
"nightly-amd-1-gpu-zimage-turbo",
|
"nightly-amd-1-gpu-zimage-turbo",
|
||||||
"nightly-amd-2-gpu-mi35x-deepseek-r1-mxfp4-tp2",
|
"nightly-amd-2-gpu-mi35x-deepseek-r1-mxfp4-tp2",
|
||||||
|
|||||||
Reference in New Issue
Block a user