ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Triton 安装指南:从 pip 二进制包到源码编译与自定义 LLVM 构建

Triton 安装指南:从 pip 二进制包到源码编译与自定义 LLVM 构建 Triton 安装指南从 pip 二进制包到源码编译与自定义 LLVM 构建【免费下载链接】tritonDevelopment repository for the Triton language and compiler项目地址: https://gitcode.com/GitHub_Trending/tri/triton本篇技术指南面向所有想在本地搭建 Triton 语言与编译器开发/运行环境的开发者系统讲解三种安装路径通过 pip 安装官方二进制 wheel、从源码编译 Python 包、以及基于自定义 LLVM 的深度构建并附带安装后的测试验证方法。读完本文你将能够根据自己是否具备 GPU、是否需要修改编译器源码、是否需要接入自定义 LLVM 等不同场景选择并完成一套可复现、可排错的 Triton 安装方案。安装前的兼容性评估在动手安装之前首先需要确认目标平台与硬件是否在 Triton 的支持范围内。Triton 官方维护一份 Compatibility 清单位于项目 README 的 Compatibility 小节覆盖操作系统Linux、macOS、Windows 等与硬件后端NVIDIA GPU、AMD GPU 等的组合支持情况建议在安装前先核对。从当前仓库源码可以进一步确认支持的软件范围Python 版本setup.py中定义MIN_PYTHON (3, 10)、MAX_PYTHON (3, 14)即本仓库要求 Python 3.103.14见 setup.py构建工具python/requirements.txt要求cmake3.20,4.0与ninja1.11.1setup.py中的CMakeBuild.run()也会在构建前强制校验 CMake 版本不低于 3.20见 setup.py后端依赖仓库默认打包 NVIDIAthird_party/nvidia与 AMDthird_party/amd两个树内后端并可通过TRITON_PLUGIN_DIRS环境变量挂载外部插件后端见 setup.py。方式一通过 pip 安装官方二进制包推荐快速上手如果只是想使用 Triton 编写和运行内核而不需要修改编译器本身最快捷的方式是安装发布在 PyPI 上的稳定版本pip install triton官方二进制 wheel 覆盖CPython 3.103.14开箱即用无需本地编译也无需自行准备 LLVM。安装完成后即可在 Python 中import triton开始编写内核。方式二从源码安装 Python 包需要修改编译器源码、调试前端或后端、或者构建尚未发布到 PyPI 的新功能时应从源码安装。官方文档给出的标准流程如下git clone https://gitcode.com/GitHub_Trending/tri/triton.git cd triton pip install -r python/requirements.txt # 安装构建期依赖 pip install -e . # 以可编辑模式安装下面逐项拆解这条流程背后的细节。构建期依赖说明python/requirements.txt中声明的依赖各有分工见 python/requirements.txt依赖版本要求作用setuptools40.8.0Python 打包基础设施wheel—构建 wheel 所需cmake3.20,4.0驱动 C/MLIR 部分的构建ninja1.11.1比 make 更快的并行构建后端setup.py中通过-G Ninja显式指定nanobind2.10.2绑定 Python 与 C 扩展setup.py通过nanobind.cmake_dir()注入 CMake 参数lit—LLVM 集成测试工具用于运行 MLIR/LLVM 层的 lit 测试此外仓库还维护一份测试期依赖清单python/test-requirements.txtnumpy、pytest、pytest-xdist、scipy 等供make dev-install等流程使用见 python/test-requirements.txt。pip install -e .做了什么setup.py是整个构建的编排入口pip install -e .会依次触发后端准备通过BackendInstaller初始化third_party/nvidia、third_party/amd子模块若是 git 仓库并把各后端的backend、language、tools目录以包或符号链接的方式纳入安装见 setup.pyCMake 配置与编译CMakeBuild以 Ninja 为生成器调用 CMake编译triton/_C/下的 C 扩展triton._C.libtriton并传递TRITON_CODEGEN_BACKENDS、TRITON_VERSION、缓存路径等一系列参数见 setup.py依赖解析解析 LLVM 与 nlohmann/json 两个第三方依赖把结果写入 CMake 变量对应python/build_helpers.py的write_thirdparty_cmake_vars子命令可编辑安装将python/目录作为包源码安装方便修改 Python 代码后无需重装即可生效。版本号方面仓库当前TRITON_VERSION 3.8.0在 git 检出且非 release 分支时还会追加短提交哈希作为本地版本后缀见 setup.py。LLVM 依赖的自动解析机制Triton 依赖 LLVM 生成 GPU/CPU 代码。官方文档特别指出如果系统上没有安装 LLVMsetup.py会自动下载官方预编译的 LLVM 静态库并链接。这套机制实现在python/build_helpers.py中构建时会读取cmake/llvm-info.json其中记录了当前 Triton 所对应的 LLVM 提交哈希llvm_hash、构建号build_number以及各平台预编译包的sha256sum校验值见 cmake/llvm-info.json依据平台自动选择对应的系统后缀如ubuntu-x64、almalinux-arm64、macos-arm64、windows-x64等并拼接下载 URL见 python/build_helpers.py下载完成后会进行 SHA-256 校验校验失败默认中止构建可通过TRITON_UNSAFE_DISABLE_SHA_CHECK强制跳过仅作警告见 python/build_helpers.py解析结果通过LLVM_INCLUDE_DIRS、LLVM_LIBRARY_DIR、LLVM_SYSPATH等变量注入 CMake。需要注意的是LLVM 没有稳定的 API因此 Triton 并不支持任意的 LLVM 版本预编译包与llvm-info.json中记录的提交哈希是严格绑定的。构建期自动下载的 NVIDIA 工具链除了 LLVM构建过程还会根据cmake/nvidia-toolchain-version.json自动下载 NVIDIA 工具链组件并放入third_party/nvidia/backend包括ptxasPTX 汇编器与ptxas-blackwellBlackwell 独立版本因该版本存在 Hopper 相关缺陷而单独维护cuobjdump、nvdisasm反汇编/对象转储工具CUDA 运行时头文件cudart、cudacrt与 CUPTI性能剖析库含 Blackwell 变体。以上组件均可通过TRITON_PTXAS_PATH、TRITON_CUDART_PATH、TRITON_CUPTI_INCLUDE_PATH等环境变量覆盖为本地路径跳过自动下载见 python/build_helpers.py。方式三使用自定义 LLVM 构建当需要针对特定 LLVM 版本做适配、携带本地补丁或进行编译器底层开发时可选择构建自定义 LLVM。官方文档推荐的一键方式make dev-install-llvm该命令在仓库 Makefile 中定义为先用LLVM_BUILD_PATH默认指向仓库根目录下的.llvm-project/build调用scripts/build-llvm-project.sh编译 LLVM再以LLVM_INCLUDE_DIRS、LLVM_LIBRARY_DIR、LLVM_SYSPATH指向该构建产物并执行make dev-install从而让 Triton 链接这套自编译 LLVM。如果选择完全手动构建 LLVM关键步骤是查看 cmake/llvm-info.json 中的llvm_hash字段确认当前 Triton 代码所绑定的 LLVM 版本并将 LLVM 源码 checkout 到该提交用 CMake 构建 LLVM建议开启mlir、llvm、lld、clang等项目并包含NVPTX、AMDGPU等目标后端回到 Triton 仓库设置环境变量后重新执行可编辑安装export LLVM_BUILD_DIR$HOME/llvm-project/build LLVM_INCLUDE_DIRS$LLVM_BUILD_DIR/include \ LLVM_LIBRARY_DIR$LLVM_BUILD_DIR/lib \ LLVM_SYSPATH$LLVM_BUILD_DIR \ pip install -e .提示若系统已安装 LLVMCMake 查找模块cmake/FindLLVM.cmake会按llvm-config-*的多种命名形式含llvm-config-7.0llvm-config-17等带版本后缀的名字及LLVM_ROOT_DIR指定的路径寻找llvm-config并校验版本不低于LLVM_FIND_VERSION见 cmake/FindLLVM.cmake。版本过低时会给出明确报错并建议设置LLVM_ROOT_DIR或LLVM_CONFIG。常用构建选项与环境变量结合仓库 README.md 与 setup.py以下环境变量可在pip install -e .时使用环境变量作用TRITON_BUILD_WITH_CLANG_LLDtrue使用 clang/clang 作为编译器、lld 作为链接器可显著加快链接TRITON_BUILD_WITH_CCACHEtrue启用 ccache 加速增量编译TRITON_HOME/some/path改变.triton缓存目录默认位于用户主目录构建期下载与运行期缓存均存于此MAX_JOBSN限制并行编译任务数构建内存不足时使用setup.py默认取2 * CPU 核数见 setup.pyDEBUG1/REL_WITH_DEB_INFO1切换 CMake 构建类型为 Debug / RelWithDebInfo默认类型为TritonRelBuildWithAsserts见 setup.pyTRITON_OFFLINE_BUILD1离线构建模式禁止任何网络下载此时必须通过LLVM_SYSPATH、JSON_SYSPATH等显式提供依赖见 python/build_helpers.pyTRITON_BUILD_PROTONOFF关闭 Proton 性能剖析组件的构建默认开启TRITON_APPEND_CMAKE_ARGS追加额外的 CMake 参数另外两个值得注意的实践若系统已装 torchmake dev-install中的dev-install-torch目标会卸载pytorch-triton避免其覆盖本地安装的 Triton见 Makefile传--no-build-isolation给pip install可以加快反复迭代构建否则每次pip install都会使用不同的 cmake 符号链接迫使 ninja 重建大部分.a文件见 README.md。安装验证与测试安装完成后即可验证。官方文档给出的测试流程详见 Makefile# 一次性环境准备安装构建依赖与测试依赖并以可编辑模式重装 Triton make dev-install # 运行全部测试需要 GPU make test # 或者在没有 GPU 的机器上运行测试 make test-nogpumake test会串联test-lit通过ninja check-triton-lit-tests运行 MLIR lit 测试、test-cppC 单元测试对应check-triton-unit-tests与test-python覆盖 unit、plugins、regression、interpreter、proton 等 Python 测试套件。make test-nogpu则只执行 lit、C 测试以及不依赖 GPU 的 Python 前端测试适合无 GPU 的开发机快速自检见 Makefile。此外若不需要 GPU 即可验证内核逻辑可在运行测试时设置TRITON_INTERPRET1使用 Triton 解释器执行内核甚至可以在内核代码中插入 Python 断点调试。常见问题与排错提示找不到 LLVM构建报错提示未找到llvm-config时说明既没有预编译包可用也没有本地 LLVM请检查网络预编译 LLVM 需要从远端下载或按“自定义 LLVM”一节手动构建并设置LLVM_SYSPATH。构建内存不足降低MAX_JOBS例如MAX_JOBS4 pip install -e .。反复安装导致全量重编为pip install添加--no-build-isolation并使用make dev-install保持一致的构建环境。需要为 IDE 提供代码补全构建系统会在仓库根目录生成compile_commands.json指向 CMake 构建目录中的真实文件可配置 VSCode C/C 扩展或 clangd 使用它见 README.md。离线环境构建设置TRITON_OFFLINE_BUILD1并提前通过LLVM_SYSPATH、JSON_SYSPATH以及TRITON_PTXAS_PATH、TRITON_CUPTI_LIB_PATH等变量指向本地已有的依赖见 python/build_helpers.py。小结无论你是想快速用上稳定版 Tritonpip install triton还是需要从源码定制编译器git clonepip install -e .或是接入自编译 LLVM 进行底层开发make dev-install-llvm本文梳理的安装路径、构建依赖与可调环境变量都能覆盖对应场景。安装完成后建议至少运行一次make test-nogpu或make test验证环境可用再进入内核开发与测试阶段。【免费下载链接】tritonDevelopment repository for the Triton language and compiler项目地址: https://gitcode.com/GitHub_Trending/tri/triton创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表