# Larrabee (hardware)

«Larrabee nasce dalla volontà di fondere in un unico prodotto la "programmabilità della CPU e l'elevato parallelismo della GPU"»
(Dichiarazione fatta nel 2008 da parte di Intel in merito al progetto Larrabee)
Larrabee è il nome in codice di quello che, nelle intenzioni di Intel, sarebbe dovuto diventare un nuovo tipo di processore specificamente sviluppato, almeno inizialmente, per il settore del calcolo parallelo e realizzato attraverso l'impiego di un core grafico, ovvero una sorta di GPU.
Le prime notizie riguardanti tale progetto risalgono alla prima metà del 2007, e ai tempi venne annunciato come prodotto commerciale in un periodo compreso tra la fine del 2009 e l'inizio del 2010; successivamente, tale lancio venne posticipato quasi di un anno, per la fine del 2010, per poi invece venire completamente abbandonato (o comunque rimandato a tempo indeterminato) a causa di una serie di problematiche tecniche emerse in fase di sviluppo.

## Caratteristiche tecniche

Sostanzialmente, Larrabee doveva essere basato su un'architettura IA parallela programmabile mediante l'impiego di moltissimi strumenti software già esistenti (nelle intenzioni di Intel, avrebbero dovuto essere i compilatori ad ottimizzare il codice scritto in funzione dei moltissimi core a disposizione) e progettata per poter raggiungere una scalabilità di trilioni di operazioni in virgola mobile al secondo, i cosiddetti TeraFLOPS. La dicitura "IA" è comunemente utilizzata da Intel per indicare architetture che fanno uso del set di istruzioni x86.
I core dovevano quindi essere di tipo x86 (ad esempio 24 o 32, come detto sopra) basati su un'architettura relativamente semplice, probabilmente quella del core P54C alla base dell'ultima evoluzione dello storico processore Pentium (ovviamente con notevoli correzioni e modifiche a partire dalla tecnologia produttiva utilizzata che sarebbe stata, come detto, quella a 45 nm); era previsto che ogni core fosse dotato di una cache L1 da 32 kB e di una L2 da 256 kB. Inizialmente si era parlato della presenza di un'unica grande cache condivisa, anch'essa basata su un'architettura di nuova concezione, ma successivamente Intel non ha più chiarito quale dei 2 approcci avesse poi scelto nel seguito dello sviluppo del progetto.
I vari core dovevano essere affiancati da una circuiteria di I/O e il tutto sarebbe stato montato su un singolo package; proprio in ragione della semplicità della loro architettura, i core scelti per l'integrazione, supportavano l'esecuzione In-order, e non la ormai tradizionale Out-of-order che consente di eseguire le singole istruzioni senza rispettare necessariamente l'ordine imposto dal programmatore, mentre il clock sarebbe stato compreso tra 1,7 GHz e 2,5 GHz (probabilmente a seconda delle versioni). Tali core avevano pipeline corte ed erano dotati, tra le altre cose, di una Vector Unit, funzionalità multithreading e tecniche di prefetch ottimizzate. Era previsto inoltre il supporto da parte dei core agli indirizzi a 64 bit, ma Intel non ha mai dichiarato se si trattava della tecnologia EM64T implementata anche nelle altre CPU prodotte dalla casa o di una nuova progettazione. Era inoltre presente la tecnologia Simultaneous Multi-Threading (SMT) già vista nell'architettura Nehalem, particolarmente utile in una CPU come Larrabee in quanto, dato che i core di tipo in-order non sono in grado di riorganizzare l'esecuzione delle istruzioni, poter eseguire ben 4 thread in contemporanea (nella tradizionale applicazione di tale tecnologia nelle altre architetture, il numero di thread per core è pari a 2) aiuta a saturare comunque le risorse del core.
La scelta di integrare un numero molto elevato di core "elementari", e per di più In-order, venne dettata dal fatto che generalmente le operazioni relative alla grafica richiedono un flusso di istruzioni lineare; le ramificazioni del flusso sono quindi scarse e le tradizionali CPU, che sono basate su core molto più complessi, sono invece ottimizzate proprio per l'esecuzione di tale tipo di flusso ramificato con molte dipendenze tra le varie istruzioni. Secondo Intel, una CPU dual core simile a un Core 2 Duo, confrontata con una ipotetica versione di Larrabee occupante la medesima superficie del die e dal consumo paragonabile, offrirebbe un vettore istruzioni 20 volte inferiore.
Il bus di comunicazione interno previsto dal progetto arrivava ad una banda passante di ben 1 TB/s, mentre la memoria abbinata sarebbe stata quella di tipo GDDR5 con ampiezza di BUS a 1024 bit; Intel infatti ha sviluppato anche un nuovo tipo di BUS a 1024 bit di tipo "circolare" (conosciuto anche come "BUS ring") e utilizzato anche nelle architetture video sviluppate da ATI Technologies, che sarebbe stato anche bidirezionale (con un'ampiezza di 512 bit in ogni direzione), in modo da eliminare i colli di bottiglia nella comunicazione tra i vari core, e tra i core e la memoria. Tutte queste caratteristiche avrebbero probabilmente portato il consumo massimo delle soluzioni Larrabee a circa 300 W.
Intel non ha mai chiarito se le soluzioni Larrabee discendessero dal gruppo di progetti Terascale, assieme quindi al processore a 80 core mostrato per la prima volta ad aprile 2007 (che era però solo un prototipo di studio e non un futuro prodotto commerciale), ma la cosa non è del tutto escludibile a priori dato appunto l'elevato numero di core.

### La rinascita delle istruzioni MMX

Le istruzioni MMX furono introdotte da Intel nella seconda metà degli anni novanta con il processore Pentium MMX e da allora sono state implementate in tutte le successive CPU del produttore statunitense, sebbene siano state poi tecnicamente superate da set di istruzioni più evoluti come la famiglia SSE (con le sue evoluzioni). Le istruzioni MMX però, rispetto alle tecnologie successive, conservano una caratteristica molto importante, ovvero la semplicità di implementazione. Dato che i singoli core di Larrabee dovevano essere caratterizzati da una struttura relativamente semplice, con pipeline corte, non appare una scelta così anacronistica da parte di Intel di inserirvi una versione rivista e ottimizzata delle ormai storiche estensioni (grazie ad un'unità SIMD a 512 bit), che avrebbero contribuito ad aumentare la potenza di elaborazione in particolari ambiti di grafica multimediale e calcoli in virgola mobile.
Venne inoltre inserito anche un altro set di istruzioni SIMD, chiamato "Larrabee New Instruction" (LRBni) per poter supportare le nuove unità vettore che Intel aveva integrato in Larrabee, in grado di gestire 16 elementi in contemporanea, di tipo integer, single-precision floating point e double precision floating point.

## Primi prototipi di Larrabee

Ad aprile 2009 venne mostrato il primo wafer contenente i primi prototipi che sono poi stati messi a disposizione degli sviluppatori di software, in modo che questi potessero iniziare ad approfondire la nuova architettura e ottimizzare i propri prodotti per le nuove soluzioni, mentre il settembre successivo venne mostrato anche una demo funzionante, ma che comunque non riuscì a sollevare troppi clamori da parte degli osservatori, dato che le prestazioni erano solo di medio livello. Ai tempi le due prime versioni commerciali di GPU Larrabee erano attese per la fine del 2010, realizzate mediante l'ormai collaudato processo produttivo a 45 nm, e integrare rispettivamente 32 e 24 core, sebbene già a metà del 2008 Intel avesse annunciato anche la possibilità di varie altre versioni da 4 fino a 24 core, a seconda della fascia di mercato. Era prevista addirittura una versione dotata di 48 core disponibile sui mercati nel corso del 2011, resa probabilmente possibile dal nuovo processo produttivo a 32 nm.
In questa occasione, Intel non si sbilanciò a fornire il numero di transistor di ciascun processore Larrabee o la sua dimensione fisica, ma le stime indicavano la sua superficie come compresa tra i 600 e 700 mm² per un totale di circa 1,6/1,7 miliardi di transistor. A titolo di confronto, la GPU nVidia G200 (alla base delle schede della serie GeForce 200) era formata da 1,4 miliardi di transistor ma a fronte dell'utilizzo del processo produttivo a 65 nm occupava una superficie di 576 mm²; per quanto riguardava il concorrente modello sviluppato da ATI, RV770, invece si parlava di 950 milioni di transistor che grazie al processo produttivo a 55 nm occupavano una superficie di "soli" 270 mm². È evidente come una tale dimensione fisica per Larrabee comportasse diversi problemi di resa produttiva e proprio per questo risultò subito evidente che forse Intel potesse decidere di ritardare il lancio in modo da potersi avvalere direttamente del nuovo processo produttivo a 32 nm.

## Possibili campi di applicazione

Emerse subito chiaramente come per un prodotto talmente innovativo nella propria concezione intrinseca e ancora lontano nel tempo, fosse difficile prevedere con certezza i possibili campi di impiego di Larrabee.
Inizialmente Intel aveva dichiarato l'intenzione di proporre Larrabee esclusivamente nel settore del calcolo scientifico in generale, e quindi poi anche di tutti i settori da esso derivati, come per esempio l'analisi finanziaria e la simulazione fisica dei processi reali, insomma quei campi in cui viene richiesta un'elaborazione di tipo parallelo. Questo tipo di elaborazioni viene spesso indicato come GPGPU, General Purpose GPU, che prevedono l'utilizzo delle GPU per l'esecuzione di calcoli paralleli particolarmente complessi, che sfruttano proprio le peculiarità architetturali delle GPU che in queste elaborazioni risultano essere molto più efficienti delle tradizionali CPU. A confermare tale scenario d'uso per Larrabee vi fu, a novembre 2007, l'acquisizione da parte di Intel della società Neoptica che era da sempre impegnata nello sviluppo di applicazioni capaci di sfruttare non solo la CPU, ma anche la potenza messa a disposizione da un chip grafico.

### Videogiochi con Larrabee? Prima no, poi... probabilmente!

Inizialmente non era previsto che l'architettura da GPU di Larrabee potesse servire ad Intel a entrare nel mercato delle schede grafiche discrete, come ipotizzato negli ultimi anni da diversi opinionisti anche in seguito all'acquisizione di ATI Technologies da parte della rivale storica di Intel, AMD. D'altra parte, sebbene sia stata Intel stessa a paragonare Larrabee ad una sorta di GPU, la struttura a 32 core elementari omogenei risulta comunque molto differente da quella delle comuni schede video di ATI e NVidia, nelle cui GPU non è semplice distinguere diversi "core", ma anzi si parla di un unico core con numerose pipeline di rendering distinte per i vertex shader e pixel shader (fino alle architetture di settima generazione) e poi addirittura unificate con le architetture sviluppate a partire dalla ottava generazione.
In Larrabee quindi, era prevista la totale assenza di qualsiasi circuiteria specifica per la gestione della grafica raster, come avveniva invece regolarmente per le soluzioni GPU di NVidia e ATI. Per poter comunque compiere elaborazioni anche in questo ambito, Larrabee avrebbe convertito gli elementi in grafica raster in istruzioni vettoriali. Dovendo operare prima una conversione, è chiaro come questo approccio non potesse essere paragonato, per efficienza, a quello utilizzato dalle GPU "ordinarie" ma apportava un vantaggio nel momento in cui la CPU avrebbe dovuto elaborare grafica di tipo Ray tracing (si tratta di una tecnica in cui l'interazione della luce sulle superfici viene calcolata simulando la traiettoria dei raggi di luce dalla sorgente agli oggetti della scena). La contrapposizione tra "rasterizzazione" e tecniche di "Ray tracing" è un tema che è sempre stato molto dibattuto ed è ormai opinione condivisa che entrambe rappresentino soluzioni differenti, con punti di forza e di debolezza, per le esigenze della rappresentazione 3D.
Proprio in riferimento alla differenza di architettura e al diverso approccio all'elaborazione grafica, Intel affermò che era inutile paragonare Larrabee alle altre soluzioni grafiche: il progetto infatti era concettualmente molto diverso rispetto alle tradizionali GPU adattate ai calcoli "general purpose" da NVidia e ATI.
A settembre 2007 però, nuove rivelazioni di Intel lasciarono intravedere la possibilità che Larrabee potesse in futuro essere utilizzato anche come scheda aggiuntiva PCI Express (quasi certamente PCI Express 2.0), molto simile ad una scheda grafica discreta, forse dedicata alla gestione della fisica nei videogiochi (si tratta di un'applicazione delle schede grafiche già annunciata anche da ATI e NVidia), dato che nello stesso mese Intel acquisì Havok, azienda sviluppatrice di motori "fisici" utilizzati nei videogiochi di ultima generazione. L'utilizzo come scheda grafica sembrava abbastanza logica, anche in considerazione del fatto che essendo core di tipo x86, come accennato sopra, sarebbe stato relativamente semplice per gli sviluppatori di videogiochi essere in grado di estendere il supporto dei propri prodotti all'architettura Larrabee che per competere efficacemente con le soluzioni concorrenti di quella data avrebbe dovuto offrire supporto alle DirectX 11.
A rafforzare tale cambio di posizione, a maggio 2008 Intel annunciò anche lo sviluppo di una tecnologia multi-GPU da abbinare a Larrabee analoga, almeno nelle finalità, a quella già utilizzate da tempo dagli altri produttori di schede video, vale a dire lo SLI di NVidia e il CrossFire di ATI. La soluzione Intel avrebbe probabilmente consentito l'utilizzo di 4 schede video contemporaneamente in parallelo.

## Le prestazioni di un processore Larrabee a confronto con gli altri progetti Intel

Il potenziale delle GPU per l'esecuzione di calcoli in virgola mobile risulta immediatamente evidente nel momento in cui si mettono a confronto le loro prestazioni con quelle delle normali CPU.
Nel tempo si sono succedute diverse dichiarazioni da parte dei vari produttori di hardware, in merito alle prestazioni dei propri prodotti; di seguito un breve riassunto di tali dichiarazioni che lasciano facilmente comprendere le potenzialità di ogni singola soluzione.
Nel campo delle schede video di settima generazione, secondo ATI, la scheda video Radeon X1950 XTX era in grado di raggiungere i 375 GigaFLOPS e, se usata in coppia attraverso la tecnologia CrossFire, arrivava a ben 750 GigaFLOPS, mentre la scheda di NVidia, GeForce 7950 GX2, che era direttamente una scheda a doppia GPU, raggiungeva i 384 GFlops, mentre il processore fisico di Ageia forniva una potenza di 96 GigaFLOPS. Una tradizionale CPU Intel invece, ha una potenza elaborativa nettamente inferiore: un Pentium 4 a 3 GHz, raggiungeva i 6 GigaFLOPS, il primo processore Xeon DP basato su architettura "Core", ovvero il modello 51xx, basato sul core Woodcrest, era attestato a 24 GigaFLOPS, mentre un sistema Itanium 2 con 4 processori dual core Montecito arrivava a 45 GigaFLOPS.
Confrontando i dati appena citati, si capisce come una coppia di schede video ATI, fosse in grado di offrire, almeno in linea teorica, la stessa potenza di ben 31 Xeon Woodcrest. Rimane comunque necessario ricordare che i dati forniti sono relativi alle GPU di settima generazione, mentre poi sono state messe in commercio architetture anche di ottava e nona generazione, e che ad ogni cambio di generazione la potenza media delle GPU tende a raddoppiare, è evidente come il potenziale futuro di questi progetti sia molto attraente per poter aumentare velocemente le prestazioni sui calcoli in virgola mobile, ed ecco perché Intel puntava su un'architettura di questo tipo per raggiungere il TeraFLOPS; anzi, a luglio 2008 Intel dichiarò di aver l'intenzione di raggiungere addirittura i due TeraFLOPS con Larrabee (ovviamente con codice che fosse in grado di saturare la capacità di elaborazione di ogni core al massimo delle proprie potenzialità). Volendo fare un confronto con le architetture di nona generazione messe in commercio a metà 2008 da parte di entrambi i produttori, le soluzioni NVidia GeForce GTX 280 sfioravano una potenza di elaborazione massima teorica di 1 TeraFLOPS, mentre per le soluzioni ATI Radeon HD 4870 si arrivava fino a un valore di 1,2 TFlops, poi raddoppiato nel momento in cui AMD presentò le proprie soluzioni con 2 GPU Radeon HD 4870 affiancate e collegate tra di loro sfruttando tecnologia CrossFireX, e le successive generazioni.
Nuove informazioni del giugno 2009 asserivano che la prima generazione di GPU Larrabee avrebbe avuto una potenza elaborativa pari alla scheda nVidia GeForce GTX 285 e quindi al momento del lancio essa si sarebbe posizionata nella fascia media del mercato, dato che la nuova generazione di schede nVidia è arrivata già alla fine del 2009.
Infine, a dicembre 2009, Intel mostrò un prototipo nell'esecuzione del test SGEMM, pensato per l'ambito HPC, che aveva solo la metà dei core abilitati e raggiungeva i 417 GigaFLOPS, mentre attivando tutti i core si raggiungevano gli 825 GFlops e, aumentando nel contempo il clock di funzionamento, si arrivò fino a 1066 GigaFLOPS. Secondo Intel, si trattava di prestazioni triple rispetto a quanto possibile con le schede nNidia Tesla C1060 (GT200) (370 GigaFLOPS) e AMD FireStream 9270 (300 GFlop).

### Intel: vantaggi dell'architettura di Larrabee rispetto alle tradizionali GPU

Secondo Intel il fatto che i core di Larrabee fossero basati sulla tradizionale architettura x86 avrebbe offerto ai programmatori un enorme vantaggio nella scrittura delle proprie applicazioni. A differenza dei progetti GPGPU di NVidia e ATI, rispettivamente Tesla e FireStream, il programmatore non sarebbe stato costretto ad apprendere i linguaggi CUDA e CTM per far dialogare le proprie applicazioni con le architetture video, ma avrebbe potuto riutilizzare il tradizionale codice x86 sviluppato per i comuni processori. Secondo questa idea, teoricamente esistevao già centinaia di migliaia di sviluppatori che avrebbero potuto scrivere codice per Larrabee, sebbene fosse fondamentale per il futuro educare la nuova generazione di sviluppatori a sfruttare adeguatamente il potenziale di tale architettura.
Un altro beneficio della nuova architettura sottolineato da Intel durante un evento alla stampa svoltosi nel mese di agosto 2008 risiedeva nell'estrema semplicità di aggiornamento per quanto riguardava le funzionalità aggiuntive. A differenza delle tradizionali architetture video infatti, le funzionalità tipiche richieste dalle API come DirectX non erano integrate a livello hardware ma software, con la conseguenza che un aggiornamento driver avrebbe fornito le nuove funzionalità a tutto il parco prodotti Larrabee già in circolazione. Intel fece l'esempio dei cosiddetti Pixel Shader 5.0 che sarebbero stati supportati da Larrabee grazie ad un aggiornamento software mentre gli utenti dotati di architetture video tradizionali, per sfruttare tali funzionalità avrebbero dovuto procedere al cambio del proprio hardware.

## Apple e Sony interessate ai prodotti Larrabee

Nei primi giorni di agosto 2008, Apple annunciò il proprio interesse verso questo nuovo tipo di architettura video per i propri prodotti futuri. Secondo Apple infatti il nuovo progetto di casa Intel (con cui l'azienda collabora dal 2006 per la fornitura di microprocessori), grazie alla propria struttura "ibrida" a metà strada tra una tradizionale CPU e una GPU avrebbe potuto offrire ottimi risultati quando abbinata ad alcune tecnologie software in quel momento sviluppate presso i propri laboratori e che vennero poi introdotte nell'ultimo sistema operativo della casa conosciuto come OS X Snow Leopard, come Grand Central Dispatch e OpenCL.
Sony invece si mostrò interessata ai prodotti Larrabee a 48 core (presumibilmente realizzati a 32 nm) come possibile soluzione grafica della nuova versione della sua console di gioco, conosciuta come PlayStation 4 e attesa ben oltre il 2010. I vantaggi di questa scelta sarebbero potuti essere diversi: minor consumo energetico, miglior dissipazione del calore, migliore qualità video e maggiore potenza nei calcoli.

## La tecnologia di Larrabee anche in una CPU in un possibile futuro

Intel non è mai stata completamente chiara in merito, ma lasciò trapelare di avere l'intenzione di integrare la tecnologia alla base del progetto Larrabee, direttamente all'interno delle sue CPU, in particolare quelle basate sulla futura architettura Haswell, successiva alla Sandy Bridge (o meglio della sua evoluzione Ivy Bridge), a sua volta successiva alla Nehalem, prevista sui mercati alla fine del 2012 e basata sul processo produttivo a 22 nm; in questo caso tale tecnologia sarebbe andato a costituire il comparto grafico integrato delle future CPU.
L'accantonamento del progetto però, ha quasi certamente fatto sfumare tale possibilità e probabilmente Haswell sarà dotato di un comparto grafico sviluppato su un approccio decisamente più tradizionale.

## Abbandono del progetto

Il 26 maggio 2010 Intel ha annunciato di aver sospeso lo sviluppo del progetto Larrabee in quanto non sono stati raggiunti gli obiettivi prestazionali e di efficienza che il produttore contava di raggiungere. Di seguito un estratto di quanto affermato direttamente da Intel per motivare tale decisione:
«Non è possibile cercare di fare tutte le funzioni via software, data la complessità. Per raggiungere questo obiettivo abbiamo incontrato anche dei problemi nelle prestazioni per watt»
(Tom Piazza, direttore delle architetture grafiche Intel)
Intel si concentrerà quindi, almeno per il momento, nello sviluppo dei comparti grafici integrati che a partire dai primi processori basati su architettura Westmere verranno progressivamente spostati dal northbridge del chipset alla CPU stessa. Secondo Intel la potenza elaborativa di tali soluzioni dovrebbe raddoppiare a ogni successiva generazione di CPU, vale a dire circa ogni anno.
Non è comunque da escludere che Intel, dopo aver investito tanto in un progetto simile, non decida di riprendere lo sviluppo di un prodotto analogo fra qualche anno. Sembra infatti che l'azienda abbia l'intenzione di utilizzare tale primo progetto come riferimento per lo sviluppo interno e stia anche iniziando l'analisi di fattibilità di un progetto ispirato a Larrabee e che potrebbe vedere la luce nel 2012. Tale progetto, tenendo conto delle problematiche incontrate con l'approccio seguito da Larrabee, potrebbe essere invece basato su un'architettura "converged pipeline" profondamente rivista.

## Altri processori grafici sviluppati in passato da Intel

Larrabee costituiva certamente un progetto altamente innovativo, ma non è stato il primo prodotto sviluppato da Intel per la gestione della grafica.
Alla fine degli anni novanta, una sussidiaria di Intel, Real3D creò 2 acceleratori grafici disponibili su slot AGP e PCI, conosciuti con il nome di i740 (Intel 740). In realtà si tratta di un prodotto che ha avuto un successo abbastanza modesto e infatti successivamente Intel si è limitata a sviluppare sottocomparti grafici da integrare nei propri chipset (o direttamente nelle CPU a partire da alcuni modelli basati su architettura Westmere) sotto il nome di "Graphics Media Accelerator" (GMA). Si tratta di soluzioni che grazie ai loro ridotti consumi sono ideali per l'integrazione in sistemi da ufficio e Notebook ma che non sono in grado di offrire un supporto adeguato per l'esecuzione di applicazioni esigenti come i videogiochi; proprio un ambito in cui Larrabee avrebbe dovuto, nelle intenzioni di Intel, segnare il ritorno dell'azienda in grande stile.