This repo contains a Nix package that can be used to build custom machine learning kernels for PyTorch. The kernels are built using the PyTorch C++ Frontend and can be loaded from the Hub with the kernels Python package.
This builder is a core component of the larger kernel build/distribution system.
Torch 2.7 note: kernel-builder currently builds Torch 2.7 extensions based on the final release candidate. If you upload kernels Torch 2.7 kernels, please validate them against the final Torch 2.7.0 release. In the unlikely case of an ABI-breaking change, you can rebuild and upload a your kernel once kernel-builder is updated for the final release.
We recommend using Nix to build kernels. Quick start a build with:
cd examples/activation
nix build . \
--override-input kernel-builder github:huggingface/kernel-builder \
--max-jobs 8 \
-j 8 \
-L
we also provide Docker containers for CI builds. For a quick build:
# Using the prebuilt container
cd examples/activation
docker run --rm \
-v $(pwd):/app \
-w /app \
ghcr.io/huggingface/kernel-builder:{SHA} \
build
See dockerfiles/README.md for more options, including a user-level container for CI/CD environments.
- Writing Hub kernels
- Building kernels with Nix
- Building kernels with Docker (for systems without Nix)
- Local kernel development (IDE integration)
- Why Nix?
The generated CMake build files are based on the vLLM build infrastructure.