dasLLAMA is an LLM + speech-to-text stack written entirely in daslang and JIT-compiled — no hand-written assembly. Its auto-tuned JIT kernels consistently outperform llama.cpp's hand-written universal kernels, on the CPU path and on Metal alike. llama.cpp has no speech-to-text engine, so Whisper and Parakeet are measured against the dedicated ones instead — whisper.cpp, parakeet, ONNX Runtime, NeMo — and lead most of those rows too. Every number below is a measured pair.
// LLM inference in daslang — JIT, no C++
require dasllama/dasllama
require daslib/jobque_boost
[export]
def main() {
let path = "model.gguf"
var m <- load_model(path, QuantMode.q8)
let ids <- encode(m, "Summarize the results:")
with_job_que() {
setup_dasllama_jobque()
var s = create_session(m)
let sp = SamplingParams()
generate(m, s, ids, sp, 128l) $(_id, p) {
print(p)
return true
}
}
}
Every row is one das configuration and the matched llama.cpp build it is measured against — same model, same machine, same category. A das number never appears without its reference. Filter and sort any column; click a row for the receipt: both command lines, commits, tune state, and auto-probed hardware. pp512 = 512-token prefill, tg128 = 128-token greedy decode, tok/s, higher is better.
-ngl 0. Kernel against kernel.-nopo 1 stops llama.cpp quietly serving “CPU” rows off the GPU.-ngl 99. Which backend ran — Metal, Vulkan — is in the row's receipt.Every kernel, loader and scheduler behind these numbers is daslang — JIT-compiled, no C++ in the hot path. The speed is the language: auto-tuned generic kernels, one codebase from GGUF parsing to Metal dispatch.
llama.cpp has no speech-to-text engine, so every row here is paired with a dedicated one instead — whisper.cpp, parakeet-cli, ONNX Runtime or NeMo. One row per clip per reference: das wall time, the reference's wall time on the same clip, the speedup, and the real-time factor. Greedy decode everywhere, and the same categories the LLM board has: cpu pairs the reference's CPU mode, cpu + accel adds the box's accelerated math path (the macOS *-cli tools get Apple's AMX either way), and gpu pairs the reference's own GPU mode — whisper.cpp on Metal against the das Metal drivers.
The one audio workload llama.cpp does cover: omni chat models taking audio in, run through llama-mtmd-cli. This is a narrow CPU-only slice — llama.cpp's Conformer/AuT audio encoders don't route through BLAS/AMX on CPU, so the reference spends ~99% of its time in the audio encoder, and das's optimized fp32 encoder comes out well ahead on that path.
One image turn end to end on the same decoder + mmproj pair both engines load: the vision encoder, the spliced prefill, the reply. The reference is llama-mtmd-cli; both sides price prefill and decode as their own positions over their own time, and the encoder's wall time gets its own column.
Everything below loads from stock GGUF (llama2.c .bin for the toy), auto-detected from metadata, and is verified token-for-token against its reference engine. Weights: F32 / F16 / Q8_0 / Q4_0 / MXFP4 read directly; K-quant files (Q4_K_M / Q5_K_M / Q6_K) run on native K-quant kernels; bf16 audio towers read exactly.