ACL 执行提供程序

ACL 执行提供程序通过 Arm Compute Library 实现了 Arm®-based CPU 上的性能加速。

构建

有关构建说明,请参阅构建页面

使用方法

C/C++

Ort::Env env = Ort::Env{ORT_LOGGING_LEVEL_ERROR, "Default"};
Ort::SessionOptions sf;
bool enable_fast_math = true;
Ort::ThrowOnError(OrtSessionOptionsAppendExecutionProvider_ACL(sf, enable_fast_math));

C API 详情在此处

Python

import onnxruntime

providers = [("ACLExecutionProvider", {"enable_fast_math": "true"})]
sess = onnxruntime.InferenceSession("model.onnx", providers=providers)

性能调优

Arm Compute Library 有一个快速数学模式,可以提高 MatMul 和 Conv 算子的性能,但可能会略微降低精度。此模式默认禁用。

使用 onnxruntime_perf_test 时,请使用标志 -e acl 启用 ACL 执行提供程序。您还可以使用 -i 'enable_fast_math|true' 来启用快速数学模式。

Arm Compute Library 在通过执行提供程序运行时使用 ONNX Runtime 的算子内线程池。您可以使用 -x 选项控制此线程池的大小。

支持的算子

算子 支持的类型
AveragePool float
BatchNormalization float
Concat float
Conv float, float16
FusedConv float
FusedMatMul float, float16
Gemm float
GlobalAveragePool float
GlobalMaxPool float
MatMul float, float16
MatMulIntegerToFloat uint8, int8, uint8+int8
MaxPool float
NhwcConv float
Relu float
QLinearConv uint8, int8, uint8+int8