test: Add HSTU (Generative Recommenders) Torch AOTI CI test - #8907
Open
yinggeh wants to merge 3 commits into
Open
test: Add HSTU (Generative Recommenders) Torch AOTI CI test#8907yinggeh wants to merge 3 commits into
yinggeh wants to merge 3 commits into
Conversation
Add server/qa/L0_torch_aoti_hstu with export.sh (AOTI export + C++ KV-cache reference dump) and test.sh (assemble torch_aoti model repo, start FlexKV, launch tritonserver, run the HSTU client). The in-container command sequences mirror the DevTech reference test (Devtech-Compute/distributed-recommender: ci/tritonserver_test.sh). Docker orchestration of the two recsys-examples images lives in the Triton CI job, so these scripts stay Docker-free. Refs: TRI-1615 Signed-off-by: Yingge He <yinggeh@nvidia.com>
Greptile SummaryAdds an end-to-end HSTU Torch AOTI CI test.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains. Important Files Changed
Sequence DiagramsequenceDiagram
participant Test as test.sh
participant Exporter as HSTU Exporter
participant FlexKV
participant Reference as C++ Runtime
participant Triton
participant Client
Test->>Exporter: Export AOTI package
Test->>FlexKV: Start reference cache
Test->>Reference: Generate reference dump
Test->>FlexKV: Stop and restart clean cache
Test->>Triton: Start with generated model repository
Test->>Triton: Wait for readiness
Test->>Client: Compare Triton output with reference dump
Test->>Triton: Stop server
Test->>FlexKV: Stop cache
Reviews (3): Last reviewed commit: "test: Serve HSTU AOTI test from the imag..." | Re-trigger Greptile |
Fold the export phase into test.sh so the whole flow (AOTI export, reference dump, serving, client) runs in one container like the other L0 tests, instead of orchestrating two images from the runner host. Serve with the tritonserver tree at TRITON_DIR so CI can point the test at the build under test rather than the one bundled in the test image, and clear errexit around the util.sh helpers so failures still reach teardown. Signed-off-by: Yingge He <yinggeh@nvidia.com>
The test image is built on top of the tritonserver under test, so TRITON_DIR resolves to it directly and the LD_LIBRARY_PATH override for a mounted install tree is no longer needed. Signed-off-by: Yingge He <yinggeh@nvidia.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds
qa/L0_torch_aoti_hstu/test.sh, an end-to-end HSTU (Generative Recommenders) Torch AOTI test. One script, one container, matching the other L0 tests:platform: "torch_aoti"model repository,tritonserverand runs the HSTU client against the dump.The command sequence mirrors the DevTech reference test (
Devtech-Compute/distributed-recommender: ci/tritonserver_test.sh), which splits these phases across two images. No Docker here: the CI job runs this in a single container built from recsys-examples'Dockerfile.tritonserverwithBASE_IMAGEset to the server image from the pipeline under test (internaltritonserverMR), so/opt/tritonserveris the Triton being tested.Two things worth review attention:
bash -ex, andrun_server→wait_for_server_readyleavesset -eenabled on return, so everyEXIT_CODE=$?handler here would be dead code and a client failure would abort before the FlexKV andtritonserverteardown.set +eis applied at the top and again afterrun_server.L0_torch_aotihas the same latent pattern, which I've left alone.LD_PRELOADs nine HSTU ops libraries into every process, sotritonserver --versionruns first and a link error surfaces directly instead of as a startup timeout.All artifacts (logs, exported package, reference dump, model repository) are written under the test directory so CI collects them and reruns start clean.
Validation
bash -npasses.tritonserver(invoked exactly as CI does,bash -ex ./test.sh) with a deliberately failing client: the failure is caught, the client log andTest Suite FAILEDbanner are printed, teardown of bothtritonserverand FlexKV runs, and the script exits non-zero. Also confirmed the model repository is assembled with the exported package as version1alongsideconfig.pbtxt.tritonserverCI MR (job gated onTRITON_HSTU,allow_failure: trueuntil confirmed).Refs: TRI-1615