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

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编译:

mkdir build && cd build
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON ../llvm -DLLVM_ENABLE_PROJECTS="mlir;llvm;lld" -DLLVM_TARGETS_TO_BUILD="host;NVPTX;AMDGPU"
ninja -j$(nproc)

LLVM编译结果验证

待补充

Triton & Triton Shared编译

进入到之前下载好的triton-shared目录,设置TRITON_PLUGIN_DIRS为当前目录,让Triton编译时能找到triton-shared:

export TRITON_PLUGIN_DIRS=$(pwd)

安装pytorch和numpy:

pip install numpy
pip install torch==2.7.1

进入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编译的临时下载缓存路径(默认是/home/$USER):

export TRITON_HOME=~/triton-shared/triton

接下来就可以启动triton编译:

pip install -e .

查看TRITON_HOME路径下,会看到一个.triton文件夹,可以看到里面的llvm路径是一个软链接:

在编译过程中,可能会遇到如下错误:

通常是因为系统资源不足(比如内存),可通过如下配置解决:

export MAX_JOBS=8

Triton编译结果验证

待补充

http://www.xdnf.cn/news/16447.html

相关文章:

  • JavaScript - 实现套索工具的demo
  • MySQL 8.0.42创建MGR集群
  • 深度学习(鱼书)day04--手写数字识别项目实战
  • OpenCL study - code03 rgb2gray
  • 通过硬编码函数地址并转换为函数指针来调用函数
  • 6.Pinia快速入门
  • Mitk教程案例项目编译
  • ROS2总结(二)
  • Flutter中 Provider 的基础用法超详细讲解(二)之ChangeNotifierProvider
  • ES6模块详解:核心语法与最佳实践
  • c++加载qml文件
  • 小架构step系列27:Hibernate提供的validator
  • Oracle EBS 库存期间关闭状态“已关闭未汇总”处理
  • [ The Missing Semester of Your CS Education ] 学习笔记 shell篇
  • net8.0一键创建支持(Kafka)
  • Redis6.0+安装教程(Linux)
  • CPA青少年编程能力等级测评试卷及答案 Python编程(三级)
  • 分表分库与分区表
  • 【第六节】方法与事件处理器
  • docker-desktop引擎启动失败报wsl --update
  • Day4.AndroidAudio初始化
  • 数独求解器与生成器(回溯算法实现)
  • 【ESP32】无法找到: “${env:IDF_PATH}/components/“的路径报错问题以及CMAKE构建不成功问题
  • JVM terminated. Exit code=1
  • 最优估计准则与方法(6)递推最小二乘估计(RLS)_学习笔记
  • BeautifulSoup 使用详解与实战示例
  • 单链表的冒泡排序实现:从原理到代码详解
  • Windows 11 Qt 5.15.x 源码编译,支持C++20
  • MySQL进阶学习与初阶复习第四天
  • Canvas实现微信小程序图片裁剪组件全攻略