Integrate MLGO into CLGEMM and CLGEMMLowpMatrixMultiplyCore: Part3

* Implement a common interface across both functions and across mlgo and
  default heuristics. This interface is implemented as:

  * A set of adaptor functions in new cl_gemm::auto_heuristics namespace
    as:

    * select_default_*: For selecting configs using default heuristics
    * select_mlgo_*:    For selecting configs using mlgo heuristics

    These adaptor functions have the same interface

  * On top of these adaptor functions, a set of auto_select_* functions
    that automatically selects between mlgo and default (prioritize
    mlgo).

    Note that auto_select_gemm_config_* are implemented in each
    individual function. This is because the auto selection depends on
    the validation of its hosting functions.

    When we are able to decouple and abstract the validation logics,
    it's possible to share the core auto_gemm_config_* in
    cl_gemm::auto_heuristics namespace as well.

* Apply this interface in CLGEMM for the selection of gemm config
  reshaped only rhs and gemm kernel type

Resolves: COMPMID-3843, COMPMID-3844

Signed-off-by: SiCong Li <sicong.li@arm.com>
Change-Id: Idf7fb46837a027449aae1e251346b2701866309a
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4991
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
6 files changed
tree: f6359809cef8d2a03abec3911d523fbcc7996612
  1. .clang-format
  2. .clang-tidy
  3. .github/
  4. Android.bp
  5. LICENSE
  6. README.md
  7. SConscript
  8. SConstruct
  9. SECURITY.md
  10. arm_compute/
  11. data/
  12. docs/
  13. examples/
  14. include/
  15. scripts/
  16. src/
  17. support/
  18. tests/
  19. utils/
README.md

Release repository: https://github.com/arm-software/ComputeLibrary

Development repository: https://review.mlplatform.org/#/admin/projects/ml/ComputeLibrary

Please report issues here: https://github.com/ARM-software/ComputeLibrary/issues

Make sure you are using the latest version of the library before opening an issue. Thanks

News:

Related projects:

Tutorials:

Documentation (API, changelogs, build guide, contribution guide, errata, etc.) available at https://github.com/ARM-software/ComputeLibrary/wiki/Documentation.

Binaries available at https://github.com/ARM-software/ComputeLibrary/releases.

License & Contributions: The software is provided under MIT license. Contributions to this project are accepted under the same license.

Public mailing list

For technical discussion, the ComputeLibrary project has a public mailing list: acl-dev@lists.linaro.org The list is open to anyone inside or outside of Arm to self subscribe. In order to subscribe, please visit the following website: https://lists.linaro.org/mailman/listinfo/acl-dev

Developer Certificate of Origin (DCO)

Before the ComputeLibrary project accepts your contribution, you need to certify its origin and give us your permission. To manage this process we use the Developer Certificate of Origin (DCO) V1.1 (https://developercertificate.org/)

To indicate that you agree to the the terms of the DCO, you "sign off" your contribution by adding a line with your name and e-mail address to every git commit message:

Signed-off-by: John Doe <john.doe@example.org>

You must use your real name, no pseudonyms or anonymous contributions are accepted.