Skip to content

The model artifact ​

Kern moves model-specific execution structure out of the runtime and into a versioned artifact. The artifact is the unit that is verified and shipped.

Its three parts ​

Manifest ​

The manifest declares typed buffers, storage, variables, device modules, programs, launch arguments, and the serving protocol. It is data: loading a manifest does not import model-specific host code.

Kernels ​

Programs point at compiled device modules. A module may come from an existing framework, a compiler, or handwritten CUDA. Its digest is part of the manifest, so changing the bytes changes the artifact identity.

Weights ​

Weights are the model's own checkpoint: a Hugging Face snapshot directory or a set of Safetensors files, unmodified. Each weight buffer's bind lists the checkpoint tensors (or row / column rectangles of them) that fill it end to end, so fused projections are declared, not exported. Tables no checkpoint holds (rope caches, norm offsets) are carry buffers a once program computes after load. Where the checkpoint lives belongs in local configuration or command-line flags, not in the portable manifest.

What belongs where ​

ConcernManifestkern.toml
Buffer dtype and shapeYesNo
Program and launch orderYesNo
Module SHA-256YesNo
Local kernel directoryNoYes
Local weight filesNoYes
GPU ordinalNoYes
Reproducible test seedNoYes

This boundary keeps the executable contract portable while allowing each host to decide where large artifacts live.

A program, not a plugin ​

The runtime does not call a model-specific extension point. It validates a closed declaration and executes its programs. Adding a model therefore changes the shipped artifact; it does not require teaching the runtime a new model class.

Models ship as verified GPU programs.