欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

llvm mlir triton 学习之旅 (I) Triton 2.2.x 分支和构建

最编程 2024-03-12 15:17:11
...

llvm mlir triton 学习之旅(一)Triton 2.2.x 分支编译与构建

环境准备

  • 硬件环境 n卡8G 40系列
  • ubuntu 22.04
  • gcc 11.4.0
  • clang 14.0.0
  • python 3.10.12
  • cuda 12.1

源码下载

  • llvm-project 使用gh下载,项目很大,使用git下载容易中断 (gh repo clone llvm/llvm-project )
  • triton 使用gh下载,同上 (gh repo clone openai/triton)

版本选择

  • triton学习选择 2.2.x 分支 ,本次构建的triton的commitid:0e7b97bd47fc4beb21ae960a516cd9a7ae9bc060

编译过程,使用本地编译的llvm构建triton

  • 整个编译过程不进行llvm等文件下载,国内环境比较恶劣,下载过慢,经常出错,因此采用如下过程

第一步 准备python venv环境

  • 查看triton项目的readme找到《Install from source》章节,按照 《Or with a virtualenv:》构建一个venv环境,环境名默认为triton,并启用triton环境
git clone https://github.com/openai/triton.git;
cd triton;
git checkout release/2.2.x 
python -m venv .venv --prompt triton;
source .venv/bin/activate;

pip install ninja cmake wheel; # build-time dependencies

第二步 构建llvm

  • 打开triton项目选择合适的llvm,查看triton的readme, 2.2.x分支下,查看 《Building with a custom LLVM》 可以获知对应的llvm版本信息,eg:5e5a22ca
  • 按照章节说明,编译llvm
  • 在目录 ${HOME}/.triton/llvm下面建立一个对应的llvm软连接,eg:
ln -s  ${HOME}/{your_llvm_work_folder}/llvm-project/build llvm-5e5a22ca-ubuntu-x64

第三步 下载对应的pybind11

  • 查看triton项目的python/setup.py文件,找到对应的pybind11信息,下载对应的版本并放到${HOME}/.triton/pybind11目录下
  • 下载解压缩后,可以看到 eg:${HOME}/.triton/pybind11/pybind11-2.11.1

第四步 修改setup.py文件

  • 删除代码中关于llvm pybind的下载相关代码,以及三个cuda生态圈工具的下载
  • 修改记录见 github.com/carolove/St…

安装triton到venv环境

  • pip install -e python

验证

  • 安装对应的python package, 可能会有torch、PySide2、pandas、matplotlib等
  • 运行 python3 python/tutorials/03-matrix-multiplication.py