Halide源码编译

本文详细介绍了如何从源码编译Halide库,包括为何需要源码编译的原因,如环境兼容性问题,以及编译LLVM库的步骤。首先,编译LLVM需要下载源码,解压,创建编译目录,然后使用cmake和make进行编译和安装。接着,针对Halide的源码编译,关闭不必要的编译选项,如Python接口和OpenCL后端。最后,通过运行教程示例验证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标准

为何要源码编译?

  理由千奇百怪,但是人类折腾不止。那么我所能够想到的理由如下所示:

  1. 不希望使用vcpkg包管理工具(尤其是不会用vcpkg的同志,比如我);
  2. 有开发工具洁癖的人,不想要使用到那么多的编译工具(比如我);
  3. 想要把Halide编译出可以随意搬动的第三库(尤其是在跨机器上开发的时候,更是如此);
  4. 官方发布编译好的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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值