Skip to content
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

[DNNL] Add support of QNN primitives for DNNL runtime #9618

Closed
wants to merge 15 commits into from

Conversation

apeskov
Copy link
Contributor

@apeskov apeskov commented Dec 1, 2021

The main value of that change is enable qnn.conv2d and qnn.dense primitive for DNNL base json runtime.
Some of these changes is useful for all type of workloads, not only int8 specific.

Together with that there was performed some refactoring of internal infrastructure of DNNL plugin. The main int8 unrelated changes are:

  • Improved thread safety. Now DNNL runtime can be used in multi instance mode.
  • Zero copy input/output handling
  • Scratchpad specification
  • Use DNNL query api to define proper layouts (additional data copy is possible)
  • Indirect addressing of memory objects. Internal tensor registry allow to clone temp/const tensor depending particular thread id.
  • Relative positioning of input arguments. Index of each optional arguments specified via attributes
  • Introduced ability of calculating constant subgraphs in DNNL code generator stage

@masahi
Copy link
Member

masahi commented Jan 9, 2022

Please update this PR.

@masahi masahi self-assigned this Jan 9, 2022
Signed-off-by: Alexander Peskov <[email protected]>
Signed-off-by: Alexander Peskov <[email protected]>
Signed-off-by: Alexander Peskov <[email protected]>
Signed-off-by: Alexander Peskov <[email protected]>
Signed-off-by: Alexander Peskov <[email protected]>
Signed-off-by: Alexander Peskov <[email protected]>
Signed-off-by: Alexander Peskov <[email protected]>
Signed-off-by: Alexander Peskov <[email protected]>
Signed-off-by: Alexander Peskov <[email protected]>
@apeskov
Copy link
Contributor Author

apeskov commented Jan 14, 2022

@masahi PR is updated. You may continue review.

@apeskov
Copy link
Contributor Author

apeskov commented Jan 14, 2022

@tmoreau89 @gfursin Just FYI.

@tmoreau89
Copy link
Contributor

Thanks @apeskov - I'm also looping in @mbs-octoml on the review of this PR

@masahi
Copy link
Member

masahi commented Jan 18, 2022

Together with that there was performed some refactoring of internal infrastructure of DNNL plugin

If that's the case, I want this PR to be split into smaller ones. It's hard to review 3K PR with lots of moving pieces. Indeed 3K is too big for just introducing int8 support.

Copy link
Member

@masahi masahi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At least changes in dnnl_json_runtime.cc and dnnl_node_helper.h are relatively unrelated to int8. Please send them first.

Also we use CamelCase throughout the codebase, so please follow the convention.

@areusch
Copy link
Contributor

areusch commented Apr 8, 2022

@apeskov @masahi what's the status on this one? should we close?

@masahi
Copy link
Member

masahi commented Apr 9, 2022

Closing, feel free to reopen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants