Una supernova esplode nella GPU

Un team di ricerca sfrutta una comune scheda grafica per PC per simulare e renderizzare quasi istantaneamente in 3D il collasso di una supernova. Dieci volte più rapidamente di uno Xeon

Los Alamos (USA) - Con il rapido crescere della loro potenza di calcolo i PC stanno divenendo una piattaforma sempre più appetibile per la ricerca scientifica, specialmente là dove i budget sono ridotti all'osso. In questo campo i PC vengono spesso utilizzati per allestire supercomputer a buon mercato, sfruttando la potenza congiunta delle loro CPU. Oltre oceano, tuttavia, c'è chi si sta interessando sempre più anche ad un altro componente del buon vecchio personal computer: la scheda grafica.

Un gruppo di scienziati del Los Alamos National Laboratory (LANL), in California, ha sviluppato un software capace di sfruttare il processore grafico di una scheda video di fascia alta per simulare il collasso di una supernova e disegnare quasi istantaneamente a video un modello dinamico in 3D. Secondo gli scienziati, la GPU (Graphics Processing Unit) è in grado di effettuare i complessi calcoli alla base della simulazione 12 volte più velocemente di quanto riesce a fare un processore Intel Xeon.

Per sfruttare le capacità di calcolo della scheda grafica i ricercatori si sono avvalsi di uno speciale linguaggio di programmazione, chiamato Scout, che si appoggia sulle librerie grafiche OpenGL e permette agli sviluppatori di programmare direttamente i processori grafici per PC prodotti da ATI e Nvidia.
Patrick McCormick, un ricercatore del LANL, ha spiegato che Scout può essere utilizzato per simulare vari fenomeni, come le correnti oceaniche e la formazione delle galassie. Ha spiegato le GPU permettono di accelerare i calcoli matematici in virgola mobile e, nello stesso tempo, semplificano la visualizzazione grafica dei risultati.

Il team di scienziati di cui fa parte McCormick sta lavorando ad una versione di Scout che permette di sfruttare la potenza grafica di più PC connessi tra loro: una sorta di cluster, dunque, dove a giocare il ruolo di primi attori non sono le CPU bensì le GPU.

