Un CPU qui tourne sur GPU
Le projet nCPU repousse les limites de l'absurde utile : c'est un processeur complet dont chaque composant est implémenté comme un réseau de neurones tournant sur GPU. Registres, mémoire, flags, program counter — tout est un tenseur PyTorch.
Comment ça marche
Chaque opération ALU est un modèle entraîné :
- Addition : utilise l'algorithme Kogge-Stone carry-lookahead, implémenté via 8 passes neurales
- Multiplication : table de lookup apprise pour les paires d'octets
- Opérations logiques : tables de vérité neurales vectorisées
- Shifts : routage de bits basé sur l'attention
Le résultat ? 100% de précision sur l'arithmétique entière, vérifié par 347 tests automatisés.
L'inversion des performances
Le finding le plus contre-intuitif : la multiplication est 12x plus rapide que l'addition.
Dans un CPU classique, MUL est toujours plus lent qu'ADD. Ici, c'est l'inverse. La table de lookup pour MUL (21 µs) n'a aucune dépendance séquentielle, alors que l'additionneur carry-lookahead (248 µs) nécessite O(log n) étapes de propagation.
23 modèles, 135 Mo
Le "CPU" embarque 23 modèles entraînés pour un total de 135 Mo :
- Arithmetic (ADD/SUB/CMP) : 100% précision
- Multiplication : 100% précision
- Logique (AND/OR/XOR) : 100% précision
- Shifts : 100% précision
- Fonctions math (sin, cos, sqrt, exp, log) : entraînées
Performance globale
- ~262 µs par cycle instruction
- ~4,975 instructions par seconde
- Chargement des modèles en 60ms
C'est évidemment des ordres de grandeur plus lent qu'un vrai CPU. L'intérêt n'est pas la performance.
Pourquoi c'est intéressant
Ce projet est un exercice de pensée matérialisé. Il démontre que les réseaux de neurones peuvent implémenter n'importe quelle fonction calculable — y compris un processeur complet.
C'est aussi une exploration des frontières entre hardware et software, entre calcul déterministe et calcul appris. Le code est disponible sur GitHub pour ceux qui veulent explorer cette étrange intersection.
