Skip to content

[Bug] Missing Conv2D Schedule Test Coverage on Arm® Cortex® A Processors #14759

@FranklandJack

Description

@FranklandJack

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

  • topi

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-triagePRs or issues that need to be investigated by maintainers to find the right assignees to address ittype: bug

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions