| """ |
| Usage: |
| cd test/srt |
| python3 -m unittest test_deterministic.TestDeterministic.TESTCASE |
| |
| Note that there is also `python/sglang/test/test_deterministic.py` as an interactive test. We are converting that |
| test into unit tests so that's easily reproducible in CI. |
| """ |
|
|
| import unittest |
|
|
| from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci |
| from sglang.test.test_deterministic_utils import ( |
| COMMON_SERVER_ARGS, |
| TestDeterministicBase, |
| ) |
| from sglang.test.test_utils import is_in_amd_ci |
|
|
| register_cuda_ci(est_time=278, suite="stage-b-test-large-1-gpu") |
| register_amd_ci(est_time=278, suite="stage-b-test-small-1-gpu-amd") |
|
|
|
|
| @unittest.skipIf(is_in_amd_ci(), "Skip for AMD CI.") |
| class TestFlashinferDeterministic(TestDeterministicBase): |
| |
| @classmethod |
| def get_server_args(cls): |
| args = COMMON_SERVER_ARGS |
| args.extend( |
| [ |
| "--attention-backend", |
| "flashinfer", |
| ] |
| ) |
| return args |
|
|
|
|
| @unittest.skipIf(is_in_amd_ci(), "Skip for AMD CI.") |
| class TestFa3Deterministic(TestDeterministicBase): |
| |
| @classmethod |
| def get_server_args(cls): |
| args = COMMON_SERVER_ARGS |
| args.extend( |
| [ |
| "--attention-backend", |
| "fa3", |
| ] |
| ) |
| return args |
|
|
|
|
| class TestTritonDeterministic(TestDeterministicBase): |
| |
| @classmethod |
| def get_server_args(cls): |
| args = COMMON_SERVER_ARGS |
| args.extend( |
| [ |
| "--attention-backend", |
| "triton", |
| ] |
| ) |
| return args |
|
|
|
|
| if __name__ == "__main__": |
| unittest.main() |
|
|