-
Notifications
You must be signed in to change notification settings - Fork 90
Allow users to control iteration via the concept of iteration spaces. #80
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
base: main
Are you sure you want to change the base?
Allow users to control iteration via the concept of iteration spaces. #80
Conversation
Changes in the work include: - [x] Internally use linear_space for iterating - [x] Simplify type and value iteration in `state_iterator::build_axis_configs` - [x] Store the iteration space in `axes_metadata` - [x] Expose `tie` and `user` spaces to user - [x] Add tests for `linear`, `tie`, and `user` - [x] Add examples for `tie` and `user`
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.
re: naming, I'd stick with zip
as opposed to tie
.
I think "zip" is more intuitive and descriptive based on the precedence of things like thrust::zip_iterator
and std::ranges::zip_view
.
nvbench/axis_iteration_space.cuh
Outdated
virtual std::unique_ptr<axis_space_base> do_clone() const = 0; | ||
virtual detail::axis_space_iterator do_iter(axes_info info) const = 0; | ||
virtual std::size_t do_size(const axes_info &info) const = 0; | ||
virtual std::size_t do_valid_count(const axes_info &info) const = 0; |
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.
It'd be nice to get some docs on the concept of a "axis space" as well as the semantics of these functions.
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.
Agreed, same for the linear_axis_space
and other subclasses below.
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.
I have added more documentation
182f1da
to
a25f578
Compare
0a2130f
to
c3c86e1
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.
Did an initial round of review, but didn't finish -- sharing my comments so far. Will give this a closer look later.
In the meantime, can you go through this and add documentation for the new interfaces?
Having a high-level overview of how these pieces fit together would also be helpful, maybe include that in the class docs for nvbench::detail::axes_iterator
.
Co-authored-by: Allison Vacanti <[email protected]>
Co-authored-by: Allison Vacanti <[email protected]>
Co-authored-by: Allison Vacanti <[email protected]>
Co-authored-by: Allison Vacanti <[email protected]>
Co-authored-by: Allison Vacanti <[email protected]>
Co-authored-by: Allison Vacanti <[email protected]>
Co-authored-by: Allison Vacanti <[email protected]>
Co-authored-by: Allison Vacanti <[email protected]>
Co-authored-by: Allison Vacanti <[email protected]>
5dc6c83
to
d8d80e4
Compare
d8d80e4
to
ba8356f
Compare
282754b
to
5708e6c
Compare
Can we revive this PR? Are there blockers? |
/ok to test 4defa02 |
/ok to test 4bd5690 |
c820ec0
to
a2bf266
Compare
/ok to test |
@alliepiper, there was an error processing your request: See the following link for more information: https://docs.gha-runners.nvidia.com/cpr/e/1/ |
/ok to test a2bf266 |
/ok to test c8909c7 |
I see a way to simplify this. Marking as draft as I work on the implementation. |
Changes in the work include:
state_iterator::build_axis_configs
axes_metadata
zip
anduser
spaces to userlinear
,zip
, anduser
zip
anduser
Fixes #68