McCormick ha ammesso che i chip delle schede grafiche restano dei processori molto specializzati e, di conseguenza, si adattano particolarmente bene solo a certi tipi di applicazione. Alcuni sviluppatori stanno tuttavia guardando con sempre più interesse all'uso delle GPU anche come co-processori general-purpose da utilizzare per far girare applicazioni non scientifiche: un'ampia risorsa di informazioni e documenti dedicata a questa branca del computing è rappresentata dal sito gpgpu.org.
22 Commenti alla Notizia Una supernova esplode nella GPU
Ordina
  • dove si scarica?
    tipo di licenza?
    manuali, tutorial, esempi?

    Qualcuno ha notizie?

    Graize
    non+autenticato
  • Le migliori librerie non erano le Direct3D?A bocca aperta:D Troll
    Vide
    232
  • - Scritto da: Vide
    > Le migliori librerie non erano le Direct3D?A bocca aperta:D
    > Troll

    No, ovviamente sono sempre state le OpenGL Troll chiacchierone
    non+autenticato

  • - Scritto da: Vide
    > Le migliori librerie non erano le Direct3D?A bocca aperta:D
    > Troll

    Le OpenGL sono leggermente più indietro rispetto alle Direct3D ma sono più semplici da programmare e, soprattutto, sono multipiattaforma.

    Poi neanche tanto indietro, ci hanno fatto l'engine di Doom3...
    non+autenticato
  • Gia' in alcune aziende di "livello" (e pure italiane) si era cominciato a farlo...

    E pure i militari Coreani (tecnologia per sommergibili)

    Con le PS2 della Sony...

    E circa 8/9 anni fa...

    Dove sta la novita'?
    non+autenticato
  • Io ricordo (vagamente) che ai tempi del c64 c'è qualcuno che implemento il Life usando la gpu perchè faceva operazioni vettoriali e andava molto più velocemente di x86 e workstation unix.
    E' ovvio che se fai una cosa sola la PUOI far meglio di chi ne fa diverse.
    Ma se un programmatore oggi conosce solo Java e .Net è altrettanto evidente che ti serve hardware molto potente perchè l'efficienza nell'utilizzo della macchina è ridicola.
    Però puoi usare un programmatore junior e pagarlo un pugno di riso.
  • allora c'e da fare una cosa:
    x86 asembler, c++ (nelle scuole niente java, php, asp)

    di base il c++ e asembler il resto non e' necessario
    poi .net c# sono solo c@zzate per fare soldi e far programmi infretta (altra cosa)
    non mi sognerei mai di far scrivere un gestionale in c++
    o in asembler





    non+autenticato
  • non c'è bisogno di portare così all'estremo le cose, ma è innegabile che chi sa programmare in assembler o in C ha una mentalità (non una capacità, una mentalità) che lo porta a sfruttare meglio le risorse hardware.

    In particolare ritengono che i programmi devono essere maledettamente efficienti sia nell'uso della CPU che nel consumo di RAM.

    Ricordo che anni fa, sul mitico BYTE c'era il confronto tra Lotus 1-2-3 nelle varie versioni e si notava un enorme salto tra la versione scritta in assembler e quella scritta in C. Ti puoi immaginare passare da C a VB, .Net, ...

    Non dico che i gestionali vadano scritti in C, ma quando vedi che per avere la visione dello stato della tastiera sul desktop ti devi mangiare mega e mega di RAM ti chiedi cos'hanno in testa certi programmatori.

    Diciamo allora, che per ogni tipo di programma ci vuole il suo linguaggio: utilità di sistema ? C e assembler. gestionali ? VB e .net e compagnia. In mezzo ci sono decine e decine di altri linguaggi.

    madder
    non+autenticato
  • E' anche vero che i programmatoruccoli che fanno i gestionali non conoscono assolutamente che cosa possa essere una struttura dati e cosa si intenda per costo computazionale. Quindi fanno programmi che per fare due boiate fanno 50000 cicli o anche solo una ricerca sequenziale, quando una ricerca in un albero sarebbe piu' consigliato.
    non+autenticato

  • - Scritto da: Anonimo
    > quando una ricerca
    > in un albero sarebbe piu' consigliato.

    Hai trovato la banana, sull'albero ?

    non+autenticato

  • - Scritto da: Anonimo

    > Dove sta la novita'?

    Quindi se una notizia non contiene una novita' strabiliante non va riportata?

    E' una notizia.
    non+autenticato
  • Innanzitutto fare loro i complimenti è d'obbligo, in quanto sono stati in grado di fare meglio di uno Xeon con una GPU, e in effetti non è poco.

    Tuttavia:
    La GPU di una scheda grafica è un DSP, alias un digital signal processor. Era *ovvio* che desse delle gran legnate ai processori general purpose!!!(Chi ci abbia lavorato sopra capirà cosa intendo)

    Un normalissimo DSP, che vada alla mirabolante frequenza di 200MHz, con un programma scritto BENE (e questo è il suo segreto, ma per scrivere bene il programma bisogna veramente essere esperti, e conoscere a MEMORIA il dsp che si usa), riesce a fare 20 volte più veloce i conti che un x86 a clock dieci volte superiore. Sorpresa

    Non si possono trasformare in general purpose, ossia, non si possono adattare a qualunque applicazione proprio perchè ad esempio un semplice "salto" da una parte di programma ad un altro (chiamate a funzione, "if", cose simili) irrimediabilmente causa una perdita di prestazioni impressionante, perchè interrompe la pipeline, blocca i loop di ripetizione, impone almeno due context switch (ossia salvataggi in memoria dello stato interno del DSP ) causa insomma una perdita di tempo che a 200MHz si fa sentire.


    ==================================
    Modificato dall'autore il 13/06/2005 10.10.27

  • - Scritto da: scorpioprise
    > Tuttavia:
    > La GPU di una scheda grafica è un DSP, alias un
    > digital signal processor. Era *ovvio* che desse
    > delle gran legnate ai processori general
    > purpose!!!(Chi ci abbia lavorato sopra capirà
    > cosa intendo)

    Dillo a Microsoft, che sostiene che Xbox360 darà le legnate a PS3 perché il processore di PS3 è un SOLO un dsp, mentre quello di Xbox360 è BEN un general purpose...
    non+autenticato

  • - Scritto da: scorpioprise
    > Innanzitutto fare loro i complimenti è d'obbligo,
    > in quanto sono stati in grado di fare meglio di
    > uno Xeon con una GPU, e in effetti non è poco.
    >
    > Tuttavia:
    > La GPU di una scheda grafica è un DSP, alias un
    > digital signal processor. Era *ovvio* che desse
    > delle gran legnate ai processori general
    > purpose!!!(Chi ci abbia lavorato sopra capirà
    > cosa intendo)
    >
    > Un normalissimo DSP, che vada alla mirabolante
    > frequenza di 200MHz, con un programma scritto
    > BENE (e questo è il suo segreto, ma per scrivere
    > bene il programma bisogna veramente essere
    > esperti, e conoscere a MEMORIA il dsp che si
    > usa), riesce a fare 20 volte più veloce i conti
    > che un x86 a clock dieci volte superiore. Sorpresa
    >
    > Non si possono trasformare in general purpose,
    > ossia, non si possono adattare a qualunque
    > applicazione proprio perchè ad esempio un
    > semplice "salto" da una parte di programma ad un
    > altro (chiamate a funzione, "if", cose simili)
    > irrimediabilmente causa una perdita di
    > prestazioni impressionante, perchè interrompe la
    > pipeline, blocca i loop di ripetizione, impone
    > almeno due context switch (ossia salvataggi in
    > memoria dello stato interno del DSP ) causa
    > insomma una perdita di tempo che a 200MHz si fa
    > sentire.
    E a questo punto mi chiedo, a quando la possibilità di utilizzarli come coprocessori e rendendoli accessibili alle applicazioni che ne hanno bisogno? (penso al rendering, ma anche ad un window manager ipercolorato Con la lingua fuori)
  • Per spiegare meglio , prima che la gente si chieda perchè non mettere i DSP al posto dei pentium.

    In realtà i DSP sono si dei processori iperveloci ma dipende cosa li usi a fare .

    Come hai detto tu i DSP hanno i loro programmi scritti internamente che però sono fatti solo per l'esecuzione di certi specifici calcoli o quanto meno, piccoli programmi velocemente, quindi possono essere programmati per eseguire per esempio una trasformata di Fourier per il processo MPEG o cose simili .

    Usare una scheda 3D per la simulazione di una esplosione è una cosa molto semplice, visto che il 3D si basa su vettori di 4 elementi che oltre a servire nel calcolo delle rototraslazioni (matrici) serve eregiamente nei calcoli di meccanica (razionale) per gli stati non solidi, attraverso l'astrazione dei quaternioni (quelli che usa il motore di certi giochi come Tomb Rider).

    Dunque il DSP di una scheda grafica è PERFETTO per quel lavoro.

    McZ
    non+autenticato
  • - Scritto da: Anonimo
    > Per spiegare meglio , prima che la gente si
    > chieda perchè non mettere i DSP al posto dei
    > pentium.
    >
    > In realtà i DSP sono si dei processori iperveloci
    > ma dipende cosa li usi a fare .
    >
    > Come hai detto tu i DSP hanno i loro programmi
    > scritti internamente che però sono fatti solo per
    > l'esecuzione di certi specifici calcoli o quanto
    > meno, piccoli programmi velocemente, quindi
    > possono essere programmati per eseguire per
    > esempio una trasformata di Fourier per il
    > processo MPEG o cose simili .
    >
    > Usare una scheda 3D per la simulazione di una
    > esplosione è una cosa molto semplice, visto che
    > il 3D si basa su vettori di 4 elementi che oltre
    > a servire nel calcolo delle rototraslazioni
    > (matrici) serve eregiamente nei calcoli di
    > meccanica (razionale) per gli stati non solidi,
    > attraverso l'astrazione dei quaternioni (quelli
    > che usa il motore di certi giochi come Tomb
    > Rider).
    >
    > Dunque il DSP di una scheda grafica è PERFETTO
    > per quel lavoro.
    >
    > McZ

    Parla come mangi!Occhiolino
  • te la scrivo io più semplice. I processori delle schede grafiche si programmano con i vertex ed i pixel shader. Questi sono ottimizzati per operazioni grafiche che prevedono poche operazioni con vettori da 4 elementi (xyzw) che possono essere i vertici di modelli geometrici ed i pixel delle texture. Non esistono molti tipi di registri, ne molti tipi di istruzioni ma questi sono ottimizzati per operazioni tra vettori e matrici (una matrice4x4 sono 4 vettori). Un processore normale invece non è ottimizzato per l'elaborazione di vettori. Fare un calcolo scientifico con una scheda grafica è una operazione molto diversa dal farla con un processore normale perchè in pratica bisogna usare texture come zone in cui allocare la memoria. Ho visto numerosi articoli di chi utilizzava gli shader per path finding, calcoli scientifici ed altro. Il libro GPU Gems 2 dedica un intero capitolo all'utilizzo delle gpu per calcoli scientifici. I tipi in questione hanno solo usato questo sistema e non sono stati di certo i primi visto che moltissimi programmatori già lo fanno
    non+autenticato
  • Quest'uso delle gpu mi ricorda tanto i co-processori matematici per i calcoli in virgola mobile del 386...
    non+autenticato

  • - Scritto da: Anonimo
    > Quest'uso delle gpu mi ricorda tanto i
    > co-processori matematici per i calcoli in virgola
    > mobile del 386...

    ma infatti mi domando quand'é che monteremo le gpu direttamente sulla mobo, senza necessità di scheda e con bus molto più veloce degli attuali.

  • - Scritto da: avvelenato
    >
    > - Scritto da: Anonimo
    > > Quest'uso delle gpu mi ricorda tanto i
    > > co-processori matematici per i calcoli in
    > virgola
    > > mobile del 386...
    >
    > ma infatti mi domando quand'é che monteremo le
    > gpu direttamente sulla mobo, senza necessità di
    > scheda e con bus molto più veloce degli attuali.

    Pigliati una grafica integrataFicoso
    Poi non lamentarti che è difficilmente aggiornabile.

    (Sò cosa pensi, socket per la GPU.
    Questo si che sarebbe castrare lo sviluppo delle schede video.
    La possibilità di progettare tutto il sottosistema GPU/VRAM è la forza della loro evoluzione, ricorderai bene che qualche anno fà si poteva espandere la VRAM delle schede.
    Ma "forse" i chip saldati sul PCB reggono bus più elevati che agganciati negli slotOcchiolino )
    non+autenticato
  • - Scritto da: Anonimo
    >
    > - Scritto da: avvelenato
    > >
    > > - Scritto da: Anonimo
    > > > Quest'uso delle gpu mi ricorda tanto i
    > > > co-processori matematici per i calcoli in
    > > virgola
    > > > mobile del 386...
    > >
    > > ma infatti mi domando quand'é che monteremo le
    > > gpu direttamente sulla mobo, senza necessità di
    > > scheda e con bus molto più veloce degli attuali.
    >
    > Pigliati una grafica integrataFicoso
    > Poi non lamentarti che è difficilmente
    > aggiornabile.
    >
    > (Sò cosa pensi, socket per la GPU.
    > Questo si che sarebbe castrare lo sviluppo delle
    > schede video.
    > La possibilità di progettare tutto il
    > sottosistema GPU/VRAM è la forza della loro
    > evoluzione, ricorderai bene che qualche anno fà
    > si poteva espandere la VRAM delle schede.
    > Ma "forse" i chip saldati sul PCB reggono bus più
    > elevati che agganciati negli slotOcchiolino )


    sì, ma nello stesso tempo la vram diventa lenta nel comunicare con la cpu (a quell'altro che dice che il pci-e 16x è più o meno come il bus quad-pumped o l'hypertransport, insomma, non ci giurerei, soprattutto le latenze devono essere di un paio o tre ordini di grandezza superiori.

    Se questo non ha alcuna importanza in ambito strettamente grafico, magari potrebbe averlo in un'architettura nuova del pc dove le memorie vram, le memorie ram, la cpu e la gpu collaborano in ogni task, dalla grafica delle gui, al calcolo intensivo, eccetera.

    ==================================
    Modificato dall'autore il 13/06/2005 20.26.24

  • > ma infatti mi domando quand'é che monteremo le
    > gpu direttamente sulla mobo, senza necessità di
    > scheda e con bus molto più veloce degli attuali.

    Ma perchè? il PCIe 16X ed il PCIe2 non ti sembrano abbastanza veloci?
    Teoricamente smuovono tanti dati quanto ne smuove il bus del p4 o dell'A64