Repository navigation
Krell v2.0
Krell v2.0 is the performance release: seven work packages (WP1-WP7) that take Krell's generated code from a quarter of C's speed to ahead of C -O2, plus a faster reference interpreter.
Benchmarks: KRELLPROOF twelve-kernel suite, AMD EPYC, gcc 13.3 -O2 as the opponent, geometric mean of S = T_C / T_Krell across all twelve kernels (recorded run, krellproof v2.0 branch):
- Native backend: S = 1.117 — 11.7% faster than C -O2 (original six kernels: 1.229)
- LLVM lane: S = 1.349 — 34.9% faster than C -O2 (original six kernels: 1.196)
What changed:
- WP1: vector lowering for streaming loops (fill32, sumsq at the memory roofline)
- WP2: backend code generation (register allocation, instruction selection)
- WP3: bounded fragment superoptimization
- WP4: call, loop, and chain overhead polish (fib and fnv1a to parity or better)
- WP5: six new domain kernels in KRELLPROOF (dot, saxpy, copy, bytesum, parse, mix); the saxpy map shape added to the loop vectorizer and a range-check idiom in the optimizer closed the two trailing kernels
- WP6: the LLVM lane under the same bench protocol, checksums verified
- WP7: the reference interpreter allocates one flat arena per frame instead of one buffer per value — about 1.2x faster by paired A/B on the bench's timing drivers (fib 2.0x, sumsq 5.0x); native and LLVM code generation byte-identical to WP6
Verification: differential battery 4,546 cases, 0 failures on the x86_64 and LLVM lanes; make tests green; all bench checksums agree across every implementation. Generated code remains byte-identical across machines and backends, and the semantics remain total — no undefined behavior, by construction.
Full record: https://github.com/nightwarelabz/krellproof (v2.0 branch)