-
Notifications
You must be signed in to change notification settings - Fork 68
[boo] introduce op registry #1078
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
4295d73
to
8e0af50
Compare
8e0af50
to
03131f3
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.
Overall looks good to me! Other than the registration mechanism, just minor comments.
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.
Overall I think this is a welcome restructuring. I have some suggestions about the setup for registration. Let me know what you think.
Introduce a registry class handling metadata classes for BOO ops. This automatically traverses the ops available in `op_exports` and registers them with a singleton registry class that can be later queried using the op "name". This name is supposed to be a unique string that cannot appear in the CLI syntax of another op. This is suboptimal and is difficult to ensure statically without a formal syntax, but will work as long as the syntax mirrors that of MIOpen driver. This allows a major refactoring of op exports that can now be aggregated in a single directory and share generic implementation for benchmarking, numerics, and cache prepopulation. Note that most of the implementation was refactored previously leaing only shims in specific op exports. Most of this commit is moving code around. Cache pre-population test is updated to exercise the multi-op parser and dispatch. Driver files are updated to use the registry instead of directly loading individual ops. READMEs are consolidated into the top-level user-facing document and developer-oriented document in the `driver` directory. Signed-off-by: Alex Zinenko <git@ozinenko.com>
It is broken at IREE level Signed-off-by: Alex Zinenko <git@ozinenko.com>
Signed-off-by: Alex Zinenko <git@ozinenko.com>
48659c3
to
6e48c00
Compare
Signed-off-by: Alex Zinenko <git@ozinenko.com>
PTAL, I'll move gemm separately so we don't have more merge conflicts |
Introduce a registry class handling metadata classes for BOO ops. This automatically traverses the ops available in
op_exports
and registers them with a singleton registry class that can be later queried using the op "name". This name is supposed to be a unique string that cannot appear in the CLI syntax of another op. This is suboptimal and is difficult to ensure statically without a formal syntax, but will work as long as the syntax mirrors that of MIOpen driver.