Am Mittwochabend postet Ash Hart auf X: „I didn't imagine it to blow up like this." Drei Tage zuvor hat sein Projekt TensorFold die 800-Sterne-Marke auf GitHub geknackt. Am selben Tag erscheint Version 0.6.1 — die zwölfte Release in fünf Tagen. Was als Wochenende-Experiment begann, „um Qwen 27B schneller zu machen", ist zur am schnellsten wachsenden Inferenz-Engine der lokalen-KI-Szene geworden. Der Grund ist ein Versprechen, das sonst niemand in dieser Form hält: TensorFold ist schneller, ohne dass sich auch nur ein Byte der Ausgabe ändert.
Was ist TensorFold?
TensorFold ist eine Open-Source-Inferenz-Engine (Apache-2.0), die lokale LLMs hinter einem OpenAI-kompatiblen Endpunkt serviert — auf Apple Silicon (Metal/MLX) genauso wie auf NVIDIA-GPUs inklusive DGX Spark. Ein Befehl genügt:
pip install git+https://github.com/ashhart/TensorFold.git
tensorfold serve Vontra/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-4bit --context 65536
Der Server lädt das Modell von Hugging Face, baut family-spezifische Metal- bzw. CUDA-Kernel und stellt /v1/chat/completions bereit. Jeder OpenAI-Client — Coding-Agents, SDKs, curl — funktioniert ohne Anpassung.
Hinter dem Projekt steht Ash Hart, ein unabhängiger AI-Systems-Architekt aus Großbritannien, der nebenbei auch MCDMA (Metal-CUDA-Direct-Memory-Access) und Imprint entwickelt hat. Er arbeitet mit vollem Hauptberuf an dem Projekt, unterstützt inzwischen von zwei bekannten Namen der Szene: MiaAI-Lab und Volatile Markets sind offiziell dem Kernteam beigetreten.
Das Alleinstellungsmerkmal: Byte-genaues Drafted Decoding
Der Geschwindigkeitsgewinn kommt aus Speculative Decoding: Ein kleines Draft-Modell (DFlash2 oder ein MTP-Head) rät mehrere Token voraus, das große Modell verifiziert sie in gebündelten „Lanes" — mehreren Entwurfszeilen in einem einzigen Forward-Pass. Das ist an sich nicht neu; vLLM kann MTP auch.
Neu ist der Genauigkeitsvertrag. TensorFold garantiert, dass ein ge-draftetes Antwort byte-identisch mit demselben Request ohne Drafts ist. Dafür schreibt das Projekt eigene row-exakte Kernel: Die Bits einer Zeile dürfen nicht davon abhängen, wie viele Zeilen den Verify-Pass teilen. Das Sampling ist keyed — der Token an Position p ist deterministisch aus Seed, Position und Token-ID abgeleitet. Die Formel im Recipe Book: „Drafted decoding writes the same bytes as serial decoding. Drafts change speed only."
Jede Release prüft das empirisch: Jede ge-draftete Antwort wird Byte für Byte gegen denselben Request mit "draft": false verglichen. Der Server meldet pro Antwort ein token_sha-Hash und min_rows. Wer es selbst testen will, sendet denselben Prompt zweimal — einmal mit, einmal ohne Drafts — und diff't die Ausgaben.
Die Zahlen
Auf DGX Spark (GB10) liegt TensorFold je nach Modell 1,6- bis 3-fach über vLLM mit MTP — gemessen über denselben OpenAI-Client, Median über fünf Seeds:
| Modell | Sparks | vs. vLLM (MTP=3) |
|---|---|---|
| Qwen3.8-27B + DFlash2 | 1 | 2,70–3,05× |
| Qwen3.8-27B + DFlash2 | 2 | 1,94–2,49× |
| Qwen3.8 Flash Next | 1 | 1,60–1,79× |
| Qwen3.8 Flash Next | 2 | 1,74–2,24× |
| GLM-5.3-Flash | 2 | 1,78–2,06× |
Konkret: GLM-5.3-Flash auf zwei Sparks decodiert mit 63 tok/s, Qwen3.8-27B auf einem Spark schafft 58,3 tok/s Prosa im Single-Stream und 220 tok/s bei 8 Streams. Auf einem M3 Ultra (ohne die M5-Tensor-Einheiten) stieg Qwen3.8-27B von 27 auf bis zu 131–160 tok/s.
Wichtig für die Einordnung: Das ist kein Quantisierungs-Trick. Dieselben 4-bit-Checkpoints, dieselbe Qualität — die Engine liest schlicht mehr aus jedem Gewichtungs-Lesevorgang heraus.
Die Community macht den Rest
Was TensorFold von vergleichbaren Projekten unterscheidet, ist das Tempo und die Offenheit. Allein in den letzten Tagen: RTX-40-Support (Ada), RTX PRO 6000 Blackwell mit NVFP4-Checkpoints, Responses-API, Prometheus-Metriken, das Wechseln auf Apache-2.0 — und ein Strom von Community-PRs, die in den Release Notes einzeln namentlich gewürdigt werden.
MiaAI-Lab hat auf TensorFold aufbauend eine ganze Rezept-Sammlung veröffentlicht: GLM-5.3-Flash EXL3 auf 2× DGX Spark (mit 1M Kontext, 4 Streams, 2,9M-Token-KV-Pool), Qwen3.8-27B auf einem Spark, und nach eigener Ankündigung bald 3×- und 4×-Spark-Rezepte für DeepSeek v4.1 Flash. Jedes Rezept kommt mit dedizierter Webseite und Messwerten — und wir haben das GLM-5.3-EXL3-Rezept bereits in unserer Local-AI Recipe-Datenbank aufgenommen.
Der Härtetest unsererseits: Ein 2× GB10-Cluster (ASUS GX10) über einen MikroTik-CRS504-Switch statt Direktkabel, GPUs auf 2.200 MHz gedeckelt, Repro der README-Zahlen mit sparkDash. Ergebnis: Decode innerhalb ±5 % der Referenz, strukturierte Ausgaben bei 2 und 4 Streams sogar +11–14 % darüber, Prefill innerhalb 3–5 %, voller 1M-Kontext. Die Rezept-Zahlen sind also auch außerhalb der Ursprungs-Hardware reproduzierbar — Switch statt Kabel kostet messbar fast nichts.
Die ehrlichen Grenzen
Drei Punkte, die man kennen sollte:
Concurrency ist der Kompromiss. Ein Community-Benchmark von WescheNex1q zeigt es nüchtern: Bei 16 parallelen Requests auf einem Spark schlägt vLLM TensorFold klar (253 vs. 62 tok/s Aggregat), bei einem einzelnen Request gewinnt TensorFold (83 vs. 57). TensorFold ist die schnellste Single-User-Engine, die es gibt — für Team-Server mit dutzenden gleichzeitigen Agenten bleibt vLLM die Wahl. Die aktuellen Releases arbeiten genau daran (Prompts, die im Decode-Rhythmus mitfüllen, Background-Prioritäten), aber das ist der offene Bauernkrieg.
Prefill wird auf Macs nicht schneller. Der Geschwindigkeitsgewinn steckt im Decode; auf Apple Silicon ist das Prefill-Tempo vergleichbar mit anderen Engines. Auf CUDA sieht das dank CUDA-Graphs und Kernel-Optimierungen deutlich besser aus (bis zu 1,27× vLLM bei langen Prompts).
Ein Maintainer mit Hauptberuf. Sieben Releases in 34 Stunden am Start-Wochenende — beeindruckend, aber auch ein Busfaktor von 1. Die Einbindung von MiaAI-Lab und Volatile Markets ist die direkte Antwort darauf, und die Community-PRs kommen reichlich. Für den Betrieb in Produktion heißt das aber: Versionen pinnen, Changelogs lesen.
Ein weiterer, oft übersehener Punkt: TensorFold misst seine Qualität mit. Bei NVFP4-Checkpoints veröffentlicht das Projekt die Top-1-Übereinstimmung gegen einen fp32-Referenz-Forward (92,9 % in Checkpoint-Mathematik gegen vLLMs 93,0 %) — statt nur die tok/s zu feiern. Das passt zu einem Projekt, dessen ganzes Versprechen „same bits" ist.
Für wen ist TensorFold?
- DGX-Spark- und Mac-Besitzer: klarer Gewinn, auf beiden Plattformen derselbe Server, dieselbe Ausgabe. Auf einem 2-Spark-Setup läuft damit GLM-5.3-Flash mit 1M Kontext auf Verbraucher-Hardware.
- Coding-Agent-Nutzer: Streamed Tool-Call-Argumente, Responses-API, Prompt-Cache (resendete 18k-Prompts: von Sekunden auf unter 0,1 s) — genau das, was Agent-Loops brauchen.
- Team-Server-Betreiber: noch abwarten oder vLLM fahren. Die Concurrency-Arbeit läuft, ist aber nicht abgeschlossen.
TensorFold zeigt gerade, wie schnell lokale Inferenz vorankommt, wenn jemand die Kernel selbst schreibt statt Framework-Defaults zu konfigurieren. Die lokale-KI-Szene hat 2025 gelernt, Modelle lokal zu laufen zu bringen. 2026 lernt sie, sie schnell laufen zu lassen — und TensorFold ist dabei aktuell das prominenteste Beispiel. Welche Checkpoints und Rezepte es für welche Hardware gibt, wirft unsere Local-AI-Themenseite mit der öffentlichen Rezept-Datenbank aus — inklusive der getesteten Messwerte statt Marketing-Zahlen.
FAQ
Ist TensorFold ein Modell oder eine Engine? Eine Engine. TensorFold ersetzt den Inferenz-Server (etwa vLLM, SGLang oder ollama) und lädt bestehende Checkpoints von Hugging Face. Das Modell selbst — Qwen3.8-27B, GLM-5.3-Flash, Nemotron 3.5 Lightning, Qwen3.8 Flash Next — bleibt unverändert; die Gewichte und damit die Intelligenz sind exakt dieselben wie bei jedem anderen Server. Nur die Art, wie die Kernel sie rechnen, ist anders.
Wie kann beschleunigtes Decoding byte-identisch sein? Der Trick liegt in der Verifikation: Das Draft-Modell rät nur, das große Modell prüft und nimmt nur die geratenen Token, die es selbst auch gewählt hätte. TensorFold schreibt dafür Kernel, bei denen eine Zeile im Batch dieselben Bits liefert wie eine Einzelschritt-Decodierung, und macht das Sampling deterministisch aus Seed, Position und Token-ID. Das Ergebnis wird in jeder Release automatisch gegen die Draft-freie Decodierung diff't; der Server meldet zusätzlich einen Token-Hash pro Antwort.
Brauche ich einen DGX Spark? Nein. TensorFold läuft auf Apple Silicon (M1 bis M5, jede Generation durch eigene Kernel abgedeckt) und auf NVIDIA-GPUs von RTX 40 über DGX Spark (GB10) bis RTX PRO 6000 Blackwell. Auf dem Mac genügt ein pip-Install, unter Linux läuft es am saubersten in NVIDIAs PyTorch-Container. Die spektakulärsten Rezept-Zahlen stammen zwar aus der Spark-Community, aber ein einzelner RTX 4090 kann Qwen3.8-27B bereits mit DFlash2 in einem 40k-Kontextfenster fahren.
Was ist mit der Qualität durch die Quantisierung?
Die Checkpoints, die TensorFold nutzt (MLX 4-bit, EXL3/TR3 4bpw, NVFP4), sind von Dritten erstellt und unabhängig von der Engine. TensorFold ändert daran nichts — dieselbe Checkpoint-Datei liefert dieselbe Qualität wie unter vLLM. Zusätzlich misst das Projekt selbst: Bei NVFP4 liegt die Top-1-Übereinstimmung mit einem fp32-Referenzlauf bei 92,9 % (vLLM: 93,0 %), im Full-Precision-Modus bei 98,9 %. Wer maximale Qualität will, fährt --precision full gegen dieselben Gewichte.
Kann ich TensorFold für mehrere Nutzer gleichzeitig betreiben? Begrenzt. Der Fokus liegt auf wenigen Streams mit niedriger Latenz — 4 bis 8 parallele Sessions sind auf DGX Spark der Sweet Spot, und die Rezepte sind darauf abgestimmt. Bei dutzenden gleichzeitigen Requests verliert das Aggregat derzeit gegen vLLM, weil vLLMs Continuous Batching auf hohe Dichte optimiert ist. Die aktuellen Releases („prompts fill inside the decode rounds", Background-Prioritäten) arbeiten genau an diesem Engpass, sodass sich die Lücke von Release zu Release schließt.
Wie installiere ich es auf einem DGX Spark? Der komfortabelste Weg ist ein fertiges Community-Rezept: MiaAI-Lab wartet ein Docker-Setup (ghcr.io), das TensorFold samt Tensor-Parallelismus über zwei Sparks, RoCE-Konfiguration und KV-Pool einrichtet — man setzt nur die SSH-Zugangsdaten in eine local.sh und ruft start.sh auf. Wer es manuell will: NVIDIAs PyTorch-Container starten, TensorFold per pip installieren, Checkpoints mit tensorfold pull laden, dann auf beiden Sparks rank 1 (erst) und rank 0 starten. Die AI-Agent-Runbooks im Repo beschreiben jeden Schritt so, dass auch ein Coding-Agent das Setup selbstständig durchziehen kann.
Sources
- Ash Hart, TensorFold — GitHub-Repo: https://github.com/ashhart/TensorFold
- TensorFold Release Notes v0.4.0 bis v0.6.1 (27.09.–01.10.2026): https://github.com/ashhart/TensorFold/releases
- The CUDA recipe book — Zahlen gegen vLLM: https://github.com/ashhart/TensorFold/blob/main/docs/recipes/cuda.md
- GLM-5.3-Flash Rezept (2× DGX Spark): https://github.com/ashhart/TensorFold/blob/main/docs/recipes/glm-5.3-flash.md
- MiaAI-Lab, GLM-5.3-Flash-EXL3-2x-DGX-Sparks-TensorFold: https://github.com/MiaAI-Lab/GLM-5.3-Flash-EXL3-2x-DGX-Sparks-TensorFold
- Ash Hart auf X (@ashxhart), Ankündigungen 0.6.0/0.6.1 und Team-Zuwachs (30.09.–01.10.2026): https://x.com/ashxhart
- MiaAI-Lab auf X (@MiaAI_lab), Rezept-Ankündigungen und KV-Pool-Update (01.10.2026): https://x.com/MiaAI_lab
- WescheNex1q, Concurrency-Benchmark vLLM vs. SGLang vs. TensorFold (01.10.2026): https://x.com/WescheNex1q
- SingularityByte, „TensorFold vs MTPLX vs mlx-dspark": https://singularitybyte.com/tools/exact-speculative-decoding-apple-silicon.html
- Market Intelligence Research, „Faster, provably the same model — TensorFold exact decoding": https://marketintelligenceresearch.com/blog/faster-provably-same-model-tensorfold-exact-decoding/
- LLMKube, „A weekend with TensorFold on a MacBook": https://llmkube.com/blog/tensorfold-m5-max-engine-not-quant
- Eigenmessung 2× GB10 (ASUS GX10) via CRS504-Switch, sparkDash 1.8.9, 01.10.2026 (Repro des MiaAI-Rezepts v1.3.1 auf TensorFold v0.6.0)
- TensorFold — offizielle Seite: https://tensorfold.dev/