AMD Firestream è stata una tecnologia sviluppata da ATI, creata per sfruttare lo stream processing/GPGPU (General Purpose computation using GPU) per calcoli di grandi dimensioni su numeri in virgola mobile, utili in numerose applicazioni come la High Performance Computing (HPC), di natura scientifica e finanziaria.

Questa tecnologia era precedentemente un marchio sia di ATI che di AMD, e fu chiamata rispettivamente ATI FireStream e AMD Stream Processor. Una scheda AMD Firestream poteva essere inoltre usata come coprocessore capace di eseguire operazioni in virgola mobile per diminuire il carico di lavoro della CPU, che era anche parte dell'iniziativa Torrenza, prodotta sempre dalla AMD.

La produzione della linea FireStream è stata interrotta nel 2012, quando le attività di lavoro GPGPU sono state completamente integrate nella linea AMD FirePro.

Descrizione Fin dalla messa a disposizione della precedente generazione di GPU Radeon R520 e GeForce 7, l'utilizzazione dell'architettura Shader programmabile per i grandi numeri in virgola mobile venne seguita con attenzione dai gruppi commerciali e accademici, principalmente per la sua abilità di processare dati, oltre al loro uso originale di rendering di effetti visuali. Grazie al loro potenziale, molte risorse vennero investite nello sviluppo di prodotti GPGPU - responsabili di calcoli generali di formule matematiche - per il processamento di pesanti calcoli che prima erano eseguiti nei server mainstream, in CPU desktop, e in coprocessori specializzati per numeri in virgola mobile. Le GPGPU sono state ritenute capaci di poter avere in futuro performance 10 volte superiori a parità di input rispetto a software eseguiti solo dalla CPU.

GPGPU simili sono apparse anche nel 2000. BionicFX sperimentò come processare dati audio con una GeForce 6008, annunciando il framework Audio Video EXchange (AVEX), con performance simili a quelle ATI. Un altro esempio è il Folding@Home, un programma di ricerca dalla Stanford University. Questo è stato il primo software a usare la GPU Radeon R580 e altre GPU ATI, equipaggiate con una speciale versione beta dei driver Catalyst (versione 6.5), e a eseguire operazioni computazionali slegate dalla grafica. Dal maggio 2006, le GPU sono state usate per accelerare la simulazione del ripiegamento di proteine per studi sulle malattie relative alle proteine. In quel periodo, la ATI fu poco attiva nel pianificare sviluppi futuri.

Il 15 novembre 2006, completata l'acquisizione della ATI, AMD annunciò ufficialmente la ricostruzione del marchio e annunciò la AMD Stream Processor (originariamente nota come ATI FireStream), divenendo così la prima industria a fornire soluzioni hardware di quel tipo. Basato sulla Radeon X1900, la Stream Processor di AMD era una scheda specializzata che implementava la GPU R580. Tuttavia venne utilizzata in prevalenza per calcoli complessi di numeri in virgola mobile usati in campo scientifico e finanziario, invece che come acceleratore grafico 3D. AMD sostenne che quel processore era 8 volte più performante nei calcoli in virgola mobile rispetto alla tradizionale elaborazione grafica.

In effetti, ATI aveva profuso particolare attenzione nella ricerca e sviluppo (R&S) di prodotti GPGPU prima di essere acquisita da AMD, e annunciò l'adozione del progetto stream processing/GPGPU in linea con le GPU del 2006, nominate Radeon R580.

Il marchio fu dapprima rinominato come AMD FireStream con la seconda generazione di processori Stream (basati sul processo a 55 nm), messi in commercio in data 8 novembre 2007. Piani futuri includevano lo sviluppo di un modulo MXM, progettato per applicazioni embedded e future generazioni di prodotti dalla seconda metà del 2008.

Hardware La serie Radeon sono processori vettoriali a 32 bit in singola precisione. Grazie all'elevato parallelismo dei processori vettoriali, questi hanno avuto un elevato impatto in applicazioni di data processing. Il progetto di massa Folding@Home ha riportato incrementi prestazionali da 20 a 40 volte superiori usando una scheda grafica basata su chipset R580.

