Skip to main content
Ctrl+K
eagle eagle

Start here

  • Installation
  • Thirty seconds: eagle.simulate
  • C++ quickstart

Tutorials

  • Tutorials
    • What a graph is
    • A multi-kernel step, declaratively
    • Build a step as a graph: eagle.Graph
    • Gradients through conditionals, long runs and events
    • Extra: a graph with parallel branches
    • Steps per launch
    • Finished samples: compaction, reorder, and when not to
    • Host or device? Let the data decide
    • Profile your run
    • Tutorials
      • C1 — Capture a launch once, replay it many times
      • C2 — Run one loop on the CPU or the GPU, unchanged
      • C3 — Reduce an array, the same way on either backend
      • C5 — Print a graph
    • Gradients through a physics kernel, in torch
    • Gradients through a graph: eagle.diff
    • Train through a branch

How-to guides

  • How-to guides
    • Every form of a graph builder
    • How to load a kernel someone else compiled
    • Early termination: a batch that finishes at different times
    • Zero-copy interop
    • Examples
      • C4 — Embed a compiled kernel in your own C++ program
    • Device properties and a two-plugin force manifest
    • C4 — Embed a compiled kernel in your own C++ program
    • Use eagle with other frameworks
    • Use eagle with PyTorch
    • Use eagle with JAX
    • Use eagle with NVIDIA Warp
    • Use eagle with NumPy and CuPy
    • A hawk kernel inside your jitted training step
    • Batches and Jacobians you already use
    • A stepping loop in lax.scan
    • Train a torch net inside your simulation loop
    • A Warp kernel in the middle of an eagle graph
    • A JAX model between eagle launches
    • The eagle batch inside jit
    • Simulated batches for a JAX training loop
    • Monte Carlo
    • Heat diffusion
    • Fluids
    • Finite elements
    • Particle binning

Explanation

  • Explanation
    • CUDA graphs
    • The graph model: eagle.Graph
    • Graphs across the CPU and the GPU
    • Seeing a graph from C++: eagle/graph
    • Foundations — the words this documentation uses
    • The parallel-execution model
    • How eagle runs a graph
    • Same bits, every time: reductions
    • Using eagle from several threads
    • Why scheduling is infrastructure
    • Gradients through a graph: eagle.diff
    • Library structure
      • Module: cuda
      • Module: filtering
        • Scan and compaction
        • Reorder and grouping
        • Running until every sample is done
      • Module: reduce
      • Module: cpu
      • Module: util

Performance

  • Performance
    • RK4 oscillators: results
    • Adaptive RK7(8): results
    • Reading the numbers
    • Where the performance comes from
    • The workload and the ways of running it
    • Method
    • Reproduce
    • Hardware caveat

Reference

  • API reference
    • API reference — cuda
    • API reference — graph view
    • API reference — reverse of a graph
    • API reference — filtering
    • API reference — reduce
    • API reference — host
    • API reference — util
  • Python API reference
    • eagle
    • eagle.frameworks.torch.function
    • eagle.frameworks.torch.KernelFunction
    • eagle.ABI_VERSION
    • eagle.FINISHED_PLANE
    • eagle.FUSED_STEPS_PLANE
    • eagle.KERNEL_NAME
    • eagle.SCALAR_TYPES
  • Interoperability contract
  • Build options
  • Plugin schema (manifest and sidecar)
  • Glossary

Contributing

  • Contributing to eagle
    • Developer guide
    • How eagle records and replays a graph
    • Documentation guide
    • Add an execution backend

Python Module Index

e
 
e
- eagle
    eagle.cuda
    eagle.diff
    eagle.exec
    eagle.fft
    eagle.frameworks.torch
    eagle.gemm.capture
    eagle.gemm.contraction
    eagle.gemm.plan
    eagle.graph
    eagle.host_launch
    eagle.marshal
    eagle.plan
    eagle.roles
    eagle.sidecar

By Alessandro Masat

© Copyright 2026, Alessandro Masat.

part of RAPTOR