Calcolo parallelo e GPGPU, la genesi del super-PC tra librerie universali e piattaforme proprietarie

29 Dicembre 2008 · Archiviato in Approfondimenti, Hardware & Periferiche 

Approfondimenti - Una lente impietosa puntata sui temi caldi, retrospettive appassionate e dettagliate, riflessioni oltre le apparenze Lungi dal rallentare a causa della crisi economica mondiale, l’evoluzione tecnologica dei PC (e in particolare delle periferiche dedicate al videogaming) continua a macinare record e Gigaflop, aprendo scenari di utilizzo che appena pochi anni fa erano di esclusiva pertinenza dei super-computer. Tali scenari si scontrano attualmente con lo sviluppo divergente di standard e API in competizione tra loro, nate dal desiderio di supremazia commerciale o dalla necessità di mettersi d’accordo su una piattaforma di computing condivisa.

Lo scenario delle periferiche grafiche discrete si è fatto estremamente complesso in un lasso di tempo relativamente ridotto, e quelle che già da anni non possono più essere considerate delle semplici “schede acceleratrici” per videogame 3D hanno assunto una rilevanza ancora maggiore da quando Intel ha deciso di combattere sullo stesso terreno di NVIDIA e AMD-ATI contrastando i familiari brand GeForce e Radeon con la tecnologia futuribile di Larrabee.

Accanto all’aumento esponenziale della potenza bruta, le moderne GPU hanno adottato un design in grado di esaltarne le capacità in quegli ambiti in cui è necessario macinare algoritmi matematici complessi, un design che prevede un gran numero di unità elaborative operanti in parallelo. La funzionalità e la versatilità dai tanti stream processor delle moderne GeForce o Radeon permette ai rispettivi produttori di vendere le suddette schede come general purpose graphics processing unit (GPGPU), ovvero periferiche in grado di operare in ambiti non necessariamente legati alla grafica 3D in tempo reale (nei videogame).

Per sfruttare un simile hardware in contesti dominati delle CPU tradizionali è ovviamente necessario avere a disposizione strumenti di sviluppo software adeguati, tool come il framework CUDA (Compute Unified Device Architecture) con cui NVIDIA ha trasformato una qualsiasi GeForce (dalla serie 8 in poi) in una periferica GPGPU relativamente facile da programmare con del comune codice scritto in linguaggio C.

Perché il settore del computing parallelo potenziato dalle GPGPU esploda è però necessario un approccio meno esclusivo di CUDA e della tecnologia concorrente di AMD-ATI Stream, uno standard che agli inizi di dicembre ha preso vita con il rilascio delle specifiche 1.0 di OpenCL. Open Computing Language è “il primo standard aperto e libero da royalty per la programmazione general-purpose di sistemi eterogenei“, un ambiente di programmazione uniforme in grado di trarre vantaggio dalla presenza contemporanea su PC, server, dispositivi portatili e console videoludiche di CPU multi-core, GPU, processori DSP e quant’altro.

OpenCL

Creando un’interfaccia di programmazione efficiente e quanto più vicina all’hardware è possibile“, si legge sulla homepage dello standard, “OpenCL darà vita allo strato fondativo di un ecosistema di tool, middleware e applicazioni per il computing parallelo agnostico rispetto a ogni piattaforma“. OpenCL nasce come standard industriale supportato da un gran numero di società dell’IT incluse NVIDIA, AMD, Intel, IBM, Nokia, Samsung, Broadcom, Texas Instruments e altre ancora.

In relazione al settore specifico delle GPGPU, OpenCL da’ finalmente la possibilità a utenti e aziende di investire su uno sviluppo reale, nel corso dei prossimi mesi e anni, di scenari in cui la potenza delle GPU verrà sfruttata al massimo delle sue possibilità senza ovviamente escludere la programmazione di videogame estremamente elaborati da un punto di vista grafico e tecnico. Sia AMD che NVIDIA si sono affrettate a garantire il supporto di OpenCL sulle schede Radeon e GeForce, e NVIDIA ha in particolare specificato che intende implementare il nuovo standard aperto sulla base della sua architettura proprietaria CUDA.

Manju Hegde, general manager della divisione CUDA di NVIDIA, ha rivelato che ora la terminologia ufficiale definisce “CUDA” come la tecnologia complessiva che permette alle schede GeForce di elaborare calcoli general-purpose, mentre con “C for CUDA” si riferisce al linguaggio di programmazione inizialmente noto come “CUDA”. La piattaforma CUDA è in grado di far girare indistintamente sia software OpenCL che C for CUDA, dice Hedge, e la differenza tra i due tool è che il primo può essere utilizzato programmando in ogni dettaglio lo sfruttamento dell’hardware mentre il secondo da’ accesso anche a uno stile di programmazione di alto livello con un layer di astrazione che “è lo stesso del C“.

Architettura CUDA

NVIDIA, il maggior produttore di GPU discrete per PC, ha insomma deciso di seguire un doppio binario per le applicazioni GPGPU garantendo supporto a OpenCL ma portando contemporaneamente avanti il lavoro sin qui fatto con (C for) CUDA. A essere invece convinta della morte certa degli standard proprietari è AMD, che per bocca del Director of Technical Marketing Godfrey Cheng risponde per le rime al “successo” di NVIDIA e della sua tecnologia per la fisica 3D PhysX che si sta facendo largo tra i produttori di videogame quali Electronic Arts e la software house che ha sviluppato Mirror’s Edge.

Cheng sostiene che Havok, la tecnologia middleware concorrente di PhysX acquisita da Intel che dovrebbe nei prossimi mesi essere supportata dalle GPU AMD, è superiore a quella proprietaria di NVIDIA implementata come estensione della piattaforma CUDA ed è già stata utilizzata in oltre 150 giochi dal 2000 a oggi, e che soprattutto poco potranno fare gli accordi esclusivi tra NVIDIA e i publisher per favorire l’adozione di PhysX ora che è disponibile un framework universale e aperto come OpenCL.

Mentre si avvia la competizione nel nuovo settore del computing a base GPGPU, in attesa di Intel e Larrabee NVIDIA e AMD-ATI continuano a disputarsi la leadership prestazionale pura con la grafica 3D applicata ai videogame. La scheda ATI Radeon HD 4870 X2, basata su architettura RV770 e montante due GPU in parallelo sulla stessa PCB dovrà entro breve cedere lo scettro a GeForce GTX 295, la nuova regina della velocità (architettura GT200, 2 GPU GTX 280 con relativi PCB accorpati in un unico package, 240 stream processor per core e 1.792 Megabyte di RAM totali) secondo la preview di PC Perspective che sarà disponibile a partire dal 2009 al modico prezzo di 500 dollari circa.

GeForce GTX 295

Condividi questo articolo!
  • OKNOtizie
  • Facebook
  • Diggita
  • ZicZac
  • Wikio Italia
  • StumbleUpon
  • Technorati

Articoli correlati

Commenti

Lascia una risposta