La Radeon R580 include un totale di 48 pixel e vertex shaders, che diventano processori paralleli nei calcoli in virgola mobile. La ATI FireStream utilizza un'interfaccia PCI Express x16 per ottenere una banda di 8 GiB/s. La scheda è equipaggiata con 1 GB di memoria GDDR3 mentre la scheda viaggia ad una frequenza di 600 MHz di core e 1.3 GHz di memoria. La scheda ha l'abilità di eseguire 512 threads simultaneamente (multitreading simultaneo, SMT), con un TDP di 165 Watt. La differenza principale tra il FireStream e una scheda grafica Radeon ordinaria è che il processore stream difetta di connettori video.

L'hardware Stream Processing utilizza un'interfaccia chiamata THIN (Thin Hardware Interface), oppure Close to Metal (CTM, chiamato precedentemente Data Parallel Virtual Machine), per ampliare l'architettura GPU in addizione al set di istruzioni native utilizzate dai programmatori. Queste permettono di ottenere il diretto controllo dei processori Stream/ALU e dei Controller di memoria, e permettono di bypassare le API 3D.

La linea di sviluppo AMD prevede un aggiornamento alle ultime architetture GPU (Radeon R600) con la commercializzazione dell'ultima generazione di schede video FireGL (7 agosto 2007), che sono dotate di processori stream. L'architettura è stata concepita con uno processo produttivo a 80 nm, come la R580, con maggiore numero di processori paralleli e unità stream processing. In aggiunta, la memoria GDDR4 è stata incrementata a 2 GB, con un massimo di 128 GiB/s di banda. I prodotti FireGL basati sul core R600 XTX (FireGL V8600 e FireGL V8650) consumano molto di più rispetto a una ATI Firestream di prima generazione, con un TPD stimato rispettivamente sotto i 225 W e oltre i 255 W.

La seconda generazione, la AMD FIreStream 9170, è basata su chipset RV670 e realizzata con processo produttivo a 55 nm. Le sue caratteristiche principali sono di essere la prima GPU a supportare calcoli con numeri a doppia precisione, DMA asincrono (che permette ai processori e alla memoria di scambiare dati senza l'intervento della CPU), funzionalità di memory export, e consumi ridotti (meno di 150 W con 2 GB GDDR3 in un'interfaccia PCI-E 2.0, con 16 GiB/s di banda).

L'ultima generazione della linea AMD FireStream sono la FireStream 9250 e la FireStream 9270. La AMD FireStream 9250, annunciata il 16 giugno 2008, è basata su chipset RV770 ed è realizzata con processo produttivo a 55 nm. Le caratteristiche tecniche riportano 1 TFLOPS di potenza con operazioni numeriche a singola precisione, 1 GB di GDDR3 e un dissipatore a slot singolo. Mentre la sua variante, la AMD FireStream 9270, annunciata il 13 novembre 2008, basata su chipset RV770 con un altissimo numero di operazioni a virgola mobile con picco di 1.2 TFLOPS, monta 2 GB di GDDR5 e un dissipatore a doppio slot.

Linea di sviluppo AMD Le specifiche hardware degli stream processor distribuiti da AMD (e precedentemente da ATI) sono riassunte di seguito:

GenerazioneModelloScheda videoequivalenteCore GPUThread maxCoreMemoria(Operazioni in virgola mobile al secondo)TDP (Watts)AltroShaders(SPUs) NB1Clock(MHz)Banda (GiB/s)TipoLarghezza bus(bit)Ammontare(MiB)Clock(MHz)FP32 GFLOPsFP64 GFLOPs1st NB2580/2URadeon X1900 XTXR5805124860083.2GDDR32561024650375N/A≤165N/AN/A NB2FireGL V8650R600?64(320)743128.0GDDR451210241000475N/A≤225prima scheda FireGLcon supporto stream processingFireGL V86002048≤2552nd NB29170Radeon HD 3870RV670?64(320)80051.2GDDR32562048800512102.4 NB3≤105supporto FPdoppia precisione3rd NB29250Radeon HD 4850RV77016,384 160(800)62563.5GDDR325610249931000200 NB3≤150distribuito il16 giugno, 20089270Radeon HD 4870160(800)750108.8GDDR525620488501200240<160distribuito il13 novembre, 2008

Note:

