FBTriton View on GitHub ↗

Triton at Meta

Overview

Explore Triton, TLX, TorchTLX, and the tooling used to build and optimize GPU kernels.

This site covers four connected parts of Meta's work: the Triton compiler, the TLX low-level programming model, the TorchTLX path that brings TLX kernels into PyTorch 2, and the tools used to understand and improve generated GPU kernels.

News

[Aug'26] GPU MODE competition wins:

Eigh: #5
Cholesky: #3
QR decomposition: #7
Trimul competition: #1

[Jul'26] TritonParse accepted to ASPLOS 2026

Explore the project

AreaFocus
TritonCompiler-managed performance portability, including automatic warp specialization and its roadmap
TLXExplicit warp-group orchestration, asynchronous memory and tensor-core operations, barriers, and hardware-specific kernel development
uTLXThe same TLX programming model packaged as a standalone plugin for upstream Triton, for users who are not on this fork
TorchTLXTLX-backed Inductor templates, epilogue fusion, and the PyTorch 2 integration path
CIWorkflows, runners, nightly failure handling, and per-project test coverage
ToolingCompilation tracing, profiling, runtime diagnostics, sanitizers, and benchmarking

Install

FBTriton installs as the triton package, so import triton resolves to this fork. Uninstall upstream Triton first: both distributions own the same triton/ directory, and installing one over the other leaves an inconsistent environment rather than a clean error.

pip uninstall -y triton
pip install fbtriton

Nightly .dev wheels are published to a self-managed index, not PyPI:

pip install --pre fbtriton \
  --index-url https://facebookexperimental.github.io/triton/nightly/simple/

Each nightly is built from the newest main commit whose GPU and CI checks are all green, and reports a version of the form 3.9.0.dev<YYYYMMDD>+fb.git<hash>. Nightlies are retained for about 30 days. Binary wheels cover CPython 3.10 through 3.14.

FBTriton is intended as a drop-in replacement for upstream Triton on a best-effort basis: it tracks upstream closely, and existing Triton kernels are expected to work unchanged. That is not a formal guarantee — if something that works upstream breaks here, please file an issue.

Build from source

git clone https://github.com/facebookexperimental/triton.git
cd triton

pip install -r python/requirements.txt # build-time dependencies
pip install -e .

C++ changes require a rebuild to take effect; Python-only changes do not. Run pre-commit run --all before sending a pull request.

uTLX: standalone TLX for upstream Triton

TLX is also published on its own as triton-utlx, which ships the same tlx module as a Triton plugin rather than as a fork of Triton. Reach for it when replacing your triton install with FBTriton is not an option — the programming model is the one documented under TLX.

pip install torch
pip install triton-utlx

Plugins load only into a Triton built with TRITON_EXT_ENABLED, which exposes the libtriton symbols they link against. The triton that ships with a PyTorch release has it on by default, so torch is enough. To run against a Triton you build yourself instead, turn it on at build time from a checkout of triton-lang/triton:

TRITON_EXT_ENABLED=ON pip install -e . --no-build-isolation

Either way, point TRITON_PLUGIN_PATHS — a colon-separated list of shared libraries — at the libutlx.so inside the installed package:

export TRITON_PLUGIN_PATHS=$(python -c \
  "import utlx_plugin, os; print(os.path.join(os.path.dirname(utlx_plugin.__file__), 'libutlx.so'))")

Nothing sets that variable for you, and a Triton built without TRITON_EXT_ENABLED warns and skips the plugin rather than failing outright, so an unset or ignored path shows up as unregistered TLX ops rather than a load error.

Hardware support

VendorTargets
NVIDIAHopper (sm90), Blackwell (sm100)
AMDMI300 / CDNA3 (gfx942), MI350 / CDNA4 (gfx950), RDNA4 (gfx1250)

Support varies per feature. Every operation in the TLX reference carries a tag naming the targets it runs on, and AutoWS requires sm90 or newer.

Check the install

python -c "import triton; print(triton.__version__)"
pytest third_party/tlx/tutorials/testing/test_correctness.py

The tutorial suite is arch-gated, so cases that do not apply to your GPU skip rather than fail.