OpenCV 5
Windows Armpl Opencv
Windows Armpl Opencv
Building OpenCV with ARM Performance Libraries (ARMPL) on Windows {#tutorial_windows_armpl}
@prev_tutorial{tutorial_windows_install} @next_tutorial{tutorial_linux_install}
@tableofcontents
Introduction {#tutorial_windows_armpl_intro}
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 {#tutorial_windows_armpl_download}
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 {#tutorial_windows_armpl_env}
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\binClick OK on every dialog to save.
Step 3: Clone OpenCV {#tutorial_windows_armpl_clone}
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 {#tutorial_windows_armpl_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 {#tutorial_windows_armpl_build}
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 {#tutorial_windows_armpl_verify}
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 {#tutorial_windows_armpl_troubleshoot}
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 {#tutorial_windows_armpl_seealso}
- @ref tutorial_windows_install - Generic Windows build guide
- ARM Performance Libraries documentation
- @ref tutorial_general_install - General installation guide