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 and test them e.g. here.
However, these tests all inherit from GeneralizedConv2dTests 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 when an arm specific (non-dsp) schedule exists. 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 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
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_RUNNERtest runner.We define arm specific schedules e.g. depthwise_conv2d_nchw.arm_cpu and test them e.g. here.
However, these tests all inherit from GeneralizedConv2dTests 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-awon't suffice because of the dependency on theAOT_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 when an arm specific (non-dsp) schedule exists. So this should also probably be updated.
Any
cortex-mtarget 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_armimage.Steps to reproduce
The following command line should not skip the relevant schedules when the target list has been updated to include
cortex-a:Triage