L’intelligenza artificiale è ormai ovunque, dalla gestione dei big data delle aziende con migliaia di dipendenti e milioni di clienti ai semplici (e ancora abbastanza grezzi, a dire il vero) chatbot di filtraggio delle richieste di assistenza telefonica. Dietro a tutto ciò ci sono complessi algoritmi e potenti calcolatori che li applicano a una enorme quantità di dati. Il leader di questo segmento del mercato dei processori, oggi, è solo uno: Nvidia.
L’azienda di Santa Clara, in California, ha presentato a maggio 2020 la sua ultima linea di processori dedicati all’AI, cioè le GPU di ottava generazione A100 basate sull’architettura Ampere. Secondo Nvidia il salto generazionale è enorme: Ampere offre prestazioni venti volte superiori rispetto alla precedente architettura Volta. Ecco, allora, lo stato dell’arte dell’hardware e del software per gestire la AI nel 2020.
I processori grafici (le Graphics Processing Unit o GPU) sono infatti più indicati di quelli “generalisti” (le Central Processing Unit o CPU, per intenderci) per i calcoli richiesti dagli algoritmi di intelligenza artificiale. I secondi, infatti, eseguono le operazioni “serialmente”, ossia una dopo l’altra; i primi, invece, sono realizzati per eseguire operazioni “in parallelo” (quindi più operazioni contemporaneamente), aumentando così il numero di calcoli che il processore riesce a compiere nella singola unità di tempo. Su queste basi si fonda quella disciplina che è chiamata GPU computing.
Nvidia Ampere: la GPU per l’AI
“Abbiamo spinto l’architettura Volta fino a quando abbiamo potuto, prima che prendesse fuoco“, con queste parole il capo degli ingegneri che progettano le GPU di Nvidia, Jonah Alben, ha descritto il motivo per cui è stato necessario ridisegnare da zero la nuova generazione di processori. La GPU Nvidia A100 è formata da 54 miliardi di transistor ed è dotata di Tenson Cores di terza generazione. Un Tenson Core è un core in grado di eseguire calcoli con precisione mista, un mix di calcoli su numeri a virgola mobile a 16 bit e 32 bit particolarmente adatto all’elaborazione degli algoritmi di deep learning. Questi algoritmi vengono applicati ad una enorme mole di dati e, come accennato, li rende particolarmente adatti all’elaborazione più tramite una GPU che tramite una CPU.
La A100 di Nvidia, quindi, non è certo una GPU che nasce per il gaming ma soprattutto per i data center dedicati alla AI e allo high-performance computing (HPC), il calcolo ad alte prestazioni al servizio della scienza: questa GPU può usare fino a 40 GB di memoria dedicata e produce fino a 400 Watt di calore. Usata per “allenare” l’algoritmo BERT riesce a processare 2.274 frasi al secondo, contro le 822 della precedente GPU Nvidia V100 (basata su architettura Volta). La A100, inoltre, grazie alla tecnologia Multi-Instance GPU (MIG) è in grado di dividersi virtualmente in sette per elaborare altrettante istanze in modo separato.
Graphcore: la IPU per l’AI
Un approccio diverso all’elaborazione dell’intelligenza artificiale è quello intrapreso da Graphcore, società inglese di che produce semiconduttori nata nel 2016 e che ha già raccolto centinaia di milioni di dollari in investimenti da parte di Samsung, Microsoft, Dell e molti grandi fondi d’investimento. Graphcore non produce né CPU né GPU: produce IPU (Intelligence Processing Unit). Una IPU è un processore parallelo altamente flessibile, facile da usare, progettato da zero per offrire prestazioni all’avanguardia con gli attuali modelli di intelligenza artificiale. È stato infatti progettato, da zero, per l’esecuzione efficiente di operazioni su un numero elevato di thread paralleli.
La IPU, a differenza di altre architetture fortemente parallele (ad esempio la GPU), si adatta bene a calcoli atipici e che mostrano accessi irregolari ai dati. L’IPU offre un vero parallelismo MIMD (istruzioni multiple, dati multipli) e ha una caratteristica unica rispetto alle CPU e alle GPU: la memoria è direttamente dentro la IPU, non fuori. Ogni IPU contiene 1.216 elementi di elaborazione chiamati “tile“. Ogni tile è una sorta di tessera composta da un core di elaborazione più 256 KB di memoria locale. La comunicazione tra le diverse tile avviene ad altissima velocità, e ogni IPU può comunicare a bassa latenza (quindi con un brevissimo ritardo temporale) con altre IPU tramite dieci interfacce di comunicazione proprietarie. In questo modo aumenta moltissimo la possibilità di fare elaborazione parallela su enormi quantità di dati in tempi ristretti.
Altra cosa interessante: le IPU vengono usate per “digerire” i dati forniti da CPU, con le quali comunicano tramite bus PCIe. Il server Dell EMC DSS8440, ad esempio, è composto da 8 schede PCIe che contengono 16 IPU Graphcore Colossus per un totale di 19.456 IPU-Core (cioè tile) con 4,8 GB di memoria al loro interno. Il tutto per elaborare i dati provenienti da due Intel Xeon Platinum 8168 affiancati da 24 moduli di RAM da 32 GB ciascuno. Il consumo totale di questo server è di 4.800 Watt, la sua potenza sfiora i 2 petaFLOPS nei calcoli a precisione mista.
Intel: da Nervana ad Habana
Al dominio di Intel nel segmento delle CPU consumer non corrisponde quello nel segmento dei chip per l’AI. Per contrastare l’ascesa di Nvidia in questo settore, Intel aveva acquistato nel 2016 la startup Nervana, pagandola 408 milioni di dollari. A metà dicembre 2019, però, Intel ha speso altri 2 miliardi di dollari per comprare un’altra startup: Habana. Dopo questa seconda acquisizione Intel ha chiuso Nervana e l’ha fatta confluire in Habana che, oggi, è di fatto il reparto AI di Intel.
Habana al momento produce due chip per l’elaborazione degli algoritmi di intelligenza artificiale. Il primo si chiama Gaudi ed è destinato al “training” degli algoritmi, il secondo si chiama Goya ed è destinato alle “inference“. Con il primo termine si intende l’apprendimento di una nuova capacità tramite l’elaborazione di dati già esistenti, con il secondo si intende l’applicazione di questa capacità a nuovi dati. Per fare un esempio: dare “in pasto” ad un algoritmo milioni di foto di volti umani per insegnargli a riconoscere quali sono gli occhi è training, usare questa capacità appena acquisita per riconoscere gli occhi dei volti ripresi da una telecamera di videosorveglianza è inference.
Al momento le prestazioni di questi due chip sono superiori a quelle offerte dalle GPU Nvidia V100, ma inferiori rispetto a quelle promesse dalle nuove A100. In realtà, però, Intel potrà diventare competitiva in questo settore solo se riuscirà a fondere le potenzialità e le risorse tecniche e umane provenienti da Nervana con quelle di Habana. E non sarà qualcosa che avverrà nel 2020.
Fonte Fastweb.it