Module 5 — L'accélérateur IA 🎯

Le but final : comprendre et construire le circuit qui fait tourner les réseaux de neurones.

5.1 — Que calcule une IA, au juste ?

Derrière ChatGPT, la reconnaissance d'images ou la voix de ton téléphone, il y a une seule opération répétée des milliards de fois : le neurone artificiel. Il fait trois choses :

  1. multiplier chaque entrée par un poids : x₁·w₁, x₂·w₂, …
  2. additionner le tout (+ un biais b)
  3. passer le résultat dans une fonction d'activation (ex : ReLU = « si négatif, mettre 0 »)

Soit : sortie = ReLU(x₁w₁ + x₂w₂ + … + b). « Apprendre », c'est juste ajuster les poids. « Réfléchir » (l'inférence), c'est calculer cette formule en cascade sur des millions de neurones.

Joue avec un neurone

Bouge les entrées et les poids. Observe la somme pondérée et l'effet du ReLU. Défi : règle les poids pour que le neurone « détecte » quand x₁ est grand ET x₂ est petit.

Σ xᵢwᵢ + b 5.0 → ReLU
sortie = 5.0

5.2 — Des neurones aux matrices

Une couche de réseau de neurones = plein de neurones qui lisent les mêmes entrées. Mathématiquement, ça s'écrit en une seule opération : y = W·x — une multiplication matrice × vecteur. Tout le deep learning n'est que ça :

image 224×224 → vecteur x de 150 528 nombres
couche 1 : y₁ = ReLU(W₁ · x)      ← des millions de multiplications
couche 2 : y₂ = ReLU(W₂ · y₁)     ← encore des millions
…
sortie : « c'est un chat » 🐱

Un GPU ou un TPU n'est rien d'autre qu'une machine à multiplier des matrices très vite. Et le circuit champion pour ça, celui du TPU de Google, c'est le réseau systolique.

5.3 — Le réseau systolique : le cœur de ta puce

L'idée géniale : une grille de petites cellules MAC (Multiply-ACcumulate). Chaque cellule fait UNE chose : acc ← acc + (a × b), puis passe a à sa voisine de droite et b à sa voisine du bas. Les données « pulsent » à travers la grille comme le sang dans un cœur (d'où systolique) — et la multiplication de matrices émerge toute seule, sans chef d'orchestre.

Une cellule MAC = un multiplicateur + ton additionneur du Module 1 + un registre du Module 3. Tu connais déjà toutes les pièces.

Simulateur : réseau systolique 3×3

Envoie des cycles d'horloge : les valeurs de A entrent par la gauche, celles de B par le haut, et chaque cellule accumule a×b au passage.

prêt — cycle 0

Après ~7 cycles, la grille contient C = A×B. 9 multiplications×3 = 27 opérations… faites par 9 cellules en 7 cycles au lieu de 27. C'est ça, le parallélisme matériel. Un TPU fait pareil avec une grille 256×256 = 65 536 cellules.

5.4 — La cellule MAC en Verilog

Le cœur de ton accélérateur tient en quelques lignes — et tu peux maintenant lire chacune d'elles :

module mac_cell (
  input clk,
  input [7:0] a_in, b_in,        // données qui arrivent
  output reg [7:0] a_out, b_out, // transmises aux voisines
  output reg [15:0] acc          // l'accumulateur
);
  always @(posedge clk) begin   // Module 3 : registres + horloge
    acc   <= acc + a_in * b_in;  // Module 1 : multiplier + additionner
    a_out <= a_in;               // passer à la voisine de droite
    b_out <= b_in;               // passer à la voisine du bas
  end
endmodule
// Ta puce IA = ce module instancié en grille N×N. C'est tout.

5.5 — Le chemin vers le silicium réel

  1. Simuler : écrire la grille complète en Verilog + testbench (Icarus Verilog sur ce serveur — on l'installera ensemble)
  2. FPGA (~20-60€) : charger ton design sur une Tang Nano 9K ou ULX3S — ta puce IA fonctionne physiquement, sur ton bureau
  3. Y connecter un vrai modèle : un petit réseau entraîné sur MNIST (chiffres manuscrits), poids quantifiés en 8 bits
  4. Tiny Tapeout (~150-300€) : ton design gravé sur une vraie puce de silicium partagée, fabriquée en usine (SkyWater 130 nm), livrée chez toi 🏆

🧠 Tu as maintenant la carte complète

Transistor → porte → additionneur → registre → CPU → cellule MAC → grille systolique → puce IA.
Chaque étage est fait de l'étage du dessous, et tu les connais tous. La suite, c'est de la pratique : NandGame pour ancrer, puis le Verilog réel sur ce serveur.

5.6 — Le quiz final

Quiz du module

1. L'opération n°1 d'un réseau de neurones est :

2. Une cellule MAC calcule :

3. Dans un réseau systolique, les données :

4. Pourquoi une grille systolique est-elle plus rapide qu'un CPU pour l'IA ?

5. ReLU(-3) = ?

Réponds juste aux 5 questions du quiz pour débloquer.

← Module 4 Retour à la roadmap