Add: declare A5 TMR pipeline contract - #1678
Conversation
|
Important Review skippedAuto incremental reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughThe A5 host runtime now defines and exports a TMR pipeline contract. The contract describes six resources, and unit tests validate its topology, depth, resource count, resource classes, kinds, and reserved sizes. ChangesA5 TMR pipeline contract
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches 💡 1⚔️ Resolve merge conflicts 💡
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
b1200f5 to
91799f7
Compare
Expose the A5 tensor-map and ring-buffer runtime's pipeline depth and resource ownership so ChipWorker can provision two in-flight slots correctly. Share the declaration with a unit test that validates its ABI, arena topology, and complete resource classification.
91799f7 to
78ea067
Compare
Summary
Declare the complete pipeline contract for the A5 tensor-map and ring-buffer runtime instead of relying on the conservative single-slot declaration.
The runtime now reports a pipeline depth of two and classifies all six resources it uses:
HOST_PER_RUNDEVICE_SCRATCHEXEC_HANDLEresourcesWhy
The previous A5 TMR declaration exposed no resources and a pipeline depth of one. As a result,
ChipWorkercould only provision the legacy single-slot path even though the runtime's resource lifetimes support two pipeline slots.The explicit contract lets the worker allocate independent host runtime buffers and execution handles for each in-flight slot while continuing to reuse the pooled device arenas. Device operations remain serialized, so the arena resources do not require per-slot copies.
Implementation
get_pipeline_contract().Validation
test_pipeline_contract: 22/22 tests passed locally.libhost_runtime.sobuilt successfully.get_pipeline_contractis exported from the generated runtime library.Related to #1582.