Triton-distributed-ascend documentation

Triton-distributed-ascend is a distributed computing framework extended from the Triton language and optimized for Ascend AI processors. It enables efficient distributed computing on Ascend NPUs, with communication primitives and computation-communication overlap optimizations aimed at large-scale distributed training and inference.

The project builds on the multi-level abstraction capabilities of MLIR to map distributed operators written in Triton onto Ascend AI processors, and exposes fine-grained interfaces for controlling on-chip memory and pipeline synchronization.

Getting Started

Work through these in order:

  • Installation — hardware and software prerequisites, CANN setup, and Python dependencies.

  • Build from Source — building Triton-distributed-ascend, AscendNPU-IR, and shmem from source.

  • Quick Start — running your first distributed kernel and verifying the installation.

See Release Note for the versioning policy, branch lifecycle, and compatibility matrices.

Key Features

  • Distributed communication primitives — AllReduce, AllGather, ReduceScatter, All2All.

  • Computation-communication overlap — overlapped execution for improved throughput.

  • AscendNPU IR-based compiler optimizations — optimizations that use Ascend hardware features directly.

  • Python-friendly interfaces — concise Python APIs that integrate into existing deep learning frameworks.

Architecture

API Reference

The API documentation covers five main areas:

  • Triton-distributed Semantics — Design philosophy, semantic model, and programming patterns for tile-centric computation-communication overlap.

  • triton_dist.language API — Distributed operations for Triton kernels (wait, consume_token, rank, num_ranks, symm_at, notify, extern_call).

  • SHMEM Device API — Device-side ACLSHMEM APIs for use within kernels (RMA operations, signaling, barriers, and synchronization).

  • SHMEM Host API — Host-side ACLSHMEM APIs for initialization, memory management, and host-initiated communication.

  • Swizzle Helper Functions — Swizzle helper functions for GEMM and communication tile scheduling.

  • Autotuning API — Distributed autotune API for multi-device kernel tuning.

Developer Guide

Tutorials

FAQ