[AMD] fix AMD CI gate (#22974)
Co-authored-by: bingxche <bingxche@amd.com>
This commit is contained in:
co-authored by
bingxche
parent
6e3bbef568
commit
8c13295842
@@ -38,7 +38,7 @@ on:
|
|||||||
- stage-c-test-4-gpu-amd
|
- stage-c-test-4-gpu-amd
|
||||||
- stage-c-test-large-8-gpu-amd
|
- stage-c-test-large-8-gpu-amd
|
||||||
- stage-c-test-large-8-gpu-amd-mi35x
|
- stage-c-test-large-8-gpu-amd-mi35x
|
||||||
- stage-b-test-large-8-gpu-disaggregation-amd
|
- stage-b-test-large-8-gpu-35x-disaggregation-amd
|
||||||
target_stage:
|
target_stage:
|
||||||
description: "Or type comma-separated stage names (overrides dropdown if non-empty)"
|
description: "Or type comma-separated stage names (overrides dropdown if non-empty)"
|
||||||
required: false
|
required: false
|
||||||
@@ -165,13 +165,14 @@ jobs:
|
|||||||
|
|
||||||
# =============================================== sgl-kernel ====================================================
|
# =============================================== sgl-kernel ====================================================
|
||||||
sgl-kernel-unit-test-amd:
|
sgl-kernel-unit-test-amd:
|
||||||
needs: [check-changes]
|
needs: [check-changes, call-gate]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
always() &&
|
||||||
(
|
(
|
||||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',sgl-kernel-unit-test-amd,')) ||
|
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',sgl-kernel-unit-test-amd,')) ||
|
||||||
(
|
(
|
||||||
!(inputs.target_stage || inputs.target_stage_select) &&
|
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||||
|
(needs.call-gate.result == 'success' || needs.call-gate.result == 'skipped') &&
|
||||||
needs.check-changes.outputs.sgl_kernel == 'true'
|
needs.check-changes.outputs.sgl_kernel == 'true'
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -200,25 +201,39 @@ jobs:
|
|||||||
|
|
||||||
- name: Run test
|
- name: Run test
|
||||||
timeout-minutes: 14
|
timeout-minutes: 14
|
||||||
|
env:
|
||||||
|
CONTINUE_ON_ERROR: ${{ needs.check-changes.outputs.continue_on_error }}
|
||||||
run: |
|
run: |
|
||||||
docker exec -w /sglang-checkout/sgl-kernel/tests ci_sglang python3 -m pytest test_moe_align.py
|
# In continue-on-error mode (schedule/full runs), keep running all pytest
|
||||||
docker exec -w /sglang-checkout/sgl-kernel/tests ci_sglang python3 -m pytest test_moe_topk_softmax.py
|
# files and aggregate the exit code. In PR mode, preserve fail-fast.
|
||||||
docker exec -w /sglang-checkout/sgl-kernel/tests/speculative ci_sglang python3 -m pytest test_eagle_utils.py
|
failures=0
|
||||||
docker exec -w /sglang-checkout/sgl-kernel/tests ci_sglang python3 -m pytest test_apply_token_bitmask_inplace.py
|
run_pytest() {
|
||||||
docker exec -w /sglang-checkout/sgl-kernel/tests ci_sglang python3 -m pytest test_activation.py
|
if [[ "$CONTINUE_ON_ERROR" == "true" ]]; then
|
||||||
docker exec -w /sglang-checkout/sgl-kernel/tests ci_sglang python3 -m pytest test_topk.py
|
"$@" || failures=$((failures + 1))
|
||||||
docker exec -w /sglang-checkout/sgl-kernel/tests ci_sglang python3 -m pytest test_kvcacheio.py
|
else
|
||||||
docker exec -w /sglang-checkout/sgl-kernel/tests ci_sglang python3 -m pytest test_moe_topk_sigmoid.py
|
"$@"
|
||||||
docker exec -w /sglang-checkout/sgl-kernel/tests ci_sglang python3 -m pytest test_torch_defaults_reset.py
|
fi
|
||||||
|
}
|
||||||
|
run_pytest docker exec -w /sglang-checkout/sgl-kernel/tests ci_sglang python3 -m pytest test_moe_align.py
|
||||||
|
run_pytest docker exec -w /sglang-checkout/sgl-kernel/tests ci_sglang python3 -m pytest test_moe_topk_softmax.py
|
||||||
|
run_pytest docker exec -w /sglang-checkout/sgl-kernel/tests/speculative ci_sglang python3 -m pytest test_eagle_utils.py
|
||||||
|
run_pytest docker exec -w /sglang-checkout/sgl-kernel/tests ci_sglang python3 -m pytest test_apply_token_bitmask_inplace.py
|
||||||
|
run_pytest docker exec -w /sglang-checkout/sgl-kernel/tests ci_sglang python3 -m pytest test_activation.py
|
||||||
|
run_pytest docker exec -w /sglang-checkout/sgl-kernel/tests ci_sglang python3 -m pytest test_topk.py
|
||||||
|
run_pytest docker exec -w /sglang-checkout/sgl-kernel/tests ci_sglang python3 -m pytest test_kvcacheio.py
|
||||||
|
run_pytest docker exec -w /sglang-checkout/sgl-kernel/tests ci_sglang python3 -m pytest test_moe_topk_sigmoid.py
|
||||||
|
run_pytest docker exec -w /sglang-checkout/sgl-kernel/tests ci_sglang python3 -m pytest test_torch_defaults_reset.py
|
||||||
|
exit $failures
|
||||||
|
|
||||||
sgl-kernel-unit-test-2-gpu-amd:
|
sgl-kernel-unit-test-2-gpu-amd:
|
||||||
needs: [check-changes]
|
needs: [check-changes, call-gate]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
always() &&
|
||||||
(
|
(
|
||||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',sgl-kernel-unit-test-2-gpu-amd,')) ||
|
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',sgl-kernel-unit-test-2-gpu-amd,')) ||
|
||||||
(
|
(
|
||||||
!(inputs.target_stage || inputs.target_stage_select) &&
|
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||||
|
(needs.call-gate.result == 'success' || needs.call-gate.result == 'skipped') &&
|
||||||
needs.check-changes.outputs.sgl_kernel == 'true'
|
needs.check-changes.outputs.sgl_kernel == 'true'
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -247,21 +262,32 @@ jobs:
|
|||||||
|
|
||||||
- name: Run test
|
- name: Run test
|
||||||
timeout-minutes: 20
|
timeout-minutes: 20
|
||||||
|
env:
|
||||||
|
CONTINUE_ON_ERROR: ${{ needs.check-changes.outputs.continue_on_error }}
|
||||||
run: |
|
run: |
|
||||||
docker exec -w /sglang-checkout/sgl-kernel/tests ci_sglang python3 -m pytest test_amd_deterministic_custom_allreduce.py
|
failures=0
|
||||||
docker exec -w /sglang-checkout/sgl-kernel/tests ci_sglang python3 -m pytest test_amd_nccl_allreduce_determinism.py
|
run_pytest() {
|
||||||
|
if [[ "$CONTINUE_ON_ERROR" == "true" ]]; then
|
||||||
|
"$@" || failures=$((failures + 1))
|
||||||
|
else
|
||||||
|
"$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
run_pytest docker exec -w /sglang-checkout/sgl-kernel/tests ci_sglang python3 -m pytest test_amd_deterministic_custom_allreduce.py
|
||||||
|
run_pytest docker exec -w /sglang-checkout/sgl-kernel/tests ci_sglang python3 -m pytest test_amd_nccl_allreduce_determinism.py
|
||||||
|
exit $failures
|
||||||
|
|
||||||
# =============================================== primary ====================================================
|
# =============================================== primary ====================================================
|
||||||
|
|
||||||
stage-a-test-1-gpu-small-amd:
|
stage-a-test-1-gpu-small-amd:
|
||||||
needs: [check-changes]
|
needs: [check-changes, call-gate]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
always() &&
|
||||||
(
|
(
|
||||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-a-test-1-gpu-small-amd,')) ||
|
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-a-test-1-gpu-small-amd,')) ||
|
||||||
(
|
(
|
||||||
!(inputs.target_stage || inputs.target_stage_select) &&
|
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||||
(!failure() && !cancelled()) &&
|
(needs.call-gate.result == 'success' || needs.call-gate.result == 'skipped') &&
|
||||||
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
|
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -294,13 +320,14 @@ jobs:
|
|||||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-a-test-1-gpu-small-amd ${{ needs.check-changes.outputs.continue_on_error == 'true' && '--continue-on-error' || '' }}
|
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-a-test-1-gpu-small-amd ${{ needs.check-changes.outputs.continue_on_error == 'true' && '--continue-on-error' || '' }}
|
||||||
|
|
||||||
jit-kernel-unit-test-amd:
|
jit-kernel-unit-test-amd:
|
||||||
needs: [check-changes]
|
needs: [check-changes, call-gate]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
always() &&
|
||||||
(
|
(
|
||||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',jit-kernel-unit-test-amd,')) ||
|
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',jit-kernel-unit-test-amd,')) ||
|
||||||
(
|
(
|
||||||
!(inputs.target_stage || inputs.target_stage_select) &&
|
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||||
|
(needs.call-gate.result == 'success' || needs.call-gate.result == 'skipped') &&
|
||||||
needs.check-changes.outputs.jit_kernel == 'true'
|
needs.check-changes.outputs.jit_kernel == 'true'
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -557,13 +584,14 @@ jobs:
|
|||||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-b-test-2-gpu-large-amd --auto-partition-id ${{ matrix.part }} --auto-partition-size 2 --timeout-per-file 1800 ${{ needs.check-changes.outputs.continue_on_error == 'true' && '--continue-on-error' || '' }}
|
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-b-test-2-gpu-large-amd --auto-partition-id ${{ matrix.part }} --auto-partition-size 2 --timeout-per-file 1800 ${{ needs.check-changes.outputs.continue_on_error == 'true' && '--continue-on-error' || '' }}
|
||||||
|
|
||||||
multimodal-gen-test-1-gpu-amd:
|
multimodal-gen-test-1-gpu-amd:
|
||||||
needs: [check-changes]
|
needs: [check-changes, call-gate]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
always() &&
|
||||||
(
|
(
|
||||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',multimodal-gen-test-1-gpu-amd,')) ||
|
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',multimodal-gen-test-1-gpu-amd,')) ||
|
||||||
(
|
(
|
||||||
!(inputs.target_stage || inputs.target_stage_select) &&
|
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||||
|
(needs.call-gate.result == 'success' || needs.call-gate.result == 'skipped') &&
|
||||||
needs.check-changes.outputs.multimodal_gen == 'true'
|
needs.check-changes.outputs.multimodal_gen == 'true'
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -679,20 +707,22 @@ jobs:
|
|||||||
--suite 1-gpu \
|
--suite 1-gpu \
|
||||||
--partition-id ${{ matrix.part }} \
|
--partition-id ${{ matrix.part }} \
|
||||||
--total-partitions 4 \
|
--total-partitions 4 \
|
||||||
-k "not flux_2"
|
-k "not flux_2" \
|
||||||
|
${{ needs.check-changes.outputs.continue_on_error == 'true' && '--continue-on-error' || '' }}
|
||||||
|
|
||||||
# Post-test diagnostics
|
# Post-test diagnostics
|
||||||
echo "=== Post-test System Memory Status ==="
|
echo "=== Post-test System Memory Status ==="
|
||||||
free -h
|
free -h
|
||||||
|
|
||||||
multimodal-gen-test-2-gpu-amd:
|
multimodal-gen-test-2-gpu-amd:
|
||||||
needs: [check-changes]
|
needs: [check-changes, call-gate]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
always() &&
|
||||||
(
|
(
|
||||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',multimodal-gen-test-2-gpu-amd,')) ||
|
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',multimodal-gen-test-2-gpu-amd,')) ||
|
||||||
(
|
(
|
||||||
!(inputs.target_stage || inputs.target_stage_select) &&
|
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||||
|
(needs.call-gate.result == 'success' || needs.call-gate.result == 'skipped') &&
|
||||||
needs.check-changes.outputs.multimodal_gen == 'true'
|
needs.check-changes.outputs.multimodal_gen == 'true'
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -806,7 +836,8 @@ jobs:
|
|||||||
ci_sglang python3 sglang/multimodal_gen/test/run_suite.py \
|
ci_sglang python3 sglang/multimodal_gen/test/run_suite.py \
|
||||||
--suite 2-gpu \
|
--suite 2-gpu \
|
||||||
--partition-id ${{ matrix.part }} \
|
--partition-id ${{ matrix.part }} \
|
||||||
--total-partitions 2
|
--total-partitions 2 \
|
||||||
|
${{ needs.check-changes.outputs.continue_on_error == 'true' && '--continue-on-error' || '' }}
|
||||||
|
|
||||||
# Post-test diagnostics
|
# Post-test diagnostics
|
||||||
echo "=== Post-test System Memory Status ==="
|
echo "=== Post-test System Memory Status ==="
|
||||||
@@ -989,7 +1020,7 @@ jobs:
|
|||||||
if: |
|
if: |
|
||||||
always() &&
|
always() &&
|
||||||
(
|
(
|
||||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-large-8-gpu-disaggregation-amd,')) ||
|
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-large-8-gpu-35x-disaggregation-amd,')) ||
|
||||||
(
|
(
|
||||||
!(inputs.target_stage || inputs.target_stage_select) &&
|
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||||
((github.event_name == 'schedule') || (!failure() && !cancelled())) &&
|
((github.event_name == 'schedule') || (!failure() && !cancelled())) &&
|
||||||
|
|||||||
Reference in New Issue
Block a user