NB1: Il numero di Unità Stream Processing può essere applicato solo a un hardware compatibile con DirectX 10, che contiene shader unificati (implementati in prodotti basati su Radeon R600 e architetture maggiori, dove vi sono 5 ALU in ogni shader, quattro MADD/ADD/MUL/ADD intero/dot product e uno per transcendental functions), creando 320 Unità Stream Processing in 64 shader, appunto, unificati. Inoltre notare che l'architettura è implementato in maniera differente rispetto alla controparte Nvidia, nei prodotti Tesla. La SP nelle implementazioni Nvidia ha un'alta frequenza di clock (2,35x o maggiore) rispetto alle altre parti del core, mentre le SPU Ati hanno la stessa frequenza del core.

NB2: La prima generazione di prodotti originariamente utilizzava il brand ATI FireStream, ma successivamente fu rinominato AMD Stream Processor dopo l'acquisizione della ATI da parte di AMD e la ricostruzione del brand. La scheda AMD FireStream 9170 basata su chipset RV670 è stata messa in commercio senza avere delle schede precedenti basate su R600 poiché le schede messe in commercio precedentemente sotto la vecchia linea di sviluppo ATI (inoltre prototipi di schede con configurazioni simili alle FireGL V8650 furono pubblicamente mostrate senza però output a video). A partire dalla serie 2007 delle FireGL, le schede high-end e ultra high-end hanno ottenuto il supporto allo stream processing.

NB3: Il tempo di esecuzione per operazioni in precisione singola è teoricamente un quinto rispetto a quello rappresentato.

Software Una delle prime ditte a supportare FireStream è stata PeakStream (acquisita da Google nel 2007, in giugno), che è stata la prima a realizzare un'aperta versione beta del software supportando CTM e FireStream oltre a x86 e Cell (Cell Broadband Engine). FireStream è stata acclamata per essere 20 volte più veloce utilizzando una comune applicazione rispetto a una regolare CPU dopo aver eseguito il software PeakStream. RapidMind inoltre ha provveduto a realizzare un software stream processing funzionante con ATI e NVIDIA, oltre che per il processore Cell.

Software Development Kit La prima release dell'SDK (v1.0) fu pubblicata nel dicembre 2007, sotto licenza AMD EULA, per essere eseguita sotto Windows XP. Il software includeva "Brook+", una versione riveduta e corretta del linguaggio Brook prodotto dalla Stanford University, come variante di ANSI C (linguaggio C), open source e ottimizzato per stream computing. Furono incluse anche la AMD Core Math Library (ACML) e la Framewave (APL) con delle ottimizzazione per la AMD FireStream, e la libreria CODA (rinominata poi "Accelerated Video Transcoding" o AVT) per accelerazioni di codifica video. Un'altra parte importante dell'SDK, il Compute Abstraction Layer (CAL), è un layer di sviluppo software focalizzato per accessi a basso livello, attraverso l'interfaccia hardware CTM, all'architettura GPU scritto in vari linguaggi di programmazione ad alto livello.

Durante il mese di marzo 2010, AMD distribuisce la versione 2.01 dell'ATI Stream Software Development Kit, che include il supporto alle OpenCL 1.0, un linguaggio di programmazione sviluppato da Khronos Group. Il supporto alle nuove vie di utilizzo shader della futura generazione di API Microsoft chiamato DirectX 11 verrà implementato nelle release future dell'SDK Stream.

AMD APP SDK AMD Stream SDK (ATI Stream SDK) è stato sostituito da AMD APP SDK, disponibile per Microsoft Windows e Linux, a 32-bit e 64-bit. APP sta per "elaborazione parallela accelerata", e si rivolge anche Heterogeneous System Architecture (non solo GPU).

Vantaggi

Il sistema di prova AMD con 2 Dual Core Opteron e 2 GPU Radeon R600 e sistema operativo Microsoft Windows XP Professional raggiunge 1 TeraFLOPS, nei calcoli multiply-add (MADD). A confronto, un Intel Core 2 Quad Q9650 3.0 GHz raggiunge 48 GFLOPS. Tuttavia, dobbiamo chiaramente distinguere tra operazioni aritmetiche in singola e doppia precisione: l'esempio precedente utilizza operazioni in virgola mobile a precisione singola, l'ultimo rappresenta operazioni a precisione doppia.