OpenCL e accelerazione hardware, post-processing video con la GPU

Test - Schede video dedicate, processori e APU: scopriamo come si comporta l'hardware AMD con l'OpenCL.

Avatar di William Van Winkle

a cura di William Van Winkle

Introduzione

Nessuno è pronto a dire che gli anni delle CPU sono finiti. Aziende come Xilinx, dopotutto, vendono ancora dispositivi a logica programmabile per specifiche applicazioni che sono molto meno integrati e hanno scopi decisamente più ridotti rispetto ai microprocessori dei computer. A volte però, maggiore semplicità equivale a costi più contenuti. È probabile che processori specializzati continueranno ad avere successo in determinati segmenti di mercato, specialmente quelli dove le prestazioni sono la preoccupazione principale. In una gamma di ambienti sempre più vasta, ci aspettiamo però che il calcolo eterogeneo - con diversi tipi di risorse integrate in un singolo dispositivo - diventerà preponderante. E al contempo questo prodotti si faranno anche più complessi in fase di produzione.

L'obiettivo finale del calcolo eterogeneo è un system-on-a-chip (SoC), al cui interno ci sono tutti (o la gran parte) dei circuiti integrati in un unico package. Molti SoC non hanno ancora la potenza per entrare nei PC desktop moderni, ma sia AMD che Intel vendono architetture che combinano core della CPU, risorse grafiche e controller di memoria. Queste Accelerated Processing Unit (APU), come le chiama AMD, offrono prestazioni pari o persino superiori ai livelli tipici delle workstation orientate alla produttività. L'aspetto più chiaro è che l'architettura dei processori viene affiancata da molte ALU tipicamente usate per accelerare la grafica 3D. Queste risorse programmabili non devono però essere necessariamente usate per i giochi. Tanti altri carichi di lavoro sono per natura davvero paralleli e farcire una APU con centinaia di core - piuttosto che solo due o quattro core x86 - apre un interessante dibattito sul potenziale dell'ottimizzazione software per i SoC altamente integrati.

In passato la grafica risiedeva all'interno del Northbridge. A causa di importanti colli di bottiglia e latenze troppo elevate, a un certo punto è semplicemente diventato troppo difficile aumentare le prestazioni usando componenti così lontani l'uno dall'altro nella piattaforma. Il risultato è che abbiamo visto migrare delle funzioni dal Northbridge alla CPU, dando vita a una serie di prodotti che non solo offrono prestazioni con i giochi decisamente migliori, ma anche capaci di occuparsi di operazioni di calcolo generico che fanno leva sulla natura ibrida dei SoC con funzioni CPU e GPU.

Per AMD questo è culminato nell'iniziativa Fusion, che è stata la motivazione per cui l'azienda ha deciso di acquistare ATI Technologies nel 2006. AMD ha visto del potenziale nell'unire le proprie CPU e la tecnologia grafica ATI in una soluzione che potesse prendere il posto della classica CPU. Intel ha sfruttato la tecnologia grafica interna, migliorandola costantemente, per giungere allo stesso fine. Il suo impegno però si è concentrato di più sui core x86 e meno sulla parte grafica.

L'inizio del 2011, a cinque anni dalla storica acquisizione, abbiamo assistito all'arrivo della prima famiglia di APU AMD delle serie E e C, prodotte a 40 nanometri. L'integrazione ha permesso ad AMD di sfornare chip con TDP di 9 e 18 watt usati per i notebook a basso consumo o se preferite netbook. Sul mercato è poi arrivata la famiglia di APU della serie A, nome in codice Llano, prodotte a 32 nanometri e in grado di posizionarsi - per prestazioni e costi - nella fascia media.

Anche se ci sono diverse specifiche in gioco, forse la maggior differenza tra i modelli elencati sotto è la GPU. La serie A8 adotta una configurazione che AMD chiama Radeon HD 6550D. Consiste di 400 stream processor. La serie A6 passa alla GPU Radeon HD 6530D e ha 320 stream processor. Infine la serie A4 usa un core Radeon HD 6410D con 160 stream processor.

In questo articolo vogliamo dare uno sguardo alle prestazioni di calcolo generale di questi chip, usando carichi di lavoro che solitamente caricano i core tradizionali della CPU e quelli programmabili indirizzati alla grafica.

In questo primo articolo di una serie di nove, mettiamo sotto il microscopio la gestione dei video in post-processing. In passato si trattava di un carico di lavoro che richiedeva molto tempo, anche con una CPU multi-core. Poiché si tratta di un carico di lavoro altamente parallelo, accelerarlo grazie a tanti core grafici è diventato un ottimo modo per aumentare la produttività e migliorare le prestazioni.

Per questi articoli ci siamo avvalsi dell'aiuto di AMD, quindi ci siamo concentrati sull'hardware dell'azienda per creare basi di confronto semplici e chiare. Come si comporta una CPU con software OpenCL? E una APU Llano? Per rispondere a queste domande abbiamo preso APU a basso costo e CPU altrettanto convenienti, accoppiandole a un paio di schede video dedicate per vedere come scalano le prestazioni su ogni configurazione.