DO NOT MERGE - for comparison purposes #7
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: PR Test (AMD) | |
| on: | |
| push: | |
| branches: [ main ] | |
| paths: | |
| - "python/sglang/**" | |
| - "test/**" | |
| - "sgl-kernel/**" | |
| pull_request: | |
| branches: [ main ] | |
| paths: | |
| - "python/sglang/**" | |
| - "test/**" | |
| - "sgl-kernel/**" | |
| workflow_dispatch: | |
| concurrency: | |
| group: pr-test-amd-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| accuracy-test-1-gpu-amd: | |
| if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && | |
| github.event.pull_request.draft == false | |
| runs-on: linux-mi300-gpu-1 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup docker | |
| run: | | |
| # Ensure GPU isolation if pod is part of kubernetes setup with DEVICE_FLAG. | |
| if [ -f "/etc/podinfo/gha-render-devices" ]; then | |
| DEVICE_FLAG=$(cat /etc/podinfo/gha-render-devices) | |
| else | |
| DEVICE_FLAG="--device /dev/dri" | |
| fi | |
| docker pull lmsysorg/sglang:v0.4.3.post4-rocm630 | |
| docker run -dt --user root --device=/dev/kfd $DEVICE_FLAG \ | |
| -v ${{ github.workspace }}:/sglang-checkout --ipc=host --group-add video \ | |
| --cap-add=SYS_PTRACE -e HF_TOKEN=${HF_TOKEN} --security-opt seccomp=unconfined \ | |
| -w /sglang-checkout --name ci_sglang \ | |
| lmsysorg/sglang:v0.4.3.post4-rocm630 | |
| - name: Install dependencies | |
| run: | | |
| docker exec ci_sglang pip install --upgrade pip | |
| docker exec ci_sglang pip uninstall sgl-kernel -y || true | |
| docker exec -w /sglang-checkout/sgl-kernel ci_sglang python3 setup_rocm.py install | |
| docker exec ci_sglang pip install -e "python[dev_hip]" | |
| docker exec -w / ci_sglang git clone https://github.com/merrymercy/human-eval.git | |
| docker exec -w /human-eval ci_sglang pip install -e . | |
| - name: Evaluate Accuracy | |
| timeout-minutes: 20 | |
| run: | | |
| docker exec -w /sglang-checkout/test/srt ci_sglang python3 test_eval_accuracy_large.py | |
| docker exec -w /sglang-checkout/test/srt ci_sglang python3 test_eval_fp8_accuracy.py | |
| docker exec -w /sglang-checkout/test/srt ci_sglang python3 models/test_qwen_models.py | |
| mla-test-1-gpu-amd: | |
| if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && | |
| github.event.pull_request.draft == false | |
| runs-on: linux-mi300-gpu-1 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup docker | |
| run: | | |
| # Ensure GPU isolation if pod is part of kubernetes setup with DEVICE_FLAG. | |
| if [ -f "/etc/podinfo/gha-render-devices" ]; then | |
| DEVICE_FLAG=$(cat /etc/podinfo/gha-render-devices) | |
| else | |
| DEVICE_FLAG="--device /dev/dri" | |
| fi | |
| docker pull lmsysorg/sglang:v0.4.3.post4-rocm630 | |
| docker run -dt --user root --device=/dev/kfd $DEVICE_FLAG \ | |
| -v ${{ github.workspace }}:/sglang-checkout --ipc=host --group-add video \ | |
| --cap-add=SYS_PTRACE -e HF_TOKEN=${{ secrets.AMD_HF_TOKEN }} --security-opt seccomp=unconfined \ | |
| -w /sglang-checkout --name ci_sglang \ | |
| lmsysorg/sglang:v0.4.3.post4-rocm630 | |
| - name: Install dependencies | |
| run: | | |
| docker exec ci_sglang pip install --upgrade pip | |
| docker exec ci_sglang pip uninstall sgl-kernel -y || true | |
| docker exec -w /sglang-checkout/sgl-kernel ci_sglang python3 setup_rocm.py install | |
| docker exec ci_sglang pip install -e "python[dev_hip]" | |
| docker exec -w / ci_sglang git clone https://github.com/merrymercy/human-eval.git | |
| docker exec -w /human-eval ci_sglang pip install -e . | |
| - name: MLA TEST | |
| timeout-minutes: 20 | |
| run: | | |
| docker exec -w /sglang-checkout/test/srt ci_sglang python3 test_mla.py | |
| finish: | |
| if: always() | |
| needs: [ | |
| accuracy-test-1-gpu-amd, mla-test-1-gpu-amd | |
| ] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check all dependent job statuses | |
| run: | | |
| results=(${{ join(needs.*.result, ' ') }}) | |
| for result in "${results[@]}"; do | |
| if [ "$result" = "failure" ] || [ "$result" = "cancelled" ]; then | |
| echo "Job failed with result: $result" | |
| exit 1 | |
| fi | |
| done | |
| echo "All jobs completed successfully" | |
| exit 0 |