项目简介
本项目借助Halide和C语言实现了BLAS(Basic Linear Algebra Subprograms)中的通用矩阵乘法(GEMM)例程,同时对两者程序的计算结果进行对比。GEMM作为线性代数、机器学习等众多领域的常用算法,是神经网络多种运算的基础组成部分。
项目的主要特性和功能
主要特性
- 利用Halide编程语言实现GEMM功能,可开展性能优化和代码生成。
- 提供C语言的GEMM实现,用于与Halide实现的结果进行对比验证。
- 提供详细的安装与使用指南,包含Halide及依赖项LLVM的安装和构建步骤。
功能
- 实现矩阵乘法的核心计算功能。
- 通过对比C语言实现的计算结果,验证Halide实现的正确性。
- 支持跨平台运行,如x86、ARM等硬件平台。
安装使用步骤
安装步骤
- 安装LLVM 11.0.0版本:
cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS="clang;lld;clang-tools-extra" \ -DLLVM_TARGETS_TO_BUILD="X86;ARM;NVPTX;AArch64;Mips;Hexagon" -DLLVM_ENABLE_TERMINFO=OFF \ -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_EH=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_BUILD_32_BITS=OFF\ -S llvm-project/llvm -B llvm-build
cmake --build llvm-build
cmake --install llvm-build --prefix llvm-install
export LLVM_ROOT=$PWD/llvm-install
export LLVM_CONFIG=$LLVM_ROOT/bin/llvm-config
- 复制并构建Halide 11.0.1:
cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_DIR=$LLVM_ROOT/lib/cmake/llvm -S . -B build
cmake --build build
使用步骤
- 进入项目目录:
cd xGEMM_Halide
- 赋予脚本执行权限:
chmod +x script.sh
- 运行脚本:
./script.sh
,运行时需提供包含include和lib文件夹的Halide文件夹的绝对或相对路径。 - 脚本会自动编译并运行C语言和Halide实现的矩阵乘法程序,对比结果以验证Halide实现的正确性。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】