Tensor Processing Unit: la puce de Google optimisée pour l’apprentissage automatique

Il y a quelques années, Google s’est aperçue que l’intelligence artificielle en général, et l’apprentissage automatique (machine learning) en particulier allaient devenir fondamentaux pour ses services comme pour l’informatique en nuage.

Si les internautes prenaient l’habitude de lancer des recherches vocales ou de dicter avec leurs smartphones, l’entreprise estimait qu’elle allait devoir doubler le nombre de data centres, pour un coût en dizaines de milliards.

Elle a donc constitué une équipe pour étudier les solutions possibles. Sa décision a été de créer sa propre puce ASIC : Tensor Processing Unit (TPU).

Cette puce a été présentée lors de la Google I/O 2016. Norm Jouppi, l’un des architectes du processeur MIPS, expliquait que le TPU était optimisé pour TensorFlow, le logiciel d’apprentissage automatique de Google. Il affirmait que cette puce délivrait un ratio de performance par watt un ordre de magnitude supérieur que les processeurs ou les processeurs graphiques (GPU).

Ce que Jouppi comparait à un saut dans le temps de sept ans, soit environ 3 générations de la loi de Moore.

Il aura fallu attendre cette semaine pour que Google publie une analyse détaillée des performances, à laquelle ont contribué pas moins de 70 ingénieurs, et qui sera présentée lors du 44e International Symposium on Computer Architecture à Toronto, le 26 juin 2017.

Pour les charges de travail d’intelligence de Google, le TPU serait de 15 à 30 fois plus rapide que les processeurs et les GPU contemporains. Son ratio TOPS/Watt (téraopérations, ou 1 000 milliards d’opérations) serait 30 à 80 fois supérieur à celui des puces traditionnelles.

Des chiffres qui devraient inquiéter Intel et NVIDIA, leaders respectifs des marchés des processeurs et des cartes graphiques pour l’informatique haute performance.

Toutefois, un étudiant doctorant du Stanford Vision Lab remarque que les chercheurs de Google ont comparé la TPU avec le GPU Tesla K80 de NVIDIA. Ce GPU est vieux de 2 générations, ne possède pas de support pour les opérations basse précision sur des entiers de 8 bits, et a depuis été remplacé par les GPU d’architecture Pascal.

Comparé à l’actuel Tesla P40, le TPU n’est que 1,9 fois plus rapide et le rendement énergétique 6,5 fois supérieur. Le rendement énergétique est toutefois primordial pour l’informatique en nuage.

Cette différence est largement due à la façon dont le TPU accélère la phase d’inférence d’un réseau neuronal en quantifiant des opérations en virgule flottante 32 bits avec une arithmétique basse précision d’entiers sur 8 bits.

Le TPU de Google est donc supérieur, mais uniquement sur des tâches ultra-spécialisées. D’ailleurs, l’entrainement des modèles est toujours effectué par Google sur des GPUs. Comme la puce est maison, elle permet peut-être à Google d’offrir aux clients du Google Cloud des services d’apprentissage statistique plus rentables que ceux de la concurrence.

Le TPU confirme que, pour les quelques entreprises globales ‘à l’hyperéchelle’, il est possible, utile et rentable de développer ses propres puces. Microsoft a présenté il y a quelque temps son propre FPGA, et Intel produit depuis quelques années des processeurs spécifiques pour Facebook, AWS, Google ou Microsoft.

La plupart des entreprises n’ont en revanche pas une taille suffisante pour développer et produire leurs propres puces, et continueront d’utiliser les GPU NVIDIA et les processeurs Intel dans leurs serveurs. Car Google envisage son TPU comme avantage concurrentiel, et n’a pas l’intention de les vendres ou des licences.