Skip to content

Capability Matrix

Mike Wright edited this page Aug 8, 2026 · 39 revisions

Capability Matrix

“Yes” means the current architecture and source contain a usable path. “Limited” calls out an important constraint. Exact availability can depend on the build feature and the connected server.

Capability Browser-only Native CPU Apple MLX NVIDIA CUDA
Core language and arrays Yes Yes Yes Yes
Named axes and structured shape errors Yes Yes Yes Yes
Model DSL Yes Yes Yes Yes
CPU autograd and optimizers Yes Yes Fallback Fallback
General arbitrary-model GPU training No N/A Yes No
Supported LoRA GPU training fast path No N/A Yes Yes
Supported two-linear MLP GPU training path No N/A Yes Yes
Tiny/tutorial training Yes, size-limited Yes Mixed by model path Mixed by model path
Inline visualization Yes No, artifact path Via client/artifact Via client/artifact
Filesystem load No Yes, sandboxed Yes, native host Yes, native host
Static include (script mode) No, precise error Yes, sandboxed under --source-dir Yes, native host Yes, native host
@word annotations + @test registry + reflection (tests, test_info, annotations) Yes Yes Yes Yes
bracket(setup, use, teardown) guaranteed-finally Yes Yes Yes Yes
transpose_axes dyadic transpose + blocked rank-3/4 disp Yes Yes Yes Yes
Typed test events (test_event_sink/emit_test_event) + host transport Yes, response array Yes, --test-events JSONL Yes Yes
expunge / :erase name removal Yes Yes Yes Yes
Header staleness badge (current / update-reload / unknown-offline) Yes n/a n/a n/a
global_set explicit workspace writes Yes Yes Yes Yes
Sandboxed fs API (fs_walk/read_text/write_text/remove_path) No, err value Yes, --source-dir sandbox Yes Yes
run_script fresh-env execution + exit interception No, err value Yes Yes Yes
Higher-order quartet (each/table/atop/over) Yes Yes Yes Yes
parse_json + multi-line argument lists Yes Yes Yes Yes
clock_ms monotonic benchmark clock No, not a browser builtin Yes Yes Yes
Fixed-width bit ops (band/bor/bxor/bnot/popcount/shl/shr/bmask/bits/from_bits) Yes Yes Yes Yes
KV-cache generation (gen_state/gen_logits/gen_append/gen_clone/gen_reset/gen_stats) Yes Yes Yes Yes
Exception-free record access (has_field / record_get) Yes Yes Yes Yes
JSON codec (parse_json / to_json, deterministic round trip) Yes Yes Yes Yes
Root value-kind detection (type_of) Yes Yes Yes Yes
Raw-byte file I/O (read_bytes / write_bytes, sandboxed) Yes No (no sandbox) Yes Yes
Provenance badge v2 (running vs served vs repo; deploy-pending state) Yes n/a n/a n/a
Partial application + applicative call (the combinator birds) Yes Yes Yes Yes
Fixed-point combinator via partials (Y / recursion without a name) Yes Yes Yes Yes
load_preloaded Yes Yes Yes Yes
Trace export to disk No Yes Yes Yes
BPE and byte tokenization Yes Yes Yes Yes
Experiment tracking Memory Disk Disk Disk
Device feasibility estimation Yes Yes Yes Yes
Trustworthy calibration Limited Yes Yes Yes
Direct llm_call or local Ollama No Yes Yes Yes
Server sessions and inspection Client only Server build Server build Server build
SSE training telemetry and cancel Connected client Yes Yes Yes
Session persistence and reattach Connected client Yes Yes Yes
Compilation to Rust/native Build elsewhere Yes, subset CPU target subset CPU target subset
Engram conditional memory Yes, CPU Yes, CPU CPU execution CPU execution

Reading GPU claims correctly

flowchart TD
    Scope[Enter device scope] --> Backend{Backend built and available?}
    Backend -->|No| CPUFallback[Run CPU fallback and warn]
    Backend -->|Yes| Operation{Operation or model shape supported?}
    Operation -->|General forward op| GPUOp[Dispatch GPU operation]
    Operation -->|Recognized training fast path| GPUTrain[Train on GPU]
    Operation -->|Unsupported training graph| Tape[Use CPU autograd tape]
    Tape --> Notice[Do not interpret scope alone as GPU training]
Loading

MLX uses persistent device tensors and a device-aware autograd tape for general training. CUDA accelerates recognized LoRA and two-linear MLP training shapes; other CUDA-scoped training uses the CPU tape. Confirm device telemetry rather than inferring residency from the device scope alone.

See Execution Surfaces for deployment choices and the individual backend pages for build and limitation details.

Clone this wiki locally