littlebot
Published on 2025-04-12 / 0 Visits
0

【源码】基于Halide的矩阵乘法(GEMM)实现系统

项目简介

本项目借助Halide和C语言实现了BLAS(Basic Linear Algebra Subprograms)中的通用矩阵乘法(GEMM)例程,同时对两者程序的计算结果进行对比。GEMM作为线性代数、机器学习等众多领域的常用算法,是神经网络多种运算的基础组成部分。

项目的主要特性和功能

主要特性

  1. 利用Halide编程语言实现GEMM功能,可开展性能优化和代码生成。
  2. 提供C语言的GEMM实现,用于与Halide实现的结果进行对比验证。
  3. 提供详细的安装与使用指南,包含Halide及依赖项LLVM的安装和构建步骤。

功能

  1. 实现矩阵乘法的核心计算功能。
  2. 通过对比C语言实现的计算结果,验证Halide实现的正确性。
  3. 支持跨平台运行,如x86、ARM等硬件平台。

安装使用步骤

安装步骤

  1. 安装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
  2. 复制并构建Halide 11.0.1: cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_DIR=$LLVM_ROOT/lib/cmake/llvm -S . -B build cmake --build build

使用步骤

  1. 进入项目目录:cd xGEMM_Halide
  2. 赋予脚本执行权限:chmod +x script.sh
  3. 运行脚本:./script.sh,运行时需提供包含include和lib文件夹的Halide文件夹的绝对或相对路径。
  4. 脚本会自动编译并运行C语言和Halide实现的矩阵乘法程序,对比结果以验证Halide实现的正确性。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】