Ember — Inference Engine

Edited by Lawrence Beckwith on August 24, 2026 at 12:47 AM UTC

Ember logo

Ember (repo: otheru-ai/ember) is the inference engine that powers OtherU. It is a narrow, self-contained C-based runtime optimized for DeepSeek V4 Flash, not a general GGUF loader. It runs on the reference deployment in Docker with ROCm passthrough.

Source & Upstream

Field Value
Repository github.com/otheru-ai/ember
Author OtherU
License MIT
Language C / C++
Upstream reference github.com/antirez/ds4 by antirez (Salvatore Sanfilippo) — the architecture Ember reimplements
Backends ROCm (AMD Strix-Halo — production), CPU (diagnostics)
Models DeepSeek V4 Flash
Status Beta — active development, frequent releases

Ember is OtherU's own from-scratch engine, written against the ds4 architecture as an upstream reference and now at feature and performance parity with it. Like ds4 it builds on the foundations of llama.cpp / GGML.

Reference Deployment (Strix-Halo)

Component Detail
Container image ghcr.io/otheru-ai/ember:2026.8.23 (built and published by OtherU)
Runtime Docker with GPU passthrough (/dev/kfd, /dev/dri)
Model DeepSeek-V4-Flash-0731-ablit1042-v2.gguf (2-bit quant, imatrix-tuned)
Port 8000 (OpenAI-compatible API)
Context 131,072 tokens (--max-ctx 131072)
GPU AMD Radeon 8060S iGPU (gfx1151, RDNA 3.5) on Ryzen AI MAX+ 395, via ROCm
Power limit 100%
KV cache Disk-backed (/srv/ember/kvcache, 256 GB budget via --kv-cache-mb 262144)
Speculative decoding Draft model DeepSeek-V4-Flash-0731-ablit1042-DSpark-draft.gguf (DFLASH_DS4_SPEC_MAX_CTX=49152)

Start Command

docker run -d --restart unless-stopped --name ember-server \
  --device /dev/kfd --device /dev/dri \
  --security-opt seccomp=unconfined \
  --network host \
  -v /srv:/srv \
  ghcr.io/otheru-ai/ember:2026.8.23 \
  --port 8000 \
  -m /srv/models/DeepSeek-V4-Flash-0731-ablit1042-v2.gguf \
  --model-name deepseek-v4-flash \
  --model-card /ember/share/model_cards/deepseek-v4-flash-src.json \
  --kv-cache-dir /srv/ember/kvcache --kv-cache-mb 262144 \
  --ds4-expert-top-k 4 --default-temperature 0.6 \
  --prefix-cache-slots 6 --max-ctx 131072

Architecture

Ember is not a wrapper or generic runner — it is a purpose-built C program with its own graph execution engine. Key design choices:

  • Single-model narrowness — only DeepSeek V4 Flash GGUFs with the expected tensor layout, quantization mix, and metadata
  • Self-contained — no dependency on llama.cpp/GGML at runtime; kernels, quant formats, and prompt rendering are native
  • Asymmetric quantization — routed MoE experts at IQ2_XXS, down at Q2_K; shared experts, projections, and routing left unquantized. This is what makes 2-bit quants viable: most of the model space is aggressively compressed but the critical paths stay accurate
  • Disk-first KV cache — checkpoints are written to SSD at four moments (cold, continued, evict, shutdown), enabling fast session resume across restarts without re-prefilling from token zero
  • Single-threaded inference — one graph worker serializes all requests; client threads handle HTTP parsing in parallel

Endpoints

Endpoint Method Description
/v1/chat/completions POST Standard OpenAI chat (streaming or non-streaming)
/v1/models GET List loaded model(s) with metadata
/v1/responses POST OpenAI Responses API
/v1/completions POST Legacy completions endpoint
/v1/messages POST Anthropic-compatible messages API

The deployment serves a single model id: deepseek-v4-flash.

Key CLI Flags

Flag Purpose
--max-ctx N Allocated context tokens
--power N GPU duty-cycle target (1–100)
--kv-cache-dir DIR Enable disk-backed KV checkpoints
--kv-cache-mb N Disk KV budget in MB
--ds4-expert-top-k N Routed MoE experts evaluated per token
--prefix-cache-slots N Number of cached prompt-prefix slots
--ssd-streaming Run models larger than VRAM via SSD-backed expert cache
--rocm / --cpu Select backend
--trace FILE Log prompts, cache decisions, output, and tool calls
--mtp Enable speculative decoding (experimental)

Disk KV Cache Behavior

Checkpoints are written at four moments:

  • cold — after a long first prompt reaches a stable prefix, before generation
  • continued — when prefill or generation reaches the next aligned frontier
  • evict — before an unrelated request replaces the live in-memory session
  • shutdown — when the server exits cleanly

Cold saves trim the last 32 tokens and align down to a 2048-token chunk boundary to avoid BPE retokenization misses.

Model Quantization

Quantized GGUFs in use:

Variant RAM Required Description
q2-imatrix 96–128 GB Production default on Strix-Halo. Imatrix-tuned 2-bit with asymmetric routed-expert quant
q2-q4-imatrix 96–128 GB Same with last 6 layers at Q4

Download script: download_model.sh q2-imatrix fetches from HuggingFace.

Performance Benchmarks

Reference Deployment (AMD Strix-Halo) — Measured

Measured 2026-08-22 on one AMD Ryzen AI Max+ 395 with Radeon 8060S (gfx1151) and 128 GB unified memory, against the published artifacts, with DSpark speculative decoding enabled:

Metric Result
Median decode 34.16 tok/s (33.67–34.16)
DSpark acceptance 0.989 median on greedy 256-token samples
Peak prefill 386.8 tok/s at \~2,074 prompt tokens
Prefill at \~32.8k tokens 282.3 tok/s

Acceptance is workload-dependent: mixed free-form sampling at temperature 0.6 measured \~0.52 mean acceptance on the same pair. Full harness, raw results and environment are in the benchmark bundle on the model card.

SSD Streaming

When the model does not fit in GPU-addressable memory, Ember can run in SSD streaming mode. Non-routed weights stay resident; routed MoE experts are cached and loaded from the GGUF file on miss. The automatic budget takes 80% of the GPU recommended working set, subtracts non-routed weights, then uses the rest for expert cache.

# Automatic cache budget
ember-server --ssd-streaming

# Explicit cache size
ember-server --ssd-streaming --ssd-streaming-cache-experts 32GB

Tooling

Binary Purpose
ember CLI interactive/one-shot inference
ember-server HTTP API server (OpenAI-compatible)
ember-bench Performance benchmark (prefill + decode across context frontiers)
ember-agent Integrated coding agent (alpha)
ember-eval Extractor self-test runner
download_model.sh Fetch GGUFs from HuggingFace

Additional tools under gguf-tools/: GGUF generation, imatrix collection, quantization, quality testing against official DeepSeek logits.