ARM-software / ComputeLibrary

The Compute Library is a set of computer vision and machine learning functions optimised for both Arm CPUs and GPUs using SIMD technologies.
MIT License
2.75k stars 767 forks source link

there is no multi_isa build support with armv8-a as the base micro architecture #1046

Closed snadampal closed 1 year ago

snadampal commented 1 year ago

Output of 'strings libarm_compute.so | grep arm_compute_version': arm_compute_version=v22.11 Build options: {'Werror': '1', 'debug': '0', 'neon': '1', 'opencl': '0', 'os': 'linux', 'openmp': '1', 'cppthreads': '0', 'arch': 'armv8.2-a', 'multi_isa': '1', 'build': 'native'} Git hash=b'1b3192e8a23513031163dc14d248f47671986121'

Platform: range of armv8 paltforms : Cortex-A72, Neoverse N1, Neoverse V1 etc...

Operating System: Ubuntu 20.04

Problem description: multi_isa support mandated armv8.2-a as the base micro architecture, so today it's not possible to build a single ACL binary that covers all the armv8 architectures.

Workaround: Here is the patch to lower the base architecture requirement to armv8-a for multi_isa builds. This covers all armv8-a platforms, however, excludes the FP16 kernels, which may be an acceptable tradeoff to get the broader armv8 support with single binary.

scons-mutli-isa-build-with-armv8-a-baseline.patch

Request: The request is to provide multi_isa build armv8-a as base architecture, and support fp16 feature similar to bf16 and sve features supported today. Otherwise at least make armv8-a multi_isa without fp16 as the default build option and provide armv8.2-a based multi_isa as an option to get fp16 kernels.

snadampal commented 1 year ago

Hi @SuhailMunshi , here is the review request I've raised on ComputeLibrary gerrit, please review and provide feedback. https://review.mlplatform.org/c/ml/ComputeLibrary/+/9474

morgolock commented 1 year ago

The patch adding multi isa support for armv8-a has been merged.