How the Model Memory Fit engine decides what fits.
Method version 1.5.0 · Dataset 2026-09-07 · Last updated: September 2026
The engine answers one question: for a given model, quantisation, context length and concurrency, does it fit in this Jetson module's memory, and how much headroom is left? This page states every formula, every data table and every source the engine uses, and the rule it applies to label confidence. If a number on a result page cannot be traced back to something on this page, that is a bug.
Contents
- What it computes, and what it does not
- Inputs and defaults
- Weights
- KV cache
- VLM image tokens and vision tower
- Runtime overhead
- OS headroom and reserve
- Vision-pipeline mode
- Verdict thresholds and constraint statuses
- Capacity landmarks and requested position
- Evidence classes and the confidence rule
- Model registry
- Module memory
- Documents
- What invalidates a result
- Limitations and gaps
- Method changelog
1. What it computes, and what it does not
The engine builds a memory budget for one model on one Jetson module at one quantisation, context length, concurrency and runtime, and compares the total against the module's installed memory. Four modes share the same budget: llm (weights + KV cache + runtime overhead + OS + reserve), vlm (llm plus a vision tower and image tokens added to the context), asr (Whisper-style encoder–decoder, a small decoder KV cache), and vision (detector pipelines, whose model-side parts come from the shared V2 vision-memory module and are rebuilt on this same budget, so this engine and Model Match agree on what a detector weighs as well as on OS headroom and reserve).
It does not measure your actual runtime's memory use, predict tokens/s, model KV-cache eviction or paging strategies, or account for a container runtime's own overhead beyond the stated runtime constant. Where the registry has no data for a field the engine falls back to a stated formula (never a silent guess) and labels the result's evidence class accordingly.
2. Inputs and defaults
Every input has a stated default so a minimal request (platform + model) still returns a result.
| Input | Default | Notes |
|---|---|---|
platform | — | Required. A registry module id or a catalog/memory-estimator platform id. |
model | — | Required (non-vision modes). A registry id, or custom with params_b, layers, kv_heads, head_dim. |
mode | the model's registry type | llm · vlm · asr · vision |
quant | q4 | One of fp16, fp8, int8, q4, nvfp4. |
context_tokens | 4096 | Includes VLM image tokens (added on top). |
sequences | 1 | Concurrent sequences; multiplies the KV cache. |
kv_quant | fp16 | fp16 (2 bytes) or int8 (1 byte) per KV element. |
runtime | llama_cpp (tensorrt for vision) | One of llama_cpp, mlc, tensorrt_llm, vllm, transformers. |
images_per_prompt | 1 | VLM only. |
os | headless | headless or desktop. |
reserve_pct | 10 | 0–50. |
coexisting_mb | 0 | Memory reserved for co-located workloads. |
Inputs (WP-01). A field that is not stated takes its documented default and is listed in provenance.defaulted; a field that is stated but invalid — a count of 0, a negative, a fraction or a non-number, true in place of a count, an unknown value of an enumerated input, or an empty string — is rejected with VALIDATION_ERROR naming the field, never replaced by a default.
Input keys (WP-02). The engine accepts one list of input keys — the inputs documented here and their declared backward-compatible aliases. Unknown input keys are rejected with VALIDATION_ERROR naming the key: an invented or misspelt key is never silently ignored, a __ test hook never reaches the engine, and an alias sent together with the key it stands for is rejected too (the engine would read only one of them). export_json.inputs echoes every input the engine honoured, so replaying it reproduces the result.
3. Weights
The engine prefers a measured artefact: if the registry has a published quantised file for this model and quant (a GGUF from bartowski, unsloth or ggml-org, or a safetensors shard set), its published size is the weight figure, class A. Otherwise weights are parameters × bytes-per-parameter.
bytes_per_param is a fixed storage width for FP16/BF16 (2
bytes) and FP8 (1 byte) — class A, true by definition. For block quants
(INT8/GGUF Q8_0, Q4_K_M, NVFP4) the nominal bit width understates the real
size because each block also stores a scale, so the engine uses the
median measured artefact-size ÷ parameters ratio across the
registry's own rows for that quant — class D, a EdgeAIStack-derived
figure, not a vendor one.
| Quant | Nominal bits/weight | Bytes/param used | Basis | Class |
|---|---|---|---|---|
| FP16 / BF16 | 16 | 2 | fixed storage width | A |
| FP8 (E4M3) | 8 | 1 | fixed storage width | A |
| INT8 / GGUF Q8_0 | 8.5 | 1.064 | registry median (32 int8 weights + 1 fp16 scale per block) | D |
| GGUF Q4_K_M / INT4 | 5 | 0.625 | registry median (K-quant mixed 4-/6-bit blocks + fp16 scales) | D |
| NVFP4 | 4.5 | 0.5625 | 4-bit weights + 1 fp8 scale per 16-weight block | D |
Source for the Q8_0 block layout: ggml-org (llama.cpp) · github:ggml-org/llama.cpp/ggml-common.h §block_q8_0 · verified 2026-09-07 — “QK8_0 32 … block_q8_0 { ggml_half d; int8_t qs[QK8_0]; }”.
4. KV cache
The KV cache formula is the standard transformer key-value cache size, applied per sequence and summed across concurrent sequences. ASR mode caps the token count at the decoder's text limit (448 tokens for Whisper), since the encoder side has no growing cache.
Source: NVIDIA · nvidia-blog:mastering-llm-techniques-inference-optimization §Key-value caching · verified 2026-09-07 — “KV cache size per token = 2 × (num_layers) × (num_heads × dim_head) × precision_in_bytes”. Class A: the formula is the architecture-derived cache size; class D overall because layers/kv_heads/head_dim for a given model may themselves be class-A config.json fields or, when config.json omits head_dim, derived as hidden_size ÷ num_attention_heads (flagged per-model as head_dim_derived).
5. VLM image tokens and vision tower
A VLM adds two things beyond the text backbone: image tokens appended to the context (so the KV cache grows), and the vision tower's own weights.
image_tokens_per_image is model-specific and stated on each
model's page: for example Qwen2.5-VL uses (H/28)×(W/28) tokens
after a 2×2 spatial merge (1280 assumed for a ~1 MP image); Gemma 3
pools its SigLIP patches to a fixed 256 tokens per image. Vision-tower
parameters, when not directly stated, are estimated with the standard ViT
parameter count 12 × layers × hidden², kept in FP16 regardless
of the text quantisation (vision towers are rarely quantised below FP16 in
practice).
6. Runtime overhead
A fixed base plus a percentage of weights, per runtime — engineering heuristics (class E), not vendor-published figures. These cover the CUDA context, compute buffers and (for llama.cpp/MLC) the paged KV allocator's bookkeeping beyond the KV bytes already counted in §4.
| Runtime | Base | +% of weights | Note |
|---|---|---|---|
| llama.cpp / Ollama | 400 MB | 6% | CUDA context + compute buffer for the prompt batch (n_batch 512) |
| MLC LLM | 400 MB | 6% | TVM runtime + CUDA context; q4f16 KV in fp16 |
| TensorRT-LLM | 600 MB | 10% | engine activations + CUDA context; paged KV pool sized to max context |
| vLLM | 800 MB | 10% | CUDA graphs + activations; vLLM pre-allocates gpu_memory_utilization × total, so this is the minimum |
| Hugging Face Transformers (PyTorch) | 900 MB | 25% | PyTorch allocator + eager activations; no paged KV |
runtime_mb = base_mb + workspace_pct × (weights_mb + vision_mb) / 100.
6a. ASR serving overhead from the published landmark
An ASR row whose publisher states a serving memory figure — OpenAI's
Whisper README gives ~10 GB for large — is not sized from
weights × width alone, because that figure is measured on a
running transcription and this engine's modelled parts are not. The
difference is real memory: encoder activations, audio and beam buffers and
allocator slack. It is measured once, against a fixed
reference configuration — the one the publisher measured, and nothing of
what you asked for: FP16 weights, one sequence, an FP16 KV cache under the
publisher's reference runtime, the decoder's 448-token limit, a headless OS,
the default 10 % reserve and nothing co-located. It is then carried as
one more part of the budget:
The reference is fixed because it describes a measurement someone else made. Rebuild it from your inputs instead and the overhead becomes a residual that shrinks as your request grows — raising the reserve to 50 % would then lower the total, and a workload that was TIGHT at the defaults would read FITS under strictly worse assumptions. Every deployment cost you add — reserve, OS, co-located memory, context, concurrency, a wider quantisation, a heavier runtime — is charged on your own budget, and this fixed term is added on top of it.
So at the published configuration the total is the published
landmark (Whisper large-v3 FP16 at 448 tokens under the reference runtime:
10 GB, which does not fit an 8 GB module), while a narrower
quantisation or a longer concurrency still moves the total by exactly what
the weights and KV cache move. One consequence is worth stating plainly: the
single published figure is carried across runtimes, because no publisher
states an equivalent for MLC or llama.cpp, so a leaner runtime lowers the
total by its own modelled workspace and not by this term. The overhead is
class A by measurement and class E by
attribution: the landmark is published, the split between "what we model"
and "what we do not" is ours. Because it is part of the budget, every
figure built from that budget — the verdict, the concurrency ladder, the
largest-context sweep, the quantisation alternatives and the per-module
table — carries it, and the alternatives table names
published serving landmark as the basis for those rows.
7. OS headroom and reserve
Shared with Camera Stream Capacity so the two engines never disagree about what the OS costs.
Jetson modules share one memory pool between CPU and GPU (class A: NVIDIA · nvidia-docs:cuda-for-tegra-appnote §Memory Management · verified 2026-09-07 — “the iGPU and the CPU share the same SoC DRAM”), so the OS, the runtime and the model all draw on the same total; there is no separate VRAM.
8. Vision-pipeline mode
With no precision named in vision mode, the precision is the planning default of the task the model
registry files the model under (method 1.3.0) — FP16 for a YOLO11-seg or YOLO11-pose model, INT8 for every
other model — and on a platform that runs only INT8 (Coral, Hailo) the FP16 default falls back to INT8, the
platform’s supported precision. It is listed in defaulted, and a task-specific default is marked
workload.precision_default (DERIVED) with an assumption; a named precision is used as named.
For detector pipelines (YOLO, ResNet and similar), the engine does not duplicate the weight/activation/workspace model — the model-side parts come from the one shared V2 vision-memory module that Model Match also reads: the registry weight size at the chosen precision, and the published TensorRT activation and workspace split where one exists (class C), or that same published curve interpolated on to a parameter count it was not measured at (class E, and labelled as one). The workload-side parts — per-stream decode buffers (resolution mapped to the same buckets as Camera Stream Capacity: 720p 8 · 1080p 16 · 4K 64 MB), preprocess buffers (32 MB per stream), tracker memory and deployment overhead — are added here, and the total is rebuilt on this engine's shared budget function, so OS headroom and reserve are computed identically to every other mode. This keeps the two engines from silently disagreeing on a workload that could be scored by either.
9. Verdict thresholds and constraint statuses
The memory figure is also reported as a constraint object on the shared
V2 framework (status PASS below 80%, NEAR_LIMIT from 80% through 100%, FAIL above 100%) —
a slightly stricter early-warning line than the FITS/TIGHT/DOES_NOT_FIT
verdict, which is tuned for the headline sentence. Two additional
constraint types can appear: a software constraint
(class A, HIGH confidence) fails when the requested context exceeds the
model's max_position_embeddings, and a software
constraint reports UNSUPPORTED when runtime is
llama_cpp and the registry notes that no GGUF has been
published for the model (VILA 1.5 3B and 8B, as of the current dataset).
The headline verdict applies the kernel rollup across
every material constraint; memory_verdict keeps the
memory-only band above so a context or artefact failure cannot read
FITS while memory alone would fit.
A memory total over the capacity is a FAIL only when the evidence can prove it
(elimination authority). The weights, the KV cache and anything you
co-locate are exact arithmetic on published architecture facts; the runtime overhead, activations, workspace, OS
footprint and reserve are estimates. So the memory constraint FAILs — and the headline reads DOES_NOT_FIT —
when the floor alone exceeds the memory: the weights at the format's storage width (the published artefact when there is
one, else every parameter at the format's integer width), plus the KV cache for the text context, plus co-located
memory. When only the estimated overheads take the total over, the constraint is REQUIRES VALIDATION with the modelled
shortfall stated, memory_verdict still reads DOES_NOT_FIT and the headline reads UNKNOWN — not a pass,
not an elimination.
10. Capacity landmarks and requested position
Headroom uses the same landmark vocabulary as
Camera Stream Capacity:
comfortable, near_limit, modeled_ceiling,
and fails_at. For LLM workloads the ladder steps concurrent
sequences; for vision-pipeline mode it steps camera
streams. Each landmark records the count and the memory
utilisation at that step. near_limit is the highest count whose
utilisation sits in the memory tight band (85 % through 100 % inclusive).
A genuinely empty comfortable rung is
{ sequences: 0, reason: "no configuration below the comfortable threshold" }
rather than null; fails_at always carries the utilisation
that placed that rung. requested_position states whether the
caller's request sits below comfortable, between comfortable and near limit,
at the modeled ceiling, or above what fits; the utilisation in that statement
is always the requested configuration's own figure.
Alternative quantisations list weights_basis as either
published_file_size (class A artefact on disk) or
parameter_count (registry parameters × bytes per parameter).
11. Evidence classes and the confidence rule
Every figure carries one of five evidence classes.
| Class | Meaning | Used here for |
|---|---|---|
| A | Vendor specification | Module memory capacity; config.json / safetensors-index architecture fields; published quantised artefact sizes; fixed-width bytes-per-parameter (FP16, FP8) |
| B | EdgeAIStack measurement | Not used by this engine (no EdgeAIStack-run tokens/s benchmarks yet) |
| C | External measured benchmark | Jetson AI Lab archived tokens/s measurements |
| D | EdgeAIStack model | Registry-median bytes-per-parameter for block quants; KV-cache and vision-tower parameter formulas; image-tokens-per-image bases; derived head_dim |
| E | Engineering heuristic | Runtime overhead constants; OS headroom; reserve percentage |
Confidence: a result is MEDIUM when the
weight figure came from a published artefact (class A) and module capacity
is known; otherwise LOW. This is deliberately conservative
— every result mixes at least one class D/E part (KV cache, runtime, OS,
reserve), so nothing from this engine is ever labelled HIGH. The
software constraint for a context beyond
max_position_embeddings is HIGH confidence on its own (it is
a direct comparison against a class-A config field), but does not raise
the overall result above MEDIUM.
12. Model registry
22 rows: 10 LLM, 9 VLM, 3 ASR. Every field is copied from the publisher's
config.json, safetensors index or GGUF repository listing;
gated repos (meta-llama, google) are read from a byte-identical community
mirror (unsloth, NousResearch) and the mirror is named in the source.
Full detail per model, including quantised artefact sizes and Jetson
tokens/s measurements: /model-fit/.
13. Module memory
Installed memory per Jetson module, from NVIDIA's technical specifications table (class A). jetson_orin_nano_super is an alias of jetson_orin_nano (same silicon, same memory) and is not listed separately.
| Module | Memory | Source |
|---|---|---|
| Jetson Orin Nano 8GB | 8 GB | NVIDIA · nvidia.com:jetson-modules-spec-table · verified 2026-09-07 |
| Jetson Orin NX 8GB | 8 GB | NVIDIA · nvidia.com:jetson-modules-spec-table · verified 2026-09-07 |
| Jetson Orin NX 16GB | 16 GB | NVIDIA · nvidia.com:jetson-modules-spec-table · verified 2026-09-07 |
| Jetson AGX Orin 32GB | 32 GB | NVIDIA · nvidia.com:jetson-modules-spec-table · verified 2026-09-07 |
| Jetson AGX Orin 64GB | 64 GB | NVIDIA · nvidia.com:jetson-modules-spec-table · verified 2026-09-07 |
| Jetson Thor T5000 | 128 GB | NVIDIA · nvidia.com:jetson-modules-spec-table · verified 2026-09-07 |
| Jetson T4000 | 64 GB | NVIDIA · nvidia.com:jetson-modules-spec-table · verified 2026-09-07 |
14. Documents
| Document | Source line | Covers |
|---|---|---|
| Mastering LLM Techniques: Inference Optimization | NVIDIA Technical Blog · verified 2026-09-07 | KV cache size formula (§4). |
| ggml quantization block formats | ggml-org (llama.cpp) · github:ggml-org/llama.cpp/ggml-common.h §block_q8_0 · verified 2026-09-07 | Q8_0 block layout, the basis for the registry-median bytes-per-parameter derivation (§3). |
| CUDA for Tegra — Memory Management | NVIDIA · nvidia-docs:cuda-for-tegra-appnote §Memory Management · verified 2026-09-07 | Unified CPU/GPU memory statement (§7). |
| Jetson Orin technical specifications | NVIDIA · nvidia.com:jetson-modules-spec-table · verified 2026-09-07 | Orin family module memory (§12). |
| Jetson Thor technical specifications | NVIDIA · nvidia.com:jetson-modules-spec-table · verified 2026-09-07 | Thor T5000/T4000 module memory (§12). |
| Small Language Models tutorial (archive) | NVIDIA Jetson AI Lab · class C · verified 2026-09-07 | Jetson Orin Nano / AGX Orin tokens/s for Llama 3.2 1B/3B (MLC). |
| Jetson benchmarks (archive) | NVIDIA Jetson AI Lab · class C · verified 2026-09-07 | Jetson Orin Nano Super tokens/s across several models. |
Hugging Face config.json, model.safetensors.index.json, and the model-repository blob API (?blobs=true) | per publisher · class A · verified 2026-09-07 | Architecture fields, parameter counts and quantised-artefact file sizes for every registry row (§11). |
15. What invalidates a result
- A new model release or GGUF re-quantisation. Every result URL carries
mv(method version) anddv(dataset version); when either differs from the current values the result page says the data has changed since the link was made. - A different runtime than assumed. The runtime-overhead table is an engineering heuristic (§6); a real llama.cpp build with a larger
n_batch, or vLLM's pre-allocatedgpu_memory_utilization, can use meaningfully more or less than the stated base + percentage. - Container and driver overhead. The OS headroom figure (§7) is a bare-JetPack baseline; a Docker/L4T container runtime, X11/Wayland desktop session or other resident services add to it. The
coexisting_mbinput exists for exactly this. - Context beyond
max_position_embeddings. The engine still computes a KV cache for it and flags a class-A software constraint, but tokens/s and quality beyond the trained context are not modelled at all. - No GGUF for llama.cpp. VILA 1.5 3B and 8B have no published GGUF as of this dataset; the engine reports
UNSUPPORTEDfor that runtime rather than a number. - Vision-tower and image-token estimates. Any model whose vision tower has no published mmproj/file size uses the class-D
12×L×H²estimate (§5), which can be off by 20–30% against the model's real parameter count.
16. Limitations and gaps
- No Jetson-measured memory rows yet. The registry's
jetson_measurementscarry tokens/s (mostly class C, from Jetson AI Lab archives), not measured RAM footprints; every memory total on this site is computed from the formulas above, not read off a running board. Validate withsudo tegrastats. - Gated repositories. meta-llama and google repos on Hugging Face return 401 for unauthenticated reads; the registry uses byte-identical community mirrors (unsloth, NousResearch) instead and names the mirror in the source.
- VLM parameter counts include the vision tower. A model card's headline size (e.g. “Qwen2.5-VL 3B”) usually names the text backbone only; the registry's
params_bis the full safetensors total, so it reads higher than the marketing name. The engine separates text and vision parameters internally (§3, §5) so weight pricing is not double-counted. - Non-Jetson platforms. The engine falls back to the shared memory-hardware table for module capacity (class D) when a platform is not in the Model Memory Fit module registry; that path is LOW confidence.
- No accuracy or quality modelling. A quantisation that fits says nothing about output quality at that quant; that tradeoff is out of scope for this engine.
17. Method changelog
| Method | Dataset | Date | Change |
|---|---|---|---|
| 1.0 | 2026-09-07 | 2026-09-07 | First release. 22-model registry (10 LLM, 9 VLM, 3 ASR) with published architecture and quantised-artefact sources; 7-module Jetson memory table; weights, KV cache, vision tower, runtime overhead, OS headroom and reserve on the budget shared with Camera Stream Capacity; FITS/TIGHT/DOES_NOT_FIT verdict; headroom ladder over context and concurrency. |
| 1.0 | 2026-09-14 | 2026-09-14 | Vision mode: decode buffers resolve 1080p (and other shorthand resolutions) to the same per-stream buckets as Camera Stream Capacity; preprocess buffers (32 MB per stream) included in the shared budget so node-level totals match Camera Stream Capacity. |
| 1.1 | 2026-09-07 | 2026-09-17 | Landmarks aligned with Camera Stream Capacity (comfortable, near_limit, modeled_ceiling, fails_at) plus requested_position; KV cache on budget.parts; alternative quants expose weights_basis instead of a measured flag. |
| 1.2 | 2026-09-07 | 2026-09-18 | Headline verdict follows rollupFromLegacy so a software FAIL/UNSUPPORTED cannot read FITS; memory boundary frozen at under 85 % FITS, 85–100 % inclusive TIGHT, above 100 % DOES NOT FIT. |
| 1.2.1 | 2026-09-07 | 2026-09-18 | near_limit is the highest count in the memory tight band; empty comfortable is {sequences:0, reason:…} rather than null; fails_at.utilization is always numeric when the rung exists. |
| 1.2.2 | 2026-09-07 | 2026-09-20 | ASR serving budget prefers the publisher VRAM landmark (OpenAI Whisper large ~10 GB) over llama.cpp weights×width; 8 GB Nano FP16 large is DOES NOT FIT. |
| 1.2.3 | 2026-09-07 | 2026-09-20 | The published ASR landmark became a part of the budget (§6a) instead of a patch on the total: the serving overhead it implies is measured once at the publisher’s configuration (FP16 weights, one sequence) and carried on every quantisation, headroom step, alternative and module row. Whisper large-v3 FP16 on an 8 GB Nano no longer publishes a 6.1 GB FITS alternative or 27 concurrent sequences beside a 10 GB DOES NOT FIT, and subtotal + reserve = total holds for ASR again. A configuration above capacity reports requested_position.state = exceeds, never near_limit. The overhead is calibrated against a fixed publisher reference, not against your own inputs, so every deployment cost you add — reserve, OS, co-located memory, concurrency, a heavier runtime — raises the total instead of eating into the term. |
| 1.2.4 | 2026-09-07 | 2026-09-28 | Present-invalid inputs are rejected; absent inputs default and are recorded (WP-01): a value that is stated but malformed — mode: vision with a named language or speech model (it used to answer for YOLOv8n), a vision model_family or variant that is not on record (it used to FIT at 0 MB of weights; give custom_params_m to size an unregistered detector), a vision precision outside fp32 / fp16 / int8 — returns VALIDATION_ERROR naming the field instead of being replaced by a default; a field that is not stated takes its documented default and is listed in provenance.defaulted. A catalogued detector with no parameter count or weight size on record now answers UNKNOWN (the memory constraint is UNKNOWN with no required figure) instead of FITS at 0 MB of weights. |
| 1.2.5 | 2026-09-07 | 2026-09-28 | Input rules (WP-01 remainder, WP-02): mode, quant, kv_quant, runtime, os (an unknown value used to become headless), context_tokens, sequences, images_per_prompt, reserve_pct and coexisting_mb (no longer clamped), the custom-architecture numbers and the vision streams, batch_size, tracker_algorithm and deployment_mode (an unknown value used to add 0 MB) are checked. Unknown input keys are rejected. No formula changed. |
| 1.4.0 | 2026-09-07 | 2026-09-29 | elimination authority (#263, owner ruling 2026-09-29). The memory constraint FAILs, and the headline reads DOES_NOT_FIT, only when the exact floor — the weights at the format's storage width, the KV cache for the text context and co-located memory — exceeds the module; when only the estimated overheads take the total over it is REQUIRES VALIDATION, memory_verdict still reads DOES_NOT_FIT and the headline UNKNOWN (was DOES_NOT_FIT). Every row publishes elimination_authority. |
| 1.3.0 | 2026-09-07 | 2026-09-29 | Vision mode reads the one task-precision resolver (owner ruling of 2026-09-29; lead decision the same day). With no precision named, a YOLO11-seg or YOLO11-pose model is sized at FP16 — INT8 on an INT8-only accelerator, with the reason — and every other model at INT8, as before. Was the literal INT8 for every vision model. Listed in defaulted; a task-specific default is marked workload.precision_default (DERIVED) with an assumption. |
| 1.5.0 | 2026-09-07 | 2026-09-29 | The Edge TPU's on-chip SRAM is a parameter cache, not a memory-fit ceiling (#282; Google, Edge TPU Compiler — coral.ai/docs/edgetpu/compiler, “The Edge TPU has roughly 8 MB of SRAM that can cache the model’s parameter data,” and “If some of the model data cannot fit into the Edge TPU RAM, then it must instead be fetched from the external memory at run time”). A Coral model's memory check now PASSes whatever its compiled size: at or under the cache it is fully cached on chip; over it, the remainder streams from host memory at a documented speed cost, reported as a material risk (presentation_verdict FIT_WITH_RISKS) rather than a fit failure — how much slower is Compute Fit's question. No row built on this figure carries eliminating authority. Was: weights over ~8 MB read DOES_NOT_FIT, with a warning that conflated this with the separate, unrelated mechanism by which an unsupported operation runs on the host CPU (compiler graph partitioning) — the two are no longer conflated. With memory no longer failing a large Coral model, a stated vision precision is now judged on its own (a language quant is not judged here): against the same sourced precision-support registry Compute Fit reads, a vendor-documented exclusion (class A — Coral FP32/FP16, Hailo-8/8L FP32/FP16) is UNSUPPORTED and NO FIT; one no vendor document settles (class E) is REQUIRES VALIDATION, never eliminating; a supported value, or one never stated, adds no row and is never refused. |
Method changes bump the method version; registry updates (new models,
new measurements, corrected sources) bump the dataset version. Both
appear in the citation block under every result and in the
provenance object of every API response.
Run it on your model.
Every result carries its constraints, source lines and a permanent link. Browse the precomputed tree at /model-fit/, the raw registry at model-memory.json, or open the live engine below.