pllm
SDK
Kernels

Kernels

Understand PLLM's native integer matrix kernels, memory costs, and CPU requirements.

PLLM documentationView Markdown ↗

pllm-core implements bounded integer matrices, scalar reference code, runtime AVX2 and NEON selection, codecs, quantization, masking, subtraction, and operating system randomness. It copies validated weights into Rust once and reuses them. Python-to-Rust buffer conversions still create copies.

Kernel records list required CPU features, threading, input and output formats, supported operations, memory use, and evidence. Moving arithmetic to Rust does not remove protocol messages, offline preparation, client state, or conversion costs.

Pipeline selection and direct execution

Cpu is the component placed in a typed pipeline. MaskedGEMM, CompiledMatrix, and capabilities() are lower-level native APIs for direct execution and deployment inspection. Runtime SIMD chooses scalar, AVX2, or NEON internally after checking the host; those paths are not separate component classes.

API: Kernel objects and signatures

Python SDK example

Select the pipeline backend with Cpu

Cpu commits a thread count into the pipeline and owns the persistent native worker pool used by matrix stages. It does not choose the protocol or remove transport and preparation costs.

from pllm import Deployment, ExecutionBudget, Experiment
from pllm.kernels import Cpu
from pllm.profiles import MaskedLinearCpu
from pllm.sources import TinyModel

experiment = Experiment(
    name="two-thread-cpu",
    pipeline=MaskedLinearCpu(
        TinyModel(model_id="cpu-tiny"),
        kernels=Cpu(threads=2),
    ),
    deployment=Deployment.local(root="local://two-thread-cpu"),
    budget=ExecutionBudget(requests=1, max_input_tokens=64, max_new_tokens=1),
)
resolved = experiment.resolve()
kernel = experiment.pipeline.to_spec()["components"]["kernels"]
assert kernel["component"] == "pllm/cpu"
assert kernel["params"] == {"threads": 2}

Save the module as experiment.py and run pllm gateway --local --experiment experiment.py:experiment --trust-python to use that exact kernel choice in private loopback inference. Use pllm benchmark run --experiment experiment.py:experiment --trust-python --max-output-tokens 1 --repetitions 1 to measure it rather than inferring performance from selection.

Create a direct matrix engine with MaskedGEMM

MaskedGEMM exposes clear, modular, coefficient, wrap32, and wrap64 integer matrix operations. Use it for kernel integration or measurement, not as a substitute for a private protocol.

import numpy as np

from pllm.native import MaskedGEMM

engine = MaskedGEMM(threads=2)
weights = np.array([[1, -2], [3, 4]], dtype=np.int8)
matrix = engine.compile(weights)
result = matrix.clear(np.array([[5, 6]], dtype=np.int8))
assert result.tolist() == [[-7, 39]]

Reuse an immutable CompiledMatrix

Obtain CompiledMatrix from MaskedGEMM.compile(). It copies validated weights once; later source-array mutation does not change the native snapshot.

import numpy as np

from pllm.native import CompiledMatrix, MaskedGEMM

weights = np.array([[1, -2], [3, 4]], dtype=np.int8)
matrix = MaskedGEMM(threads=1).compile(weights)
weights[:] = 0
result = matrix.clear(np.array([[5, 6]], dtype=np.int8))
assert isinstance(matrix, CompiledMatrix)
assert result.tolist() == [[-7, 39]]

Inspect the installed backend with capabilities()

capabilities() reports whether the native extension is compiled and which backend is active. Inspect it before making deployment claims; a research fallback does not establish native evidence.

from pllm.native import capabilities

installed = capabilities()
assert isinstance(installed["compiled"], bool)
assert installed["implementation"] in {"rust", "python-reference"}

For protocol-level composition, return to masked linear. For the exact lower-level signatures, see the native matrix interface.

Loading documentation index…

Search runs locally in this browser.