Add transparent pipelining in dynamic mode#6301
Add transparent pipelining in dynamic mode#6301rostan-t wants to merge 12 commits intoNVIDIA:mainfrom
Conversation
3390a57 to
c886281
Compare
Greptile SummaryThis PR adds Confidence Score: 5/5Safe to merge; no P0/P1 issues found, all findings are P2 style/robustness suggestions. All discovered issues are P2 (stale tensor_args in a disabled-tracing fallback path, O(depth) trie walk in compiled mode, is_dali_constant AST bypass, linecache fragility). The core tracing/compiled state machine, epoch counting, prefetch interaction, and call-chain trie correctness look sound and are well-covered by the new test suite. _compile.py and _source_analysis.py carry the two P2 logic notes; all other files are clean. Important Files Changed
|
b04551d to
b78da96
Compare
b78da96 to
4bb5294
Compare
|
!build |
|
CI MESSAGE: [49377550]: BUILD STARTED |
|
CI MESSAGE: [49377550]: BUILD PASSED |
|
I have an architectural concern - but please correct me if I misunderstood the design.
If so, a reader called with |
| es = ExternalSource( | ||
| source=reader_callback, | ||
| num_outputs=source.num_outputs, | ||
| batch=True, | ||
| device=source.device, | ||
| ) | ||
| reader_outs = es() |
There was a problem hiding this comment.
This is a crutch that allows us to capture more nodes but also a source of major inefficiency.
There was a problem hiding this comment.
We'll include the reader directly in the pipeline in a follow-up PR.
83406ec to
3af166b
Compare
Signed-off-by: Rostan Tabet <rtabet@nvidia.com>
Signed-off-by: Rostan Tabet <rtabet@nvidia.com>
…acing Signed-off-by: Rostan Tabet <rtabet@nvidia.com>
Signed-off-by: Rostan Tabet <rtabet@nvidia.com>
Signed-off-by: Rostan Tabet <rtabet@nvidia.com>
Signed-off-by: Rostan Tabet <rtabet@nvidia.com>
Signed-off-by: Rostan Tabet <rtabet@nvidia.com>
Signed-off-by: Rostan Tabet <rtabet@nvidia.com>
Signed-off-by: Rostan Tabet <rtabet@nvidia.com>
Signed-off-by: Rostan Tabet <rtabet@nvidia.com>
Signed-off-by: Rostan Tabet <rtabet@nvidia.com>
Signed-off-by: Rostan Tabet <rtabet@nvidia.com>
3af166b to
d7832b1
Compare
|
!build |
|
CI MESSAGE: [49721250]: BUILD STARTED |
|
CI MESSAGE: [49721250]: BUILD PASSED |
Category:
New feature (non-breaking change which adds functionality)
Description:
This PR adds the argument
compiletoReader.next_epoch. When set toTruethe first iteration traces the operator calls and builds a pipeline that is used instead of the regular dynamic operators on subsequent iterations.In order to enable prefetching, only operators for which arguments for the next iteration can be determined statically are traced. This is currently limited to arguments that are:
When an operator cannot be traced, it conservatively falls back to dynamic mode. This is the first version and the API is subject to changes in the future. Known current limitations include:
Additional information:
Affected modules and functionalities:
Dynamic mode.
Key points relevant for the review:
Tests:
Checklist
Documentation
This is a first prototype. Documentation can be added later.
DALI team only
Requirements
REQ IDs: N/A
JIRA TASK: DALI-4641