xformers README

The project's README from github.com/facebookresearch/xformers. As one markdown file: README.md.

Open in Colab
CircleCI Codecov black
PRs welcome


xFormers - Toolbox to Accelerate Research on Transformers

xFormers is:

Installing xFormers

# [linux & win] cuda 12.6 version
pip3 install -U xformers --index-url https://download.pytorch.org/whl/cu126
# [linux & win] cuda 12.8 version
pip3 install -U xformers --index-url https://download.pytorch.org/whl/cu128
# [linux & win] cuda 13.0 version
pip3 install -U xformers --index-url https://download.pytorch.org/whl/cu130
# [linux only] (EXPERIMENTAL) rocm 7.1 version
pip3 install -U xformers --index-url https://download.pytorch.org/whl/rocm7.1
# Same requirements as for the stable version above
pip install --pre -U xformers
# (Optional) Makes the build much faster
pip install ninja
# Set TORCH_CUDA_ARCH_LIST if running and building on different GPU types
# NOTE: pytorch must already be installed!
pip install -v --no-build-isolation -U git+https://github.com/facebookresearch/xformers.git@main#egg=xformers
# (this can take dozens of minutes)

Benchmarks

Memory-efficient MHA Benchmarks for ViTS Setup: A100 on f16, measured total time for a forward+backward pass

Note that this is exact attention, not an approximation, just by calling xformers.ops.memory_efficient_attention

More benchmarks

xFormers provides many components, and more benchmarks are available in BENCHMARKS.md.

(Optional) Testing the installation

This command will provide information on an xFormers installation, and what kernels are built/available:

python -m xformers.info

Using xFormers

Key Features

  1. Optimized building blocks, beyond PyTorch primitives
    1. Memory-efficient exact attention - up to 10x faster
    2. sparse attention
    3. block-sparse attention
    4. fused softmax
    5. fused linear layer
    6. fused layer norm
    7. fused dropout(activation(x+bias))
    8. fused SwiGLU

Install troubleshooting

License

xFormers has a BSD-style license, as found in the LICENSE file. It includes code from the triton-lang/kernels repo.

Citing xFormers

If you use xFormers in your publication, please cite it by using the following BibTeX entry.

@Misc{xFormers2022,
  author =       {Benjamin Lefaudeux and Francisco Massa and Diana Liskovich and Wenhan Xiong and Vittorio Caggiano and Sean Naren and Min Xu and Jieru Hu and Marta Tintore and Susan Zhang and Patrick Labatut and Daniel Haziza and Luca Wehrstedt and Jeremy Reizenstein and Grigory Sizov},
  title =        {xFormers: A modular and hackable Transformer modelling library},
  howpublished = {\url{https://github.com/facebookresearch/xformers}},
  year =         {2022}
}

Credits

The following repositories are used in xFormers, either in close to original form or as an inspiration:

xformers (facebookresearch/xformers)

Searching Database…

10.6K ·GitHub
What is this?xFormers is Meta's (Facebook Research) toolbox of hackable, optimized Transformer building blocks that you compose together — reusable pieces for your own models rather than a monolithic framework.
Is it a standalone app or a library I import into my own code?A Python library: independent, customizable building blocks you can use without boilerplate code. They are domain-agnostic — researchers use them in vision, NLP and more.
What do I need to have installed first?PyTorch 2.10.0 — the stable pip package targets it; other PyTorch versions (including nightlies) require the development binaries or a from-source build.
What usually goes wrong during installation?Source builds are the fragile part: NVCC must match your CUDA runtime and GCC, set TORCHCUDAARCHLIST for your target GPUs, and use MAXJOBS=2 if the build OOMs. On Windows, enable long paths plus git config --global core.longpaths true.
How is it licensed?A BSD-style license, as found in the LICENSE file; the codebase also includes code from the triton-lang/kernels repo.
Do I need an NVIDIA GPU to actually use it?In practice yes — xFormers ships its own CUDA kernels (it dispatches to other libraries when relevant), and the repo's CI also builds for AMD's ROCm.
What's the headline feature?Memory-efficient exact attention, up to 10x faster — and it is exact attention, not an approximation, available through xformers.ops. The published benchmark times a forward+backward pass on an A100 in f16.
What else is in the toolbox besides attention?Sparse and block-sparse attention, plus a set of fused ops: fused softmax, fused linear layers, fused layer norm, fused dropout(activation(x+bias)) and fused SwiGLU — all framed as optimized blocks beyond the plain PyTorch primitives.
Why reach for it instead of plain PyTorch?It is research-first: you get bleeding-edge components that are not yet available in mainstream libraries like PyTorch, with speed and memory efficiency as stated design goals.
How can I check which kernels my install actually has?Run the installation-check command from the README's 'Testing the installation' section — it reports information about your xFormers installation and which kernels were built and are available.
Size
42.9 MB
Stars
10.6K
Age
5y
Commits · 90 Days