Skip to content

如何启用 Halide 后端以提升效率

本教程介绍如何使用 Halide 语言后端在 OpenCV 深度学习模块中运行你的模型。Halide 是一个开源项目,它让我们能够以可读性良好的格式编写图像处理算法,根据特定设备调度计算,并以相当不错的效率对其进行求值。

Halide 项目的官方网站:http://halide-lang.org/。

最新的效率对比:https://github.com/opencv/opencv/wiki/DNN-Efficiency

注意: LLVM 的编译可能需要很长时间。

cd llvm_root
mkdir build && cd build
cmake -DLLVM_ENABLE_TERMINFO=OFF -DLLVM_TARGETS_TO_BUILD="X86" -DLLVM_ENABLE_ASSERTIONS=ON -DCMAKE_BUILD_TYPE=Release ..
make -j4
  • 在 Windows 上构建 LLVM(Developer Command Prompt)
mkdir \\path-to-llvm-build\\ && cd \\path-to-llvm-build\\
cmake.exe -DLLVM_ENABLE_TERMINFO=OFF -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_ENABLE_ASSERTIONS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=\\path-to-llvm-install\\ -G "Visual Studio 14 Win64" \\path-to-llvm-src\\
MSBuild.exe /m:4 /t:Build /p:Configuration=Release .\\INSTALL.vcxproj

注意: \\path-to-llvm-build\\ 和 \\path-to-llvm-install\\ 是不同的目录。

git clone https://github.com/halide/Halide.git
  • 在 Linux 上构建 Halide
cd halide_root
mkdir build && cd build
cmake -DLLVM_DIR=llvm_root/build/lib/cmake/llvm -DCMAKE_BUILD_TYPE=Release -DLLVM_VERSION=40 -DWITH_TESTS=OFF -DWITH_APPS=OFF -DWITH_TUTORIALS=OFF ..
make -j4
  • 在 Windows 上构建 Halide(Developer Command Prompt)
cd halide_root
mkdir build && cd build
cmake.exe -DLLVM_DIR=\\path-to-llvm-install\\lib\\cmake\\llvm -DLLVM_VERSION=40 -DWITH_TESTS=OFF -DWITH_APPS=OFF -DWITH_TUTORIALS=OFF -DCMAKE_BUILD_TYPE=Release -G "Visual Studio 14 Win64" ..
MSBuild.exe /m:4 /t:Build /p:Configuration=Release .\\ALL_BUILD.vcxproj

在构建 OpenCV 时,添加以下配置选项:

  • WITH_HALIDE - 启用 Halide 链接

  • HALIDE_ROOT_DIR - Halide 构建目录的路径

net.setPreferableBackend(DNN_BACKEND_HALIDE);