You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tvm.apache.org by "FranklandJack (via GitHub)" <gi...@apache.org> on 2023/05/03 16:44:14 UTC

[GitHub] [tvm] FranklandJack opened a new issue, #14759: [Bug] Missing Conv2D Schedule Test Coverage on Arm® Cortex® A Processors

FranklandJack opened a new issue, #14759:
URL: https://github.com/apache/tvm/issues/14759

   ### Expected behavior
   
   The arm specific schedules are tested on Arm® Cortex® A Processors.
   
   ### Actual behavior
   
   The arm specific schedules are only tested on Arm® Cortex® M Processors via the `AOT_CORSTONE300_RUNNER` test runner.
   
   We define arm specific schedules e.g. [depthwise_conv2d_nchw.arm_cpu](https://github.com/apache/tvm/blob/main/python/tvm/topi/arm_cpu/depthwise_conv2d.py#L36) and test them e.g. [here](https://github.com/apache/tvm/blob/main/python/tvm/topi/arm_cpu/depthwise_conv2d.py#L36).
   
   However, these tests all inherit from [GeneralizedConv2dTests](https://github.com/apache/tvm/blob/main/tests/python/relay/strategy/arm_cpu/test_generalized_conv2d.py#L149) which only run for Arm® Cortex® M Processors, meaning we have no test coverage on Arm® Cortex® A Processors.
   
   Updating the target options here to include `cortex-a` won't suffice because of the dependency on the `AOT_CORSTONE300_RUNNER`, but these schedules should be getting tested on Arm® Cortex® A targets.
   
   It is also worth noting that we are explicitly testing the *generic* schedule for [depthwise NHWC conv2d](https://github.com/apache/tvm/blob/main/tests/python/relay/strategy/arm_cpu/test_depthwise_conv2d.py#L57) when an arm specific (non-dsp) schedule [exists](https://github.com/apache/tvm/blob/main/python/tvm/topi/arm_cpu/depthwise_conv2d.py#L199). So this should also probably be updated. 
   
   Any `cortex-m` target with DSP instructions enabled will go through the DSP specific schedules here, so we may even have less coverage than we think.
   
   
   ### Environment
   
   Any build environment will be able to run the tests in order to check the operators get compiled for the architecture, although if the tests actually run the models then they will need to be tested on an Arm based system with the [`tvm.ci_arm`](https://hub.docker.com/r/tlcpack/ci-arm/tags) image.
   
   ### Steps to reproduce
   
   The following command line should not skip the relevant schedules when the target list has been updated to include `cortex-a`:
   ```
   $ /path/to/tvm/pytest tests/python/relay/strategy/arm_cpu/test_depthwise_conv2d.py -vv
   ```
   
   ### Triage
   
   * topi
   


-- 
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: commits-unsubscribe@tvm.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org