Skip to content

Accelerating Computer Vision on ARM Linux aarch64 with ACL Pack ​

ARM Linux aarch64 is everywhere: edge gateways, industrial cameras, robots, and handheld devices. But until recently, most high-performance vision libraries treated it as a second-class citizen.

ACL Pack v1.0.3 now ships native Linux aarch64 static libraries alongside Android arm64-v8a, with the same public API and the same license file.

Why ARM Linux aarch64 matters ​

  • Same silicon, different OS. Many devices run embedded Linux instead of Android.
  • No Java / JNI overhead. Pure native C++ integration.
  • Smaller binaries. The Linux aarch64 libacl.a is roughly 30% smaller than the Android build for the same tier.

Toolchain ​

ComponentVersion
Cross compileraarch64-linux-gnu-g++ 9.4
Validationqemu-aarch64-static 4.2
SDKACL Pack v1.0.3 Linux aarch64

Minimal example ​

cpp
#include <acl/acl.h>
#include <acl/api.h>
#include <cstdint>
#include <vector>

int main() {
    int rv = acl::init("/path/to/license.dat");
    if (rv != 0) return rv;

    const int w = 1920, h = 1280;
    std::vector<uint8_t> src(w * h * 3), dst(w * h * 3);

    acl::neon::cvtcolor::channelSwap<acl::BGR2RGB>(
        src.data(), dst.data(), w, h
    );

    return 0;
}

Build:

bash
aarch64-linux-gnu-g++ -O3 -I./include main.cpp ./lib/libacl.a \
  -o demo_aarch64
qemu-aarch64-static ./demo_aarch64

Validation ​

ACL Pack v1.0.3 Linux aarch64 passes the same 5-axis stock_qa gate as Android:

  1. Zip structure correct.
  2. Positive init returns 0.
  3. Negative init(nullptr) returns -1001.
  4. Pre-init operator call returns -1001.
  5. 6-operator demo PASS.

Package sizes ​

TierLinux aarch64 ziplibacl.a
starter0.82 MB3.94 MB
pro1.13 MB4.89 MB
business1.22 MB5.29 MB

Try it ​

Download the Linux aarch64 build from the v1.0.3 release and read the integration guide.


Questions? See the API Reference or open an issue on GitHub.