Anndrey24 opened a new pull request, #15711:
URL: https://github.com/apache/tvm/pull/15711

   Whenever both dotprod and i8mm were available together on a target (e.g. 
`"llvm --device=arm_cpu --mtriple=aarch64-linux-gnu 
-mattr=+v8.2a,+dotprod,+i8mm"`), the native int8 conv2d implementation 
corresponding to the `+dotprod` attribute would be selected, but the compute 
definition of the conv2d operation would be constructed for the `+i8mm` 
attribute and its related interleaved schedule instead.  
   The reason for this was a different order of conditional statements being 
used in 2 separate files:
    - `arm_cpu.py`: When selecting the conv2d implementation, the program first 
checked for `dotprod` support. If present, it chose the native schedule
    - `conv2d_gemm.py`: when constructing the compute definition, `i8mm` 
support is checked first, then `dotprod` 
    
   To fix this, I modified the int8 conv2d strategy to prioritize `i8mm` over 
`dotprod` when both are available too. I also added new test cases to cover 
this situation.  
   
   cc @ekalda @lhutton1 @leandron @neildhickey 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to