Changelog#
All notable changes to this project are documented here. The format follows Keep a Changelog, and versions follow Semantic Versioning.
Unreleased#
0.1.1 - 2026-09-24#
Fixed#
Restore the
License :: OSI Approved :: MIT Licenseclassifier, dropped while reverting the PEP 639 license field. PyPI already showed the licence, but the classifier is what licence-based search filters use.Point the PyPI badges at
.svgURLs. GitHub’s image proxy had cached the “not found” responses from before the package was published, and a new URL is the only way to get it to look again.
0.1.0 - 2026-09-23#
First release.
Added#
oldiron doctor: detects NVIDIA GPUs, CPU instruction sets, RAM, driver and CUDA toolkit versions, then prints findings and a CMake recipe tailored to the machine.Knowledge base for legacy NVIDIA architectures (Kepler through Volta): the last supporting CUDA toolkit and driver branch, FP16 throughput characteristics, and memory bandwidth. Flags the combinations that cannot work, such as CUDA 13.x or driver branch 590 with a Pascal card.
-DGGML_CUDA_FORCE_MMQ=ONis recommended for compute capability 6.1 only, where FP16 arithmetic runs at 1/64 rate, and not for the P100.Warning for CPUs without AVX2, where prebuilt binaries and native PyPI wheels fail with
SIGILL.oldiron fit: computes the memory budget for a GGUF model — weights, KV cache, compute buffers and runtime overhead — against what the GPU can actually allocate, then prints a readyllama-servercommand with-ngl,-cand KV cache types chosen to fit. The budget always describes the plan being recommended: under a partial offload only the offloaded weights count against VRAM, and the remainder is reported as host RAM. When a shorter context would fit entirely on the GPU, it says which one.Dependency-free GGUF metadata reader. KV cache is summed per layer, so hybrid models whose layers hold no attention cache are measured correctly.
oldiron info: prints the model metadata the arithmetic is based on.oldiron bench: runsllama-benchwith the settingsfitrecommends, reports measured prompt and generation speed against the bandwidth ceiling, and writes a record that can be contributed to a shared results table.macOS and Apple Silicon support: detection through
sysctl, budgeting against the Metal allocation cap (about 75% of unified memory) rather than total RAM, a Metal build recipe, and a-trecommendation based on performance-core count.Decode speed ceiling derived from memory bandwidth, with explicit caveats for MoE models and for partial CPU offload.
Reading GGUF metadata directly from Hugging Face over HTTP range requests, so a model can be checked before downloading it. Accepts
hf:<user>/<repo>[:QUANT], a revision suffix (@refs/pr/3) and Hub blob URLs; sums sharded models across every part and readsHF_TOKENfor gated repositories.Optional
richoutput — panels, a segmented memory bar and colour — installed withpip install "oldiron[rich]". Without it the output degrades to plain text;--plainforces that layout, and--jsonis unaffected by either.Documentation on Read the Docs, and publication to PyPI through trusted publishing.