-
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
Add smmla/ummla support in quantized Conv2d #6802
Conversation
cc: @anijain2305 , @FrozenGene , @mbaret , @u99127 |
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.
Nice addition @giuseros !
LGTM
9c8a6fe
to
b8c8c91
Compare
Thanks for the review @mbaret ! The only caveat now is that we would need support for LLVM-11 in the CI to run the integration test (llvm-8 does not have i8mm support). I am commenting out the test for now, and I will enable it back once the LLVM version in the CI will be updated |
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.
LGTM, nice job again Giuseppe.
This introduces support for `smmla`/`ummla` instructions in TVM: - Added `is_mmla_available` function in `arm_utils.py` - Added the tiling node + tensorization schedule in `conv2d_gemm.py` - Added the intrinsic support in `tensor_intrin.py` - Added the test-case in `test_topi_conv2d_int8.py` Change-Id: Iff48c77f16fe1e64ecb733da965a879651ce635f
32f03d4
to
fe99830
Compare
Hi @anijain2305 , @FrozenGene , Any chance you could review this? Thanks in advance! |
About llvm11, i think we could update it for our ci |
Hi @FrozenGene , |
yes |
* Add smmla/ummla support in quantized Conv2d This introduces support for `smmla`/`ummla` instructions in TVM: - Added `is_mmla_available` function in `arm_utils.py` - Added the tiling node + tensorization schedule in `conv2d_gemm.py` - Added the intrinsic support in `tensor_intrin.py` - Added the test-case in `test_topi_conv2d_int8.py` Change-Id: Iff48c77f16fe1e64ecb733da965a879651ce635f * Address review comments and test failures * Fix linting * Rebasing
* Add smmla/ummla support in quantized Conv2d This introduces support for `smmla`/`ummla` instructions in TVM: - Added `is_mmla_available` function in `arm_utils.py` - Added the tiling node + tensorization schedule in `conv2d_gemm.py` - Added the intrinsic support in `tensor_intrin.py` - Added the test-case in `test_topi_conv2d_int8.py` Change-Id: Iff48c77f16fe1e64ecb733da965a879651ce635f * Address review comments and test failures * Fix linting * Rebasing
* Add smmla/ummla support in quantized Conv2d This introduces support for `smmla`/`ummla` instructions in TVM: - Added `is_mmla_available` function in `arm_utils.py` - Added the tiling node + tensorization schedule in `conv2d_gemm.py` - Added the intrinsic support in `tensor_intrin.py` - Added the test-case in `test_topi_conv2d_int8.py` Change-Id: Iff48c77f16fe1e64ecb733da965a879651ce635f * Address review comments and test failures * Fix linting * Rebasing
High level description of the submission
This introduces support for
smmla
/ummla
instructions in TVM:is_mmla_available
function inarm_utils.py
conv2d_gemm.py
tensor_intrin.py
test_topi_conv2d_int8.py
RFC
This PR is based on the following RFC: https://discuss.tvm.apache.org/t/rfc-improve-quantized-convolution-through-mmla-instructions/8336
Change-Id: Iff48c77f16fe1e64ecb733da965a879651ce635f