当前位置: 首页 > news >正文

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编译结果验证

待补充

http://www.lryc.cn/news/601974.html

相关文章:

  • C++ 多线程 std::thread::joinable
  • 3.Linuxvim编辑器及快捷键的使用
  • 【奔跑吧!Linux 内核(第二版)】第4章:内核编译和调试
  • 进度条制作--Linux知识的小应用
  • Linux 基础命令大全
  • Petalinux生成文件的关系
  • 基于Java的KTV点歌系统的设计与实现
  • 8.c语言指针
  • LeetCode 76:最小覆盖子串
  • 区块链共识机制与联邦学习
  • ArKTS:List 数组
  • D3.js的力导向图使用入门笔记
  • Java面试实战:从基础到架构的全方位技术交锋
  • 系统整理Python的条件语句和常用方法
  • PostgreSQL并发控制
  • Android Framework知识点
  • 1439-素数环2
  • 《关于matplot中绘制图像中文字体乱码问题》
  • Python Pandas.cut函数解析与实战教程
  • 蜣螂优化算法的华丽转身:基于Streamlit的MSIDBO算法可视化平台
  • 《频率之光:共振之战》
  • 商品中心—1.B端建品和C端缓存
  • unity3dTextMeshPro 设置中文字体,解决中文显示为框或中文字后面带背景颜色的问题
  • RK3568 Linux驱动学习——Linux驱动开发准备工作
  • VUE2 学习笔记9 生命周期
  • 数学建模——灰色关联分析
  • 打开postman后一直空白
  • 3D碰撞检测系统 基于SAT算法+Burst优化(Unity)
  • 量子力学的基本假设
  • Java生态下的AI开发利器:LangChain4j与Spring AI深度对比与实战