5.1 KiB
Building OpenCV with ARM Performance Libraries (ARMPL) on Windows
@prev_tutorial{tutorial_windows_install} @next_tutorial{tutorial_linux_install}
@tableofcontents
Introduction
This tutorial explains how to build OpenCV on Windows (AArch64) with ARM Performance Libraries (ARMPL) as a math backend. ARMPL provides optimized BLAS and LAPACK routines for Arm-based hardware and can significantly accelerate OpenCV operations such as DFT and DCT.
Step 1: Download and Install ARM Performance Libraries
-
Open a browser and go to the ARM Performance Libraries Downloads page.
-
Under Windows / AArch64, download the installer for your preferred toolchain:
File Architecture Size arm-performance-libraries_26.01_Windows.msiAArch64 ~240 MiB -
Run the downloaded
.msiinstaller and follow the on-screen instructions. The default installation directory is:C:\Program Files\Arm Performance Libraries\armpl_26.01
Step 2: Configure System Environment Variables
OpenCV's CMake scripts (and the ARMPL runtime itself) need to find the library files at both
build time and run time. Add the following entries to the System PATH variable:
-
Open System Properties, click Advanced, then Environment Variables.
-
Under System variables, select
Pathand click Edit. -
Add the two paths below (adjust the version number if yours differs):
C:\Program Files\Arm Performance Libraries\armpl_26.01\lib C:\Program Files\Arm Performance Libraries\armpl_26.01\bin -
Click OK on every dialog to save.
Step 3: Clone OpenCV
git clone https://github.com/opencv/opencv.git
cd opencv
If you also need the extra modules:
git clone https://github.com/opencv/opencv_contrib.git
Step 4: Configure with CMake
Create a build directory and run CMake with ARMPL support enabled.
Without OpenMP (single-threaded ARMPL):
mkdir build && cd build
cmake -G "Visual Studio 17 2022" -A ARM64 ^
-DWITH_ARMPL=ON ^
-DARMPL_ROOT_DIR="C:\Program Files\Arm Performance Libraries\armpl_26.01" ^
-DWITH_OPENMP=OFF ^
..
With OpenMP (multi-threaded ARMPL):
ARMPL ships both serial and OpenMP-enabled library variants. To use the multi-threaded variant, enable OpenMP in CMake:
mkdir build && cd build
cmake -G "Visual Studio 17 2022" -A ARM64 ^
-DWITH_ARMPL=ON ^
-DARMPL_ROOT_DIR="C:\Program Files\Arm Performance Libraries\armpl_26.01" ^
-DWITH_OPENMP=ON ^
..
@note Enabling WITH_OPENMP=ON causes CMake to link against the armpl_lp64_mp (multi-threaded)
variant of ARMPL. Disabling it links against the serial armpl_lp64 variant. Only one variant
should be enabled at a time to avoid symbol conflicts.
Step 5: Build and Install
Open the generated .sln file in Visual Studio and build the Release configuration, or
build from the command line:
cmake --build . --config Release --parallel
cmake --install . --config Release
Step 6: Verify the Build
After a successful build, confirm that OpenCV detects ARMPL by running:
opencv_version --verbose 2>&1 | findstr /i armpl
You should see a line similar to:
ARMPL: YES (armpl_26.01)
Alternatively, check the CMake configuration log for the line:
-- ARMPL support: YES
Troubleshooting
CMake cannot find ARMPL:
Make sure ARMPL_ROOT_DIR points to the folder that contains both include\ and lib\
sub-directories:
C:\Program Files\Arm Performance Libraries\armpl_26.01
bin\
include\
lib\
Runtime error: DLL not found:
Ensure that both the lib\ and bin\ directories are on the system PATH and that
you opened a new Command Prompt after adding them (changes are not picked up by already-open
sessions).
Linker errors with OpenMP:
If you see duplicate symbol errors when WITH_OPENMP=ON, make sure you are not also linking
against the serial ARMPL library. Pass -DWITH_OPENMP=ON consistently and clean the build
directory before re-running CMake.
See also
- @ref tutorial_windows_install - Generic Windows build guide
- ARM Performance Libraries documentation
- @ref tutorial_general_install - General installation guide