-
Notifications
You must be signed in to change notification settings - Fork 20
Remove cross-thread task lookup by task_id
#295
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Check-perf-impact results: (e884a5b266877a2f8b1f68ea7d0b8bef) ❓ No new benchmark data submitted. ❓ |
a0a351b
to
784bdd9
Compare
Pull Request Test Coverage Report for Build 11609757631Details
💛 - Coveralls |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
Check-perf-impact results: (da9a532564f4bc5510893652bf98be8b)
Relative execution time per category: (mean of relative medians)
|
Check-perf-impact results: (2a3c70512edf780ef21985d30e324aa9) 🚀 Significant speedup (<0.80x) in some microbenchmark results: normalizing a fully mergeable tiling of boxes - 1 / large, native Relative execution time per category: (mean of relative medians)
|
72577dd
to
1f38098
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Clang-Tidy
found issue(s) with the introduced code (1/6)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Clang-Tidy
found issue(s) with the introduced code (2/6)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Clang-Tidy
found issue(s) with the introduced code (3/6)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Clang-Tidy
found issue(s) with the introduced code (4/6)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Clang-Tidy
found issue(s) with the introduced code (5/6)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Clang-Tidy
found issue(s) with the introduced code (6/6)
1f38098
to
b1b034e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Clang-Tidy
found issue(s) with the introduced code (1/2)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Clang-Tidy
found issue(s) with the introduced code (2/2)
The old master-worker model required looking up tasks by task_id, so task_manager and task_ring_buffer provided this lookup functionality. This is no longer necessary, and the scheduler thread can be decoupled from task_manager by handling stable task pointers directly. Task instances are now managed in the same epoch-based structure employed for instructions, and the ring buffer size limit is gone. Additionally, the initial epoch is now generated explicitly instead of implicitly in the task_manager constructor, so it can be treated like any other instruction, avoiding many special-casings.
b1b034e
to
c85888f
Compare
This PR is in preparation of the command lookahead feature, which will transparently avoid buffer resizes, but requires an arbitrary large task graph to be kept in memory, which is not possible with the bounded-capacity
task_ring_buffer
.The old master-worker model required looking up tasks by
task_id
, so task_manager andtask_ring_buffer
provided this lookup functionality. This is no longer necessary, and the scheduler thread can be decoupled fromtask_manager
by handling stable task pointers directly. This change simplifies the interactions between application thread and scheduler thread considerably.const task*
pointer directly, which is guaranteed to be live by the horizon mechanism. In the future task pointers can be introduced to instructions as well, avoiding kernel lambda copying.task_callback
is replaced with a delegate interface, and[tci]dag_test_contexts
can avoid manually constructing horizons.