## 项目概述

Triton 是一个用于编写高效自定义深度学习原语的语言和编译器。其目标是提供一个开源环境，以比 CUDA 更高的生产力编写快速代码，同时比现有 DSL 具有更高的灵活性。该项目基于 MAPL2019 论文《Triton: An Intermediate Language and Compiler for Tiled Neural Network Computations》。

## 核心功能

- 提供类似 Python 的 DSL，用于编写 GPU 内核。
- 基于 MLIR 的编译器，支持 NVIDIA、AMD GPU，CPU 后端正在开发中。
- 支持自动调优（autotuning）、Warp Specialization、软件流水线等高级优化。
- 提供解释器模式，无需 GPU 即可调试内核。
- 支持插件系统，允许扩展自定义 passes、dialects 和后端。

## 适用与不适用场景

**适用场景：**
- 编写高性能的自定义深度学习算子（如 FlashAttention、GEMM）。
- 需要比 CUDA 更高生产力的 GPU 编程。
- 跨平台（NVIDIA、AMD）的 GPU 内核开发。

**不适用场景：**
- 需要完全控制硬件底层细节（如寄存器分配、指令调度）的场景，可考虑 Gluon 或 CUDA。
- 非 GPU 平台（CPU 后端尚不成熟）。
- 需要稳定 API 的生产环境（Triton 仍处于快速迭代中）。

## 技术架构与依赖

- 语言：MLIR（仓库语言标记），但主要使用 Python 和 C++。
- 依赖：LLVM、MLIR、PyTorch（部分测试）、CMake、Ninja。
- 架构：前端（Python DSL）→ Triton IR → MLIR 方言 → LLVM IR → PTX/AMDGPU。
- 支持插件机制，允许第三方后端（如 Intel、CPU）通过插件集成。

## 安装与快速开始

**从 pip 安装稳定版：**
```bash
pip install triton
```

**从源码安装：**
```bash
git clone https://github.com/triton-lang/triton.git
cd triton
pip install -r python/requirements.txt
pip install -e .
```

**使用自定义 LLVM 构建：**
```bash
make dev-install-llvm
```

## 典型使用方法

以下是一个简单的 Triton 内核示例（来自官方文档）：
```python
import triton
import triton.language as tl

@triton.jit
def add_kernel(x_ptr, y_ptr, output_ptr, n_elements, BLOCK_SIZE: tl.constexpr):
    pid = tl.program_id(axis=0)
    block_start = pid * BLOCK_SIZE
    offsets = block_start + tl.arange(0, BLOCK_SIZE)
    mask = offsets < n_elements
    x = tl.load(x_ptr + offsets, mask=mask)
    y = tl.load(y_ptr + offsets, mask=mask)
    output = x + y
    tl.store(output_ptr + offsets, output, mask=mask)
```

## 配置与部署要点

- 环境变量：`TRITON_INTERPRET=1` 启用解释器，`MLIR_ENABLE_DUMP=1` 转储 IR，`TRITON_ALWAYS_COMPILE=1` 强制编译。
- 构建选项：`TRITON_BUILD_WITH_CLANG_LLD=true` 使用 clang/lld，`TRITON_BUILD_WITH_CCACHE=true` 使用 ccache。
- 缓存目录：`TRITON_HOME` 可更改 `.triton` 缓存位置。
- 支持平台：Linux，NVIDIA GPU（Compute Capability 8.0+），AMD GPU（ROCm 6.2+）。

## 限制、风险与许可证

- 许可证：MIT（仓库资料提供）。
- 限制：CPU 后端仍在开发中；Windows 支持不完善；API 可能变动。
- 风险：依赖 LLVM 的特定版本，构建复杂；社区维护，但核心维护者来自 OpenAI 等。

## 官方链接

- 仓库：https://github.com/triton-lang/triton
- 文档：https://triton-lang.org
- 最新发布：v3.7.1（2026-06-18）

## 信息来源和分析时间

- 信息来源：GitHub 仓库 README、CONTRIBUTING.md、docs/meetups 下的会议记录、最新发布信息。
- 分析时间：2026年6月18日（基于最新发布）。