Accelerazione via GPU per i futuri browser: WebGL e D2D

Già da un po’ di tempo, chi segue questo blog avrà sentito parlare più volte di rendering GPU: è da almeno 3 anni infatti che si è capito il potenziale in termini di calcolo dei chip delle schede grafiche, non solo in campo videoludico ma anche in campo scientifico e computazionale puro. Il 2010 è stato l’anno nel quale molti software di più largo consumo (quelli scientifici e di ricerca lo facevano già da tempo) si sono pienamente convertiti al calcolo GPU, e non si parla soltanto di sistemi operativi, ma proprio di motori di rendering, per rimanere nel tema principale di questo blog.

Browser_Engine

Tuttavia ora, anche altri ambiti che oramai si possono definire quasi “universali”, come la navigazione in internet, si stanno convertendo a questo che indubbiamente entro un paio d’anni diventerà il nuovo standard: parliamo infatti dei principali browser attualmente esistenti, e cioè Internet Explorer, Mozilla Firefox e Google Chrome. Nel primo caso, la Microsoft sta facendo un lavoro di fino con la versione 9: non solo la novità di una grande aderenza agli standard internazionali di programmazione per il web, ma anche attenzione agli sviluppatori con un blog apposito, rilascio di una platform preview gratuita al pubblico e dunque più in generale un grande interesse alla comunicazione diretta con il resto del mondo, cosa che fino ad oggi non si era quasi mai vista in modo così massiccio: come detto, dalla prossima release che sarà disponibile in beta per l’autunno ed in versione definitiva nel 2011, IE9 non solo avrà un nuovo motore di Javascript che decuplica la velocità del browser rispetto ai suoi antenati, ma avrà anche il supporto alle API D2D per il rendering HTML, che significa sfruttare la potenza della GPU per navigare alla massima velocità. Mozilla si appresta a rilasciare la versione 4 del suo browser, che non solo sarà finalmente a 64bit e si svincolerà da tutti quei lacci e lacciuoli costituiti dai plugin (che saranno relegati in un processo a parte), aumentando quindi stabilità, velocità e sicurezza, ma supporterà anch’esso le D2D. Per abilitare il supporto a webgl e D2D sulla versione 4 beta di Firefox bisogna agire come segue: entrati nella pagina di configurazione digitando about:config nella barra degli indirizzi, modificare i valori

webgl.enabled_for_all_sites –> true
gfx.font_rendering.directwrite.enabled –> true

tasto destro su area vuota –> Nuovo –> Intero –> mozilla.widget.render-mode con valore 6

Sulla stessa rotta anche Google, che con la release 7 beta DEV del suo browser integrerà un nuovo GPU process per accelerare il rendering della pagina: anche in quest’ultimo caso, una volta scaricata la versione development, si dovrà aggiungere la seguente estensione al comando di esecuzione del browser per attivare le funzionalità

C:\Utenti\Nomeutente\AppData\Local\Google\Chrome\Application\chrome.exe -enable-accelerated-compositing

ed ugualmente, se si vuole abilitare la funzione WebGL sul browser di BigG, bisognerà lanciarlo con la seguente estensione

C:\Utenti\Nomeutente\AppData\Local\Google\Chrome\Application\chrome.exe -enable-webgl

Google, a differenza di Firefox, mi risulta che permetta la coesistenza della versione Dev con la versione stable dei suoi browser, senza che si pestino i piedi a vicenda: mentre purtroppo con Firefox, cioè che fate sulla Dev si riflette sulla stable, ovvero non potete avviarle contemporaneamente. Mi perdoneranno inoltre gli utenti se non conosco esattamente il percorso di sviluppo di Chrome, in ogni caso su alcuni blog si legge ancora di aggiungere la stringa –no-sandbox prima di “-enable-webgl”, poiché eseguire tali applicativi 3D dentro la sandbox aumenta la sicurezza ma pone problemi di compatibilità nel rendering, visto e considerato che si tratta di tecnologie ancora a livello draft quanto a definizione degli standard.

