[DRAFT]: Formalizing scheduler and async backend behavior through tests - #27258
[DRAFT]: Formalizing scheduler and async backend behavior through tests#27258aendk wants to merge 10 commits into
Conversation
including one which detects the nkvo-bug correctly, and validates the proposed hotfix.
fe9c5d9 to
cd53112
Compare
|
I opened a multi-GPU tensor-split issue that may be a useful real-world target for this scheduler/backend test work: The failure is strongly timing-sensitive and so far I have not been able to reduce it to a deterministic backend test. Setup is Windows + 2x RTX 3090 + Qwen 3.8 27B tensor split. I also reproduced a related failure on official upstream b10595 with MTP disabled. A few things make it interesting for this PR:
This is exactly the kind of bug where turning the timing relationship into a small deterministic scheduler/backend RED would be much more useful than continuing to reproduce it with 20k+ token model workloads. I can run specific synthetic tests if there is a scheduler/meta pattern you want exercised. |
|
@Anbeeld interesting, thanks for linking this. If you are curious and want to debug further in the mean time, I suggest disabling PDL ( |
Overview
This draft PR takes a first stab at formalizing the behavior of the scheduler and the async backends through test coverage.
There is lots to improve here, and I look forward to do so with your input. The main contribution is
test-backend-sched.cpp. To create more complex test-cases, I also added a new operatorOP_SLEEP(see below for details).I've implemented several classes of tests for this:
New OP_SLEEP
OP_SLEEPas opposed to some big MatMul for the following reasons:OP_SLEEPwas easy to implement in this scope (CPU, CUDA, VK)TODO
Requirements
cc @ggerganov @am17an @ORippler @gaugarg-nv