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.