Se volete testare le nuove funzionalità, vi ricordo che oltre ad eseguire le operazioni di cui sopra dovete possedere una scheda video in grado di supportare lo standard OGL 2.1, le DirectX10 e avere come sistema operativo Windows 7 o in seconda battuta Windows Vista (niente da fare per XP) per sfruttare le D2D, che essendo tecnologia proprietaria Microsoft non esistono né su Linux né su Mac: facile per qualsiasi gpu di ultima e penultima generazione, difficile per quelle di vecchia generazione, mentre possiamo dire complicato per la grafica integrata Intel. Potete poi recarvi su questo sito, Mozilla People, per giocare un po’ con le foto presenti: fatelo con un IE8 che non ha nessuno di questi strumenti e poi provate a fare le stesse operazioni con Firefox o Chrome “abilitati”… Con una HD4800 si è su un altro pianeta!

Cosa abbiamo dunque alle porte? Un mondo sempre più platformless e soprattutto sempre più connesso ad internet: Google ha da tempo lanciato le sue web applications in termini di produttività da ufficio, tanto che in certo qual senso il suo sistema operativo è solo una interfaccia visuale per accedere ad internet; a stretto giro anche la Microsoft ha proposto la sua versione di web applications, anche in questo caso legata alla produttività da ufficio. Ma nel futuro, con l’integrazione delle D2D e del binding delle OGL chiamato WebGL (di cui ATI ha già rilasciato un driver compatibile dalla versione 10.7 dei suoi Catalyst, vedremo quasi certamente il proliferare di applicazioni web che prima d’ora non avremmo mai pensato di poter esportare direttamente sulla rete: parliamo di giochi 3D, programmi CAD o più in generale programmi per il 3D, e tutta quella serie di applicazioni più o meno professionali, didattiche e/o comunicative che hanno bisogno di una grande potenza di calcolo della scheda video, fino ad oggi dunque relegate soltanto su supporti fisici quali desktop e portatili di alto livello e, peggio ancora (per alcuni versi) legate a specifici sistemi operativi (che in massima parte sono Windows e Mac OS e solo in minima parte le varie distro Linux). Con le web applications non sarà più così: basterà un sistema operativo qualsiasi, un browser compatibile, una connessione ad internet a banda larga, ed il gioco sarà fatto, si potrà produrre in qualsiasi condizione, che ci si trovi seduti a casa, in vacanza nel deserto o mentre si scala una montagna sulle Ande. Non è un caso se questo futuro bisogno sempre più massiccio di accesso alla rete e di bisogno di interconnessione ha spinto Intel ad acquisire una società che si occupa di sicurezza: è probabile che in futuro la nostra protezione passerà direttamente dall’hardware e non più soltanto dal software. Stay tuned.

Una configurazione dual core completa per uso home/office

L’attuale momento del mercato informatico non è certo il meglio che ci si possa aspettare: non parlo tanto di questo periodo specifico (si sa, in estate meglio non fare acquisti se non dettati da necessità impellenti), quanto di un trend registrato nell’ultimo periodo. Da una parte, il cambio euro/dollaro, dall’altra la crisi economica, poi chissà cosa ancora, tutto ha fatto si che il prezzo di un pc medio di ultima generazione sia estremamente alto, rispetto alla disponibilità monetaria media di chi guarda a queste configurazioni. In particolare le memorie ram si sono alzate tantissimo, ma anche la grande disponibilità di offerta di mercato (in particolare Intel ha almeno 7 tipologie di processori per almeno 3 piattaforme diverse) rende poco conveniente l’acquisto di un computer di ultima generazione (sempre di fascia medio-bassa), poiché il suo prezzo è bloccato in alto dai computer di penultima generazione, i cui componenti devono d’altronde essere smaltiti.

Così, tra Pentium Celeron, Core 2 e Core i3-i5-i7 (senza dimenticare gli Atom) da una parte, Sempron, Athlon e Phenom dall’altra, la scelta è ampia ma risparmiare è difficile. O si rinuncia completamente alle prestazioni, allora spesso con €200 ci si porta a casa un pc completo (ovviamente dotato di sistema operativo Linux e software tutto gratuito), oppure meno di €500 non è proprio possibile spendere, e spesso senza neanche poi avere chissà cosa.

Asus P5G41-MLX

Recentemente mi sono trovato a dover progettare una piccola rete per un piccolo studio: budget limitatissimo, poco spazio e alcuni paletti nelle necessità dell’ufficio. Non c’è stata molta scelta: avevo inizialmente guardato ai nuovi Core i3, pensando ad una configurazione base, ma tra le ram DDR3 e la motherboard si sforava di brutto; meno che mai a quel punto gli i5, il cui prezzo era troppo alto anche nel processore. Rimanere su piattaforma LGA775 purtroppo è molto limitante per il futuro (essendo un morituri socket) e per altro si tratta di processori vecchi: ma non c’è stato niente da fare, per rimanere entro i €500 all inclusive a pc, monitor escluso (per il quale bisogna aggiungere quindi ca. €100, bellino uno degli ultimi Asus con retroilluminazione a LED), non c’era scelta. Alla fine è venuto fuori quanto segue: Intel Core 2 Duo E7600 (dual core con 3,06Ghz a cpu), 2GB di ram Team Elite (configurazione banco singolo per lasciare la possibilità in futuro di aggiungere altri 2GB), una scheda madre formato micro con chipset Intel G41 (quindi con grafica integrato), infine un hard disk Western Digital Caviar Blue da 500GB (la differenza di prezzo con il 320GB era davvero ridicola, nel rapporto cent/GB non c’era paragone). L’alimentatore è un componente fondamentale ma anche molto sottovalutato: io tendo sempre a scegliere un psu sicuro ed affidabile, oltreché silenzioso, come lo sono quelli della famiglia Corsair, di cui il 400W era più che sufficiente per le esigenze energetiche della piattaforma. Come al solito il resto della configurazione (masterizzatori e ammennicoli vari) a piacimento. Ovviamente il case era il più piccolo tra quelli disponibili per il formato standard-ATX (il formato micro per i case è estremamente limitate quanto a possibilità di espansione del pc). Per applicazioni d’ufficio è sufficiente, in quanto i programmi più usuali sono in genere single thread (da qui la necessità di un’alta frequenza di funzionamento) e le richieste in ambito video sono coperte. Di sicuro non si guarderanno film in HD e meno che mai in 3D, ma per questo sarà sufficiente dotarsi di una scheda video discreta in abbinamento ad un monitor adeguato in grado di rispondere a queste esigenze.

Credo che sia una piattaforma abbastanza equilibrata per l’uso home/office: c’è anche una discreta potenza di elaborazione (oltre 6Ghz totali) per effettuare un po’ di photo/video editing amatoriale, per chi si diverte a caricare i propri contenuti su youtube o flickr. Si tenga presente che le schede madri di tipo micro-ATX non hanno una grande espandibilità interna, avendo soltanto (in genere) 4 porte SATA e 1 PCI, comunque sufficienti per qualsiasi configurazione da ufficio: in ogni caso con 8 porte USB si è decisamente coperti. Bisognerà solo fare attenzione, nel momento in cui si upgrada il pc, a non esagerare: non si pensi di poter mettere una scheda video monstre di ultima generazione, a meno di non passare ad un alimentatore più performante (da 650W in su).

intel_core_2_duo_e7600

Ultime indicazioni: avevo anche guardato ad una piattaforma AMD, che ultimamente mi aveva soddisfatto parecchio e che offre processori a prezzi più contenuti. Il problema è che trovare una scheda madre con chipset AMD e grafica integrata è una mezza impresa (anche qui a Roma) ed i suoi costi sono più alti della controparte Intel (se si vuole pareggiare il costo bisogna andare su mobo dotate di chipset nVidia, cosa che tendo a sconsigliare). Inoltre, quanto a potenza bruta Intel continua ad essere superiore ad AMD e, ripeto, in applicazioni single thread la potenza del singolo core continua ad essere fondamentale. Infine, i dati vengono gestiti da un serverino centrale dotato di raid 1: copia sincronizzata di backup e controllo degli accessi per ogni utente, per evitare sia che un impiegato per errore possa cancellare un file che non compete al suo lavoro, sia che due impiegati non si pestino i piedi se devono lavorare sullo stesso file contemporaneamente (situazioni piuttosto frequenti quando si maneggia la contabilità dei clienti, un argomento spinoso e decisamente delicato).