-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
[Hexagon] Add a test to show how to use multi input async dma pipelin… #13110
Conversation
Thanks for contributing to TVM! Please refer to the contributing guidelines https://tvm.apache.org/docs/contribute/ for useful information and tips. Please request code reviews from Reviewers by @-ing them in a comment. Generated by tvm-bot |
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.
Looks really good overall!
sch.compute_at(cache_read_block_b, no) | ||
sch.fuse(*sch.get_loops(cache_read_block_b)[1:]) | ||
|
||
cache_read_block_c = sch.cache_write(compute_block, 0, "global.vtcm") |
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.
"cache_write_block_c"
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.
✅
b, | ||
size_a, | ||
expected_output, | ||
use_async_copy=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.
do you want to enable async_copy by default?
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.
No, not that it mattered much since other runs dont mark those stages as async anyway though. Just felt more correct to have it as off.
8eb3278
to
7617c4e
Compare
…ule generated conv2d.
6d9b5cb
to
66127f4
Compare
apache#13110) * [Hexagon] Add a test to show how to use multi input async dma pipelining. * updates to variable naming and removal of 4.19MB test that fails on 888 devices. * [Hexagon] Add test cases for adding async dma pipleining to metaschedule generated conv2d. * Add tests for actual conv2d sourced from resnet50 metascheduling. * [Hexagon] Change logs. * Add test to show effect of increased buffer sizes for pipelining. * skip tests in CI. * lint
apache#13110) * [Hexagon] Add a test to show how to use multi input async dma pipelining. * updates to variable naming and removal of 4.19MB test that fails on 888 devices. * [Hexagon] Add test cases for adding async dma pipleining to metaschedule generated conv2d. * Add tests for actual conv2d sourced from resnet50 metascheduling. * [Hexagon] Change logs. * Add test to show effect of increased buffer sizes for pipelining. * skip tests in CI. * lint
B_i8x128 = B[0, 0:128] | ||
B_i32x32: T.int32x32 = T.reinterpret(B_i8x128, dtype="int32x32") | ||
C[0:32] = T.call_llvm_pure_intrin( | ||
4217, |
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.
This number doesn't mean anything---those IDs are generated on every build. What intrinsic was this intended to represent?
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.
yeah we should replace this with T.llvm_lookup_intrinsic_id("llvm.hexagon.V6.vrmpyub.acc.128B")
@nverke
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.
Ahh interesting thought that they were tied to each intrin, will update accordingly!
…ing.
Just adding an example to show https://github.com/apache/tvm/pull/13037/files addition working for these tests as well.
cc @adstraw