Triton编译
Triton & Triton Shared代码下载
git clone --recurse-submodules https://github.com/microsoft/triton-shared.git
可以看到在clone triton-shared的同时,也clone了triton代码,并checkout到了配套的commit id:ec8cb09329cf25ac241a7dee1eea5a5d94daef8a:
LLVM代码下载&编译
查看配套的llvm的commit id:
cat triton-shared/triton/cmake/llvm-hash.txt
得到:
clone llvm代码(可以选择任意目录,作者选择放到和triton-shared平行的目录):
git clone https://github.com/llvm/llvm-project.git
再checkout到配套的commit id:
git checkout 570885128351868c1308bb22e8ca351d318bc4a1
LLVM编译(CPU+PTX):
mkdir build && cd build# CUDA_PATH替换成自己的,不编译PTX后端可以省略这3行
export CUDA_PATH=/usr/local/cuda-12.4
export PATH=$CUDA_PATH/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_PATH/lib64:$LD_LIBRARY_PATH# 生成host&PTX的编译工程
cmake -G Ninja ../llvm \-DLLVM_ENABLE_PROJECTS="mlir" \-DLLVM_TARGETS_TO_BUILD="host;NVPTX" \-DMLIR_ENABLE_CUDA_RUNNER=ON \-DCMAKE_BUILD_TYPE=Release \-DLLVM_ENABLE_ASSERTIONS=ON# 启动编译
ninja -j$(nproc)
LLVM编译结果验证
待补充
Triton & Triton Shared编译
进入到之前下载好的triton-shared目录,设置TRITON_PLUGIN_DIRS为当前目录,让Triton编译时能找到triton-shared:
export TRITON_PLUGIN_DIRS=$(pwd)
再进入triton目录,先安装依赖:
pip install -r python/requirements.txt
再设置LLVM路径,让triton编译时使用刚才本地源码编译的版本:
export LLVM_BUILD_DIR=$HOME/llvm-project/build
export LLVM_INCLUDE_DIRS=$LLVM_BUILD_DIR/include
export LLVM_LIBRARY_DIR=$LLVM_BUILD_DIR/lib
export LLVM_SYSPATH=$LLVM_BUILD_DIR
接下来就可以启动triton编译:
pip install -e .
Triton编译结果验证
待补充