Oltre 12 miliardi di dollari investiti nel 2017 con una crescita del 59 percento rispetto all’anno scorso e un obiettivo di 46 miliardi di dollari di giro d’affari nel 2020. È il mercato dei sistemi di intelligenza artificiale secondo le cifre di IDC, un ambito in cui tutti i principali nomi dell’IT stanno investendo e che promette di rivoluzionare il nostro modo di usare la tecnologia.
A questo mercato si pensa soprattutto dal punto di vista del software, in realtà per portare davvero avanti l’evoluzione dei sistemi di AI – più precisamente di machine learning, che ne rappresenta il cuore per la grande maggioranza delle applicazioni – servono hardware adeguati. Ma, contrariamente al pensiero comune, non processori di grande potenza nel pieno rispetto della Legge di Moore: le soluzioni considerate migliori coinvolgono CPU di nuova concezione in cui conta il lavoro di gruppo.
I tecnici del machine learning per chiarire il concetto fanno spesso lo stesso paragone. Il nostro cervello non è un mega-processore: è una miriade di piccole unità elaborative – i neuroni – che da sole fanno poco ma lavorano in sinergia e facendo pesantemente leva sulla comunicazione. Se vogliamo creare sistemi hardware che operino in qualche modo come il cervello, è a questo modello che ci dobbiamo ispirare.
Il concetto della bassa precisione
Per decenni l’evoluzione dei processori ha puntato a CPU singolarmente sempre più potenti e capaci di eseguire calcoli ad alta precisione. Storicamente la cosa ha senso: era più facile rendere più veloce un processore e i suoi componenti interni, i colli di bottiglia erano “fuori” verso la memoria e lo storage, in generale nelle comunicazioni tra la CPU e qualsiasi altro componente. Oggi non è più così e la comunicazione tra processori, RAM e storage è molto più veloce sia per il miglioramento dei sistemi di I/O sia per la maggiore velocità dei componenti in sé (pensiamo ad esempio alla tecnologia 3D XPoint).
A questo punto si è iniziato a progettare sistemi che puntassero alla velocità di elaborazione unendo le forze di centinaia o migliaia di core capaci di suddividersi opportunamente il carico di lavoro e di condividere i dati necessari. È quello che da diversi anni si fa nel campo delle GPU e non è un caso che, più di recente, i sistemi di machine learning spesso di basino sulla sinergia tra processori classici e GPU ottimizzate che fanno da acceleratori.
Il salto concettuale è sviluppare processori (non GPU) di nuova generazione che abbandonino la ricerca dell’alta precisione (tecnicamente, del calcolo in virgola mobile a 64 bit) per realizzare invece sistemi di “dense computing” a 16 bit che rendono molto meglio per il machine learning. È un salto non semplice, perché in questi sistemi a bassa precisione quello che manca in potenza di calcolo pura deve arrivare da un altissimo tasso di parallelismo e anche da algoritmi di intelligenza artificiale studiati ad hoc.
Tutti ai nastri di partenza
Lo sviluppo dei processori per il machine learning non parte da zero ma è un campo concettualmente abbastanza nuovo da livellare le differenze competitive tra i classici produttori di processori. Almeno in parte. Che carte hanno in mano, quindi, i vari giocatori?
I puristi assoluti dell’AI storcono un po’ il naso quando si parla del ruolo delle GPU nel campo dei sistemi a bassa precisione perché è come se ci fossero capitate per caso. Ma è un dato di fatto che quando si tratta di processori ad alta densità l’esperienza maturata da chi fa processori grafici di fascia alta – quindi Nvidia e AMD – ha il suo peso.
Nvidia ha mostrato circa un anno fa la sua visione del tema machine learning con il sistema DGX-1: due processori Intel Xeon collegati a una batteria di acceleratori GPU Tesla P100 con interconnessioni NVLink ad alta velocità. Lo step successivo che ora si è posta è passare dall’architettura Pascal delle P100 alla futura architettura Volta delle GPU, che dovrebbe portare miglioramenti prestazionali notevoli.
AMD è l’unica a poter giocare già adesso sui tavoli degli acceleratori e delle CPU usando sviluppi completamente propri. In campo GPU le schede Radeon hanno già dimostrato la loro efficacia, in campo processori la strada multi-core è quella di Naples, il chip server a 64 core che dovrebbe debuttare quest’anno. AMD ha già delineato una configurazione a doppio Naples con il collegamento diretto di ciascuna CPU a quattro acceleratori Radeon Instinct, proprio per applicazioni di intelligenza artificiale.
Intel si è mossa decisamente in campo machine learning con un’acquisizione: quella di Nervana. Non a caso l’ex CEO di Nervana, Naveen Rao, è ora il responsabile della divisione Intel dedicata all’AI. Nervana ha portato in dote il design del suo processore per il dense computing (il Nervana Engine), che ora è in test presso alcuni utenti e che nel prossimo futuro sarà disponibile come prodotto autonomo (nome in codice Lake Crest) e successivamente integrato con la CPU multi-core Xeon Phi nel futuro processore Knights Crest.
Anche ARM punta ai processori per il machine learning, a modo suo. Il campo stavolta è quello dei processori embedded o da device mobili: qui ARM spinge un’architettura definita DynamIQ big.LITTLE che vede la convivenza nello stesso chip di processori Cortex A diversi ottimizzati per compiti specifici. Uno sarà sempre più l’esecuzione in locale di algoritmi di machine learning grazie a un nuovo set di istruzioni ad hoc. Algoritmi che però, quasi certamente, dovranno essere “addestrati” altrove.
Ci Sara una ISA ad hoc estesa da x86….di avx512 su Wikipedia la menzionano…
[…] non può trattarsi di un processore in grado di "imparare" autonomamente perché questo richiede una grande potenza. È presumibile che le sue funzioni siano in parte eseguite in tempo reale dai server Apple, come […]