Halide源码编译
Halide
Halide 算是一种编程模式,主要用于在现代机器上来进行高性能的图像和数组处理。其寄生在C++编程语言中,作为DSL编程语言(特定域语言)来实现高性能计算。
目前Halide的支持情况如下所示:
- CPU架构:X86, ARM, MIPS, Hexagon, PowerPC, RISC-V
- 操作系统:Linux, Windows, macOS, Android, iOS, Qualcomm QuRT
- GPU并行编程支持:CUDA, OpenCL, OpenGL Compute Shaders, Apple Metal, Microsoft Direct X 12
支持的编译特性如下所示: - 能够使用Halide的C++接口在C++代码中在内存上构建Pipeline表达式
- 能够编译表达式,持久化编译好的表达式
- 能够运行时编译(JIT-Compile)
- 提供了Python接口
- 要求使用C++17标准
为何要源码编译?
理由千奇百怪,但是人类折腾不止。那么我所能够想到的理由如下所示:
- 不希望使用vcpkg包管理工具(尤其是不会用vcpkg的同志,比如我);
- 有开发工具洁癖的人,不想要使用到那么多的编译工具(比如我);
- 想要把Halide编译出可以随意搬动的第三库(尤其是在跨机器上开发的时候,更是如此);
- 官方发布编译好的Halide二进制包不符合自己的开发环境(比如Ubuntu18.04-x84_64就不存在);
实际上,可能大部分的人是因为没有适合自己机器环境的情况下,才会选择从源码开始编译
源码编译LLVM库
Halide要求比较新的LLVM库,所以我们可以遵循以下的操作来一步一步进行编译和环境设置:
# 1.下载LLVM源码文件,保存为llvm.zip
curl -o llvm.zip https://codeload.github.com/llvm/llvm-project/zip/refs/tags/llvmorg-13.0.0
# 2.解压
unzip llvm.zip
# 3.编译
cd llvm-project-llvmorg-13.0.0
# 3.1.创建安装和编译目录文件
if [ ! -d "./llvm-build" ]; then
mkdir llvm-build
fi
if [ ! -d "./llvm-install" ]; then
mkdir llvm-install
fi
# 3.2.进行编译
cmake -DCMAKE_BUILD_TYPE=Release \
-DLLVM_ENABLE_PROJECTS="clang;lld;clang-tools-extra" \
-DLLVM_TARGETS_TO_BUILD="X86;ARM;NVPTX;AArch64;Mips;Hexagon;WebAssembly" \
-DLLVM_ENABLE_TERMINFO=OFF -DLLVM_ENABLE_ASSERTIONS=ON \
-DLLVM_ENABLE_EH=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_BUILD_32_BITS=OFF \
-S llvm -B llvm-build
cmake --build llvm-build -j32
cmake --install llvm-build --prefix llvm-install
# 4.环境配置
echo "export LLVM_ROOT=`pwd`/llvm-install" >> ~/.bashrc
echo

本文详细介绍了如何从源码编译Halide库,包括为何需要源码编译的原因,如环境兼容性问题,以及编译LLVM库的步骤。首先,编译LLVM需要下载源码,解压,创建编译目录,然后使用cmake和make进行编译和安装。接着,针对Halide的源码编译,关闭不必要的编译选项,如Python接口和OpenCL后端。最后,通过运行教程示例验证Halide是否编译成功。
最低0.47元/天 解锁文章
319

被折叠的 条评论
为什么被折叠?



