“Runs on the edge” has been stretched until it means almost nothing. Vendors say it about models that need a Raspberry Pi, a phone, or a cloud fallback. Here is a five-point test you can hold any on-device-AI claim to — including ours — so you can tell marketing from engineering in about a minute.« Tourne sur l'edge » a été étiré jusqu'à ne presque plus rien vouloir dire. Des fournisseurs l'affirment pour des modèles qui réclament un Raspberry Pi, un téléphone ou un repli cloud. Voici un test en cinq points auquel soumettre toute affirmation d'IA embarquée — y compris la nôtre — pour distinguer le marketing de l'ingénierie en une minute environ.
The five questionsLes cinq questions
- Does it fit the RAM? Not “after streaming from an SD card” — does the model plus its activations and cache fit the chip's SRAM? RAM, not parameter count, is the real limit.
- Does it fit the flash? The packed weights plus the engine code, under the part's flash size.
- Is it heap-free? Runtime malloc on an MCU means fragmentation and mid-inference out-of-memory. Static buffers, or it does not count.
- Is it reproducible? Can you clone a repository and regenerate the numbers, or do they live only in a slide deck?
- Is it measured, not estimated? Real build sizes and parity tests, or hand-waving and round numbers?
- Tient-il dans la RAM ? Pas « après diffusion depuis une carte SD » — le modèle plus ses activations et son cache tiennent-ils dans la SRAM de la puce ? C'est la RAM, pas le nombre de paramètres, la vraie limite.
- Tient-il dans le flash ? Les poids empaquetés plus le code du moteur, sous la taille de flash du composant.
- Est-il sans tas ? Un malloc à l'exécution sur un MCU signifie fragmentation et panne mémoire en pleine inférence. Tampons statiques, sinon cela ne compte pas.
- Est-il reproductible ? Pouvez-vous cloner un dépôt et régénérer les chiffres, ou ne vivent-ils que dans une présentation ?
- Est-il mesuré, pas estimé ? Des tailles de compilation réelles et des tests de parité, ou de l'à-peu-près et des chiffres ronds ?
Scoring Atome against its own checklistNoter Atome face à sa propre checklist
Fairness means applying the test to ourselves. RAM and flash fit: measured per-configuration in the repository's RAM_TABLE.md, from a real Cortex-M3 build. Heap-free: yes, fixed static buffers, about 2.6 KB of .text. Reproducible: clone the repo, run the 146 tests and the scripts. Measured: bit-exact Python-to-C parity to 3.7×10⁻⁷. Four of five, with receipts.L'équité, c'est s'appliquer le test à soi-même. Tient en RAM et en flash : mesuré par configuration dans le RAM_TABLE.md du dépôt, à partir d'une vraie compilation Cortex-M3. Sans tas : oui, tampons statiques fixes, environ 2,6 Ko de .text. Reproductible : clonez le dépôt, lancez les 146 tests et les scripts. Mesuré : parité bit-exacte Python-vers-C à 3,7×10⁻⁷. Quatre sur cinq, preuves à l'appui.
The one it fails honestlyCelle qu'il échoue honnêtement
The fifth box has a caveat we will not paper over: “measured on physical silicon.” Atome's deployment numbers are QEMU Cortex-M3 measurements, not a bench with a power meter on a real board. That is the next box to tick, and we are not going to check it before it is true. Hold every vendor — us included — to the same five questions, and treat a missing answer as a “no” until proven otherwise. The point of the checklist is not to crown a winner; it is to make “runs on a microcontroller” mean something again.La cinquième case porte une réserve que nous ne masquerons pas : « mesuré sur silicium physique ». Les chiffres de déploiement d'Atome sont des mesures QEMU Cortex-M3, pas un banc avec un wattmètre sur une vraie carte. C'est la prochaine case à cocher, et nous ne la cocherons pas avant qu'elle soit vraie. Soumettez chaque fournisseur — nous compris — aux mêmes cinq questions, et traitez une réponse manquante comme un « non » jusqu'à preuve du contraire. Le but de la checklist n'est pas de couronner un gagnant ; c'est de redonner un sens à « tourne sur un microcontrôleur ».
How to apply the checklist in practiceComment appliquer la checklist en pratique
The checklist is most useful as a set of questions you put to a vendor or to your own team, with a simple rule: a missing or hand-wavy answer counts as a no. Ask for the peak RAM and flash on a named part, not a parameter count. Ask whether the engine allocates at runtime, and if so where the bound is. Ask for a repository you can clone and a command that reproduces the headline number. Ask whether the deployment figures came from a real build or an estimate. Each question has a concrete, checkable answer, and the absence of one is itself information. The goal is not to embarrass anyone; it is to convert a vague marketing claim into a small number of verifiable facts.La checklist est surtout utile comme un ensemble de questions à poser à un fournisseur ou à votre propre équipe, avec une règle simple : une réponse manquante ou évasive compte comme un non. Demandez le pic de RAM et le flash sur un composant nommé, pas un nombre de paramètres. Demandez si le moteur alloue à l'exécution, et si oui où se situe la borne. Demandez un dépôt que vous pouvez cloner et une commande qui reproduit le chiffre phare. Demandez si les chiffres de déploiement viennent d'une vraie compilation ou d'une estimation. Chaque question a une réponse concrète et vérifiable, et l'absence de l'une est elle-même une information. Le but n'est pas d'embarrasser qui que ce soit ; c'est de convertir une affirmation marketing vague en un petit nombre de faits vérifiables.
Why we hold ourselves to it tooPourquoi nous nous y soumettons aussi
It would be easy to write a checklist that conveniently scores ourselves five out of five. We did not, because the point of the exercise is trust, and trust comes from admitting the box you have not ticked. Atome clears RAM fit, flash fit, heap-free, reproducible and measured — four of five with receipts in the repository — and openly fails the fifth, physical-silicon measurement, because the numbers are QEMU Cortex-M3 and we will not present emulation as silicon. Publishing the gap is the whole point: a checklist you always pass is a marketing device, while a checklist that can fail you is a tool. Use it on us, and use it on everyone else.Il serait facile d'écrire une checklist qui nous attribue commodément cinq sur cinq. Nous ne l'avons pas fait, parce que l'objet de l'exercice est la confiance, et la confiance vient de l'aveu de la case que l'on n'a pas cochée. Atome valide la tenue en RAM, la tenue en flash, l'absence de tas, la reproductibilité et la mesure — quatre sur cinq, preuves à l'appui dans le dépôt — et échoue ouvertement à la cinquième, la mesure sur silicium physique, parce que les chiffres sont QEMU Cortex-M3 et que nous ne présenterons pas de l'émulation comme du silicium. Publier l'écart est tout l'intérêt : une checklist que l'on réussit toujours est un outil marketing, tandis qu'une checklist qui peut vous recaler est un outil. Appliquez-la-nous, et appliquez-la à tous les autres.
Red flags that should make you skepticalSignaux d'alerte qui doivent vous rendre sceptique
A few patterns reliably signal that an edge-AI claim will not survive contact with a real microcontroller. Watch for parameter counts quoted with no memory figure, because parameters without bytes hide the constraint that actually matters. Be wary of demos that turn out to run on a Raspberry Pi or a phone while being described as “on the edge,” since a Linux computer with gigabytes is a different category of machine. Treat “estimated” or suspiciously round numbers with caution, especially when no repository or build output backs them. And be skeptical of any claim of silicon performance that cannot point to a measurement on a named part. None of these red flags proves bad faith — sometimes they are just loose language — but each one is a prompt to ask the specific, checkable question underneath it before you build a roadmap on the answer.Quelques schémas signalent de manière fiable qu'une affirmation d'edge-AI ne survivra pas au contact d'un vrai microcontrôleur. Méfiez-vous des nombres de paramètres cités sans chiffre de mémoire, car des paramètres sans octets masquent la contrainte qui compte vraiment. Méfiez-vous des démonstrations qui se révèlent tourner sur un Raspberry Pi ou un téléphone tout en étant décrites comme « sur l'edge », car un ordinateur Linux avec des gigaoctets est une autre catégorie de machine. Traitez les chiffres « estimés » ou suspectement ronds avec prudence, surtout quand aucun dépôt ni sortie de compilation ne les étaye. Et soyez sceptique face à toute revendication de performance sur silicium qui ne peut pointer une mesure sur un composant nommé. Aucun de ces signaux ne prouve la mauvaise foi — parfois ce n'est qu'un langage relâché — mais chacun invite à poser la question précise et vérifiable qui se cache dessous avant de bâtir une feuille de route sur la réponse.
Bottom lineEn résumé
Treat “runs on a microcontroller” as a claim to be tested, not a phrase to be trusted. Ask the five questions — RAM fit, flash fit, heap-free, reproducible, measured — demand a named part and a clonable repository, and read any missing answer as a no. Applied honestly the checklist puts Atome at four of five, with the silicon-measurement box openly unticked. That is the standard the whole field should be held to, ourselves included, because a test you can fail is the only kind worth running.Considérez « tourne sur un microcontrôleur » comme une affirmation à tester, pas une formule à croire. Posez les cinq questions — tient en RAM, tient en flash, sans tas, reproductible, mesuré — exigez un composant nommé et un dépôt clonable, et lisez toute réponse manquante comme un non. Appliquée honnêtement, la checklist place Atome à quatre sur cinq, avec la case de mesure sur silicium ouvertement non cochée. C'est la norme à laquelle tout le domaine devrait être soumis, nous compris, car un test que l'on peut échouer est le seul qui vaille la peine d'être passé.
Frequently asked questionsQuestions fréquentes
How do I know if an LLM really runs on a microcontroller?Comment savoir si un LLM tourne vraiment sur un microcontrôleur ?
Check five things: it fits the chip's SRAM, it fits the flash, it is heap-free, the numbers are reproducible from a repository, and they are measured rather than estimated. A missing answer should be read as a no.Vérifiez cinq points : il tient dans la SRAM de la puce, il tient dans le flash, il est sans tas, les chiffres sont reproductibles depuis un dépôt, et ils sont mesurés plutôt qu'estimés. Une réponse manquante doit se lire comme un non.
Does Atome lm pass its own edge-AI checklist?Atome lm passe-t-il sa propre checklist edge-AI ?
On four of five points yes — RAM fit, flash fit, heap-free, reproducible and measured. The fifth, physical-silicon measurement, is not done yet: the numbers are QEMU Cortex-M3, and we say so.Sur quatre points sur cinq, oui — tient en RAM, tient en flash, sans tas, reproductible et mesuré. Le cinquième, la mesure sur silicium physique, n'est pas encore fait : les chiffres sont QEMU Cortex-M3, et nous le disons.
← All posts← Tous les articles Source & data on GitHubCode & données sur GitHub