Un développeur débloque la puce M4 d'Apple
Les processeurs M4 d'Apple offrent une puissance de calcul considérable pour les opérations d'IA, mais le géant technologique exerce traditionnellement un contrôle strict sur ses composants. Concrètement, cela signifie que les développeurs d'applications peuvent uniquement utiliser le Neural Engine pour inférer ou exécuter des modèles pré-entraînés, mais ne peuvent pas y développer et entraîner directement de nouveaux algorithmes.
Un chercheur utilisant le pseudonyme « 0x0SojalSec » a publié sur GitHub un code source détaillant comment exploiter pleinement le potentiel de la puce et atteindre une puissance de calcul cachée de 15,8 TFLOPS pour l'apprentissage automatique. Bien que ce chiffre ne constitue pas un record à ce jour, la performance est remarquable car elle a été réalisée entièrement en dehors de l'environnement de développement officiel d'Apple.
Les paramètres de sécurité de l'entreprise ne permettant pas la communication directe avec le moteur neuronal pour des tâches aussi complexes, l'auteur du projet a dû trouver une solution sans utiliser d'outils logiciels officiels tels que CoreML ou Metal, ni le GPU. Il a donc développé son propre langage intermédiaire. Cette solution logicielle personnalisée sert de passerelle, permettant la rétropropagation complète des erreurs et l'apprentissage des modèles de transformateurs directement sur la puce neuronale.
En raison des limitations matérielles imposées par la conception d'usine, des solutions extrêmement ingénieuses ont dû être mises en œuvre pour garantir la stabilité du système d'exploitation. Si un processus se bloque ou se fige durant la phase d'apprentissage intensive, le langage de programmation personnalisé utilise une commande d'exécution spéciale pour le redémarrer. Ainsi, le système actualise son état et poursuit le traitement des données sans que l'application ne plante.
L'un des principaux défis posés par la gestion de charges de travail aussi exigeantes résidait dans la vitesse d'exécution. Afin d'assurer un déroulement aussi fluide que possible de l'apprentissage, le développeur a configuré le système pour qu'il écrive toutes les données directement dans la mémoire vive. En évitant délibérément la mémoire flash, nettement plus lente, l'ensemble des opérations est resté extrêmement rapide.





















