Skip to content

Releases: Heniokhos-Systems/MLRift

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 30 Jul 15:29

Full Changelog: v1.0.1...v1.1.0

MLRift v1.0.1

Choose a tag to compare

@Pantelis23 Pantelis23 released this 17 May 10:59
v1.0.1 — destroy-PyTorch verified across 4 GPU models

97 commits since v1.0.0 (b84defc). Headline deliverables:

GPU scorecard (RX 7800 XT, gfx1100, post-reboot bench 2026-05-17 —
see docs/bench_2026-05-17.md):

  Qwen3-0.6B   264 tok/s (mks16+PLD peak)  — 4.4–5.3× PT bf16 GPU
  Qwen3-0.6B   118 tok/s (M=1 mega-kernel)  — ~2.0× PT bf16 GPU
  Llama-3.2-1B  99.8 tok/s                  — +95% PT bf16 GPU
  Llama-3.2-3B  40.7 tok/s                  — +28% PT bf16 GPU
  Mistral-7B    21.7 tok/s (Q8_0)           — +71% PT bf16 GPU

All bit-exact vs PyTorch / Ollama greedy on canonical prompts.
Mistral 22/23 vs PT is sub-ULP structural (reduction-tree topology,
not precision) — proven via Kahan-compensated down_proj experiment.

Mega-kernel architecture work:
- Llama-1B + Llama-3B + Mistral-7B ported to 9-phase fused mega-kernel
  AST-walked by MLRift's @kernel emitter (no hipcc / LLVM / clang)
- Slice 7.5: 8× inner-gemv unroll across all 3 architectures
- Slice 7.4: host RSS dealloc after q/k/v + gate/up fuse (saves 1–4 GiB)
- Slice 8.5: Qwen3 single-env reproducer (MLRIFT_NATIVE_MEGAKERNEL=2)
- Slice 8.6: clean-exit Qwen3 mks-K on AQL-ring cap exceeded

Driver / runtime:
- Slice 6.8d (kfd_release_all_allocations): structural MES-wedge fix
  for inter-process queue leaks
- Compiler auto-injects hipkfd_teardown() at every exit under
  --target=amdgpu-native (ce8c07f)
- destroy-libc Phase 1: native Linux syscall wrappers replace libc
  write/exit/puts/memcpy @dynamic externs

Tokenizer (task #297, Phase 1 + Phase 2):
- tokenizer_load_from_gguf reads vocab + merges + special-token IDs
  directly from GGUF metadata
- Canonical merge-rank BPE encoder for gpt2 family (Qwen3 / Llama-3)
- Greedy longest-prefix-match for SPM family (Mistral)
- Byte-exact vs HuggingFace tokenizers on 5-prompt chat-REPL corpus
- All 4 chat REPLs migrated off external tokenizer.json
- Mistral v0.3→v0.2 ID-shift hack eliminated

Compiler bugfixes (all KernRift-portable):
- FFMA peephole f32 → f64 clobber (ecd7365) — fixed Llama Q8_0
  CPU all-zero-token output
- struct_var_table cross-fn collision — fixed silent struct-field
  offset mis-resolution
- u64 = u64 Assign-alias clobber via snapshot back-edge

439/439 tests pass, bootstrap fixed point holds.

MLRift v1.0.0

Choose a tag to compare

@Pantelis23 Pantelis23 released this 11 May 04:46

First tagged MLRift release.

Highlights

  • Self-hosted compiler — build/mlrc builds from src/*.mlr by build/mlrc.
  • 8-target fat binaries (.mlrbo) — Linux / macOS / Windows / Android × x86_64 / arm64.
  • Native AMDGCN GPU emitter for gfx1100 + gfx1030 (31 LLM kernels reachable; no ROCm DSO dependency on Linux).
  • 439/439 tests pass; self-host fixed point holds (mlrc3 == mlrc4 byte-identical).
  • Four-platform benchmark report — see benchmarks/BENCHMARKS.md for Ryzen 9 7900X, Pi 400, Core Ultra 9 275HX, and Redmi Note 8 Pro numbers.

Attached artifacts

  • mlrc.mlrbo — 8-slice fat binary of the compiler itself. Run with mlr mlrc.mlrbo … and the host slice is extracted automatically.
  • mlrc-source.mlr — concatenated single-file source used to produce mlrc.mlrbo.
  • Single-arch native compilers (all 8 targets):
    • mlrc-linux-x86_64
    • mlrc-linux-arm64
    • mlrc-macos-x86_64 (Mach-O)
    • mlrc-macos-arm64 (Mach-O)
    • mlrc-windows-x86_64.exe (PE)
    • mlrc-windows-arm64.exe (PE)
    • mlrc-android-x86_64 (PIE ELF)
    • mlrc-android-arm64 (PIE ELF)

Lineage

Forked from KernRift at 6cf758b (v2.8.15). Generic compiler findings that apply upstream are tracked in docs/kernrift_upstream.md.