Applicazioni: Adobe Photoshop CS6

Test - Le API OpenCL possono rivelarsi uno strumento potente per rendere più veloce l'editing fotografico. Lo standard aperto sostenuto da AMD promette grandi passi avanti.

Avatar di Tom's Hardware

a cura di Tom's Hardware

Applicazioni: Adobe Photoshop CS6

Una definizione comune di calcolo eterogeneo è l'integrazione di capacità grafiche sullo stesso die della CPU (central processing unit). Adobe non la vede esattamente allo stesso modo: l'azienda ha una visione più sistematica, che cerca di trovare tutte le possibilità di sfruttare le risorse di calcolo, e poi scoprire quali aree del sistema sono migliori per fornirle. Secondo Adobe il calcolo eterogeneo è "un set d'istruzioni multiple e tipi di codice nello stesso computer. È l'uso di tutte quelle risorse per dare agli utenti un'esperienza migliore".

Lo scopo di Adobe è sempre stato l'immediatezza: idealmente i filtri dovrebbero applicarsi in tempo reale, e il sistema essere capace di gestire con facilità 30 layer su un'immagine da 30 megapixel. Tradizionalmente avremmo contato sui progressi della CPU per rendere questo sogno una realtà, ma come abbiamo visto ultimamente sia da AMD sia da Intel, aspettarsi grandi balzi in avanti nelle prestazioni del processore non è plausibile. Oggi il progresso è facilitato dall'integrazione e l'uso di molti sottosistemi diversi (tra cui la GPU), più veloci, paralleli e così via.

Clicca per ingrandire

Photoshop CS6 introduce la compatibilità OpenCL negli strumenti filtro Blur Gallery. Allo stesso tempo continua a usare OpenGL per accelerare tante altre funzioni, incluse Liquify, adaptive wide angle, transform, warp, puppet warp, lighting effects, e quasi tutte quelle 3D (shadows, vanishing point, sketch rendering, etc.), eccetto il ray tracer. Inoltre OpenGL è dietro al filtro "pittura a olio".

Adobe è una grande azienda e Photoshop una delle applicazioni più celebri del mondo, ma il team che lo sviluppa è sorprendentemente piccolo: meno di sessanta tra sviluppatori e altri ruoli, come il controllo qualità. Secondo Adobe "dedicare più persone a un problema non sempre rende il software migliore", e dato il piccolo team, è doppiamente notevole che Adobe sia passata da uno sviluppo di 18/24 mesi a un anno da una versione all'altra.

Adobe ci ha fornito due script per testare le prestazioni OpenCL e OpenGL. Nel primo caso la scelta è obbligata: Blur Gallery, l'unica famiglia di filtri accelerati da OpenCL. Abbiamo eseguito quattro sessioni di un effetto blur generale applicato a un file PSD da 60.2 MB e 5615x3744 pixel. I test erano RGB o CMYK, e veniva applicato un valore blur di 25 o 300, per un totale di quattro test per gruppo blur. Lo script ha eseguito l'effetto sette volte e restituito un file CSV, dal quale abbiamo ricavato un tempo medio per completare l'effetto filtro.

Clicca per ingrandire

Adobe ci ha fornito uno script molto simile per il suo filtro Liquify basato su OpenGL, che non aveva parametri variabili. Da notare che abbiamo controllato l'accelerazione tramite GPU da Preferenze > Prestazioni > Impostazioni scheda grafica. In quest'area, rimuovere il segno di spunta sul box Use Graphics Processor box disabiliterà l'intera accelerazione OpenGL e OpenCL, che si è rivelata l'unico modo per avere risultati accurati da test non-accelerati. Il tasto Impostazioni Avanzate aprirà una finestra di dialogo da dove attivare OpenGL e OpenCL: apparentemente, rimuovere il segno di spunta da entrambi lascerà OpenGL ancora abilitato.