Develop
This section is for embedding poot as a library and for contributing kernels and engine code. If you only need the HTTP server, start with Serving. For design rationale and IR details, see Architecture.
In this section
- Build and test: Enter the Nix dev shell, sanity-check the toolchain, run
justrecipes. - Compute engine: Build graphs, fuse, run on CPU/GPU, or dispatch
#[kernel]s without an LLM. - Authoring kernels: Write
#[kernel]functions and dispatch them throughpootc. Compute engine covers how that fits next to the graph IR path. - Embedding poot (LLM):
ModelHandleload andDrivergenerate API for checkpoints. - Run a model (library): Quick library generation examples.
- Supported models: Model families, checkpoint formats, and where to check backend coverage.
Backends
poot has three production backends and a fourth, lower-priority one (--backend wgpu|rocm|ptx|vulkan):
- wgpu (default): Vulkan/SPIR-V; any modern GPU; most complete continuous-batching library path
- rocm: AMD via raw HSA (loaded at run time, no build flag)
- ptx: NVIDIA via cudarc
- vulkan: the same SPIR-V kernels as wgpu through raw Vulkan; verified on AMD (RADV) only, NVIDIA and Intel Vulkan drivers are untested
Experimental:
- NPU: experimental library devices (
poot-npu); not a--backend. See NPU.
See Backends for codegen and runtime details, and Picking a backend for serve-time tradeoffs.