PDA

View Full Version : NVIDIA investe nelle elaborazioni GP-GPU


Redazione di Hardware Upg
26-01-2007, 14:02
Link alla notizia: http://www.hwupgrade.it/news/skvideo/19930.html

Un investimento di 3 milioni di dollari in Acceleware, azienda specializzata nell'uso di GPU per calcoli non video: questo uno dei primi passaggi per la diffusione di CUDA

Click sul link per visualizzare la notizia.

giulioballio
26-01-2007, 14:13
voglio vedere se il mio dipartimento fra qualche anno assemblerà un cluster di G80..

zanardi84
26-01-2007, 14:19
Era ora!
Deve essere necessariamente questo il trend!
A livello elaborativo non c'è assolutamente paragone tra un dual core attuale e una vga di fascia alta, forse addirittura di fascia media.

Se non ricordo male, si diceva che già le GeForce FX potessero lavorare in un ambito diverso da quello grafico. Si era vociferato di un possibile utilizzo nell'elaborazione del suono nel progetto bionicFX.

Oggi mi sembra che l'applicazione migliore di gp gpu sia il progetto folding@home della Stanford university. Migliore perchè è a scopo benefico che riguarda tutti. La ricerca per sconfiggere le malattie. Sfruttando la capacità delle Radeon X1800 e X1900 è possibile ridurre sensibilmente i tempi di elaborazione delle simulazioni.

Dexther
26-01-2007, 14:22
azz, news interessantissima :eek:

VitOne
26-01-2007, 14:57
Da parecchio tempo si parla di sfruttare le VGA anche per calcoli diversi da quelli strettamente grafici, e nelle schede madri più recenti è a volte presente un tezo connettore PCIE full che consentirebbe di usare una terza VGA (si vociferava per i calcoli relativi alla fisica nei giochi).
L'hardware c'è. Il software manca, ed in modo clamoroso. I dual (e i quad core ancora di più) possono essere sfruttati al 100% molto difficilmente e solo con qualche applicazione specifica.
Dal punto di vista grafico si assiste ad una contiuna conversione, molti titoli escono poco ottmizzati, alcuni titoli promettono di sfruttare quad core e GPU avanzate, speriamo bene...

HexDEF6
26-01-2007, 14:58
voglio vedere se il mio dipartimento fra qualche anno assemblerà un cluster di G80..

visto che sono il responsabile del cluster del mio dipartimento, devo assolutamente far sborsare i soldi per qualche sample... ovviamente per provare a farci conti :sofico: :sofico: :D :D
e gia che ci siamo anche un paio di playstation 3 per provare le potenzialita' del cell!

eta_beta
26-01-2007, 15:24
mesi fa ho provato ad contattare nvidia per sdk di Compute Unified Device Architecture (cuda )
ho inserito tutti i miei dati, ma poi nessuna risposta
inutile presentare un sdk se poi non permetti di scaricarlo :(

demon77
26-01-2007, 15:24
Notizia OTTIMA!!
Finalmente si va nella giusta direzione: un pc in grado di sfruttare tutte le sue risorse per tutti i calcoli!
I processori grafici hanno una potenza mostruosa che oggi va sprecata!

Sotto quest'ottica la presenza di due sk video comincia ad avere senso! :D

Adesso è necessario STANDARDIZZARE! Non deve esserci differenza tra AMD ed Nvidia!

Mi sa che ci vorrà ancora parecchio tempo..

essereumano
26-01-2007, 15:39
Buona l'idea di utilizzare una gpu per l'audio ma c'è anche da ricordare che molte schede audio di fascia professionale hanno dei dsp che se ne occupano...

MCMXC
26-01-2007, 15:42
Dico io ERA ORA! (Il mio interesse va al rendering 3D, spero facciano quindi un motore che sfrutti la GPU come avevano gia' fatto tempo fa con Gelato)

PsyCloud
26-01-2007, 16:01
non occorre comprare la ps3 per provare il cel nel cluster del tuo dipartimento. basta che compri un plug-in ibm basato su cell per cluster server su un pcb pci a 64 bit (9800 euro).
qualcuno mi aveva postato il link a questa skeda da attaccare ma non ricordo dove e quando.

Wilfrick
26-01-2007, 16:09
Si, gelato già lo faceva ma era solo per il max (e maya mi sembra). Spero che si riesca un giorno a far diventare la GPU più o meno a livello di un coprocessore matematico.

neonato
26-01-2007, 16:21
con l'esperienza acquisita negli anni da ati e Nvidia, se andra in porto questo tipo di calcoli la vedo dura x intel.
Questo si collega alla notizia in cui intel vorrebbe entrare nel campo delle gpu Hihg-end come terzo incomodo.
Ne vedremo delle belle.

lowenz
26-01-2007, 16:32
Ci farei una bella tesi molto volentieri :)

E cmq qualcuno sa che fine ha fatto BionicFX? Il sito ormai è down da anni :(

nico88desmo
26-01-2007, 18:34
Ottima notizia questa! :sofico:

JohnPetrucci
26-01-2007, 21:24
Questa strada tecnologica di rendere le Gpu sfruttabili a 360° mi intriga parecchio, bene vedremo cosa si riuscirà a tirare fuori per il futuro, a questo punto l'acquisizione di Amd nei confronti di Ati darà un'ulteriore impulso in tal senso e ovviamente Nvidia ha le medesime giuste intenzioni, anche Intel non starà di certo a guardare su questo nuovo fronte.

Trokji
26-01-2007, 21:31
veh considerate com gpu (medie e sitema medio) è stimato che folding@home calcola più velocemente da 3 a 15 volte.. ragazzi chi ha una ati recente o una 8800 nvidia partecipiamo tutti per la ricerca scientifica! :)

MCMXC
26-01-2007, 21:36
Si, gelato già lo faceva ma era solo per il max (e maya mi sembra)

Gia', mentre io vorrei qualcosa di piu' generale...

Spero che si riesca un giorno a far diventare la GPU più o meno a livello di un coprocessore matematico.

Lo spero anche io:)

Mason
26-01-2007, 22:01
Ancora con sta cosa?
Ormai sono anni che ne parlano, ma piu che paperi(papers pdf) non ho visto... ma visto che hanno poca apertura e mancano standard dubito portera mai a qualcosa.

Visto che cmq si parla di alte performance, dubito che si vadano a scontrare con processori di fascia alta, non paragono nvidia a ibm sgi sun in fatto di cluster, non e il suo mercato per entrarci.

Per pc normale rimane qualche applicazione in fatto di grafica (raster e vettoriale), ma son sempre cose "da scheda video". quando fatto un ace o un arj che sfrutta la scheda video, un encoder mpeg che sfrutti la scheda video come motore di calcolo, linkato ad una libreria dll o so che sia cambiero idea.

Ibm col cell e sun col niagara portan notiva in fatto di cluster, sia per calcolo sia per risparmio.

Trokji
26-01-2007, 22:11
su folding home vanno alla grande, può darsi che anche altri trovino il modo di usarle ;)

blackshard
26-01-2007, 23:47
Le GPU non possono sostituire le CPU perché mancano di tutte le raffinatezze di controllo del codice, indirizzamento e tante altre cazzatine che rendono le CPU davvero general purpose.
Sono ottime invece per elaborare blocchi di dati in modo ripetitivo, esattamente come fanno attualmente le istruzioni simd (mmx, 3dnow!, sse/sse2/3/4).
Il paragone comunque IMHO non regge: sebbene le GPU siano mostruosamente potenti, anche grazie ai bus molto ampi e dedicati verso le memorie, ci si possono fare solo operazioni in streaming e di determinati tipi. A gestirle deve essere sempre e comunque una CPU general purpose.
A tale scopo le si possono considerare più come dei coprocessori special purpose, applicati al calcolo general purpose.

homero
27-01-2007, 00:04
allora siamo chiari una volta per tutte....
le GPU hanno un sistema di approssimazione dei calcoli enormemente meno preciso rispetto alle cpu...ossia le nostre GPU sbagliano i conti!!!!
si avete capito bene sbagliano i conti....
ovviamente nelle rappresentazioni3d 1 subpixel sbagliato non ha molta importanza al contrario nella stragrande maggioranza dei casi è inaccettabile...
pertanto chi cerca grande potenza a basso costo se la puo' scordare tranquillamente....
forse serviranno per altri scopi come far girare algoritmi per l'intelligenza artificiale e il calcolo della fisica e della dinamica delle particelle nei giochi di nuova generazione ma vi posso assicurare che nessun software utilizzabile per lavoro possa essere fatto girare su queste schede almeno come sono concepite al giorno d'oggi...

Trokji
27-01-2007, 00:05
infatti viene fatto firare folding@home, per la ricerca scientifica :)

Mason
27-01-2007, 00:17
Le GPU non possono sostituire le CPU perché mancano di tutte le raffinatezze di controllo del codice, indirizzamento e tante altre cazzatine che rendono le CPU davvero general purpose.
Sono ottime invece per elaborare blocchi di dati in modo ripetitivo, esattamente come fanno attualmente le istruzioni simd (mmx, 3dnow!, sse/sse2/3/4).
Il paragone comunque IMHO non regge: sebbene le GPU siano mostruosamente potenti, anche grazie ai bus molto ampi e dedicati verso le memorie, ci si possono fare solo operazioni in streaming e di determinati tipi. A gestirle deve essere sempre e comunque una CPU general purpose.
A tale scopo le si possono considerare più come dei coprocessori special purpose, applicati al calcolo general purpose.

Non so se riferito a me, cmq sicuramente concordo, non e che il pezzo di ferro che fa girare tutto sia lo stesso, pero, siccome per il risultato finale c'e' almeno un ordine di grandezza di differenza nella velocita' di computazione(penso siano 2 circa), che sia una gpu o una cpu(senza la quale ti sfido ad utilizzare un qualunque computore) all'effetto pratico cambia poco, e' il irsultato che conta.

Rischia di rimanere qualcosa a livello teorico o di studio, se non porta a benefici pratici, e quello che intendo al di la del fascino di avevere un processore vettoriale.

cmq li programmi come se fossero shader in cg, almeno x quanto avevo guardato piu di un anno fa sul sito nvidia. Se poi la situazione e' cambiata/cambiera' ben felice, ma per ora vedo pochi sbocchi _reali_.

Trokji
27-01-2007, 00:21
ripeto ancora sbocco reale folding@home già attivo ;)

Mason
27-01-2007, 00:26
enormemente meno preciso rispetto alle cpu...ossia le nostre GPU sbagliano i conti!!!!
si avete capito bene sbagliano i conti....


Questa mi e' nuova...mi pare strano anche per un concetto di propagazione dell'errore(se sbaglio di 0,1 e ci faccio 100 operazioni sopra, l'errore poi sara di 10 sul risultato finale, quindi molto piu notabile alla lunga, so che e' terra terra ma non ho idea in che operazioni "sbagli i conti"), e anche perche in disaccordo con l'altra affermazione di alcuni motori di calclolo distribuito con la necessita' di una certa precisione come folding@home.

Cmq mi cambia di poco, io ci credo poco cmq, e ribadisco, ben felice di essere smentito dal tempo. (mencoder che fila 10 volte piu veloce? ben venga)

Trokji
27-01-2007, 00:30
beh forse ci saranno degli algoritmi per la correzione dell'errore forse, o perlomeno per la sua minimizzazione? :)

Mason
27-01-2007, 00:31
si ma i risultati di folding@home?
ha fatto di piu delle cellule staminali che van tanto di moda?

poi, dimmi pure che sono cinico ed egoista, ma a me cosa cambia far girare folding@home? mi interessa in operazioni che faccio abitualmente e che sinceramente ed egoisticamente reputo piu' utili per me, come salvaschermo posso anche pensare di scoprire gli alieni o capire come si comportano le proteine(ammetto ignoranza in materia).... ma poi? Di sicuro non cambio hw per questo

Scusate stasera sono polemico

Mason
27-01-2007, 00:39
l'errore e' una quantita persa, non puoi ricostruirla. Per farlo dovresti sapere come e' quando e giusta', ma allora non avresti l'errore.

Al max lo stimi,cambi l'ordine delle operazione per minimizzarlo, cose di calcolo numerico insomma.

i problemi di minimizzazione purtroppo sono np (mi pare, ma potrei toppare alla grandissima)

Notte :)

eta_beta
27-01-2007, 00:58
allora siamo chiari una volta per tutte....
le GPU hanno un sistema di approssimazione dei calcoli enormemente meno preciso rispetto alle cpu...ossia le nostre GPU sbagliano i conti!!!!
si avete capito bene sbagliano i conti....
ovviamente nelle rappresentazioni3d 1 subpixel sbagliato non ha molta importanza al contrario nella stragrande maggioranza dei casi è inaccettabile...
pertanto chi cerca grande potenza a basso costo se la puo' scordare tranquillamente....
forse serviranno per altri scopi come far girare algoritmi per l'intelligenza artificiale e il calcolo della fisica e della dinamica delle particelle nei giochi di nuova generazione ma vi posso assicurare che nessun software utilizzabile per lavoro possa essere fatto girare su queste schede almeno come sono concepite al giorno d'oggi...

errore le vecchie gpu avevano una precisione float 16 bit poi sono passati a 24 poi a 32
le ati 9700 erano a 24 bit le ati 1000 sono a 32 bit
dalle 7000 di nvidia e a 32 bit
le operazioni in virgola mobile sono standardizate da IEEE 754
la 1900 è in singola precisione
la 7900 a 32 bit ma disposti diversamente dallo standard .
un link
http://www.gpgpu.org/w/index.php/FAQ#Where_can_I_get_information_about_GPU_floating_point_precision.3F_Is_it_IEEE-compliant.3F
http://it.wikipedia.org/wiki/IEEE_754

Trokji
27-01-2007, 09:32
spiegare il comportamento delle proteine= curare la maggior parte delle malattie, o perlomeno capirne i meccanismi. Pensa che il programma genoma ha beneficiato molto del calcolo distribuito, adesso si tratta di scoprire come si orientano le proteine nle corpo umano in vari condizioni fisiche eccetra, basta pensare che questo può servire a capire come interagiscono con gli enzimi o come esattamente si generano le malattie da prioni ;)

jappilas
27-01-2007, 11:53
cmq li programmi come se fossero shader in cg, almeno x quanto avevo guardato piu di un anno fa sul sito nvidia. Se poi la situazione e' cambiata/cambiera' ben felice, ma per ora vedo pochi sbocchi _reali_.e come shader dipendenti da una surface 3d, li usi...
inoltre si sottovaluta un aspetto secondo me abbastanza importante, cioè che se da una parte, ogni scheda grafica fin qui venduta supporta una determinata generazione dello shader model ( e le differenze tra generazioni successive dello shader model , come da tabella http://en.wikipedia.org/wiki/High_Level_Shader_Language , possono essere sostanziali nel determinare la possibilità di realizzare uno shader il cui scopo sia qualcosa di più che parametrizzare il colore di un poligono)
dall' altra, anche imponendo che la gpu sia SM3 compliant (e tagliando fuori tutte le ati precedenti alla serie x1000, per dire) si avrebbe comunque una situazione in cui ogni programma che volesse avvalersi della gpu come stream coprocessor dovrebbe:
o integrare versioni compilate / scritte in "shader assembly" degli shader, specifiche per ogni famiglia di schede (ati, nvidia, in futuro magari anche intel) o mantenerne internamente una singola versione in high level language, per compilarla una tantum o al volo per inviare i comandi binari ottenuti (il che però implica affidarsi a uno shader compiler che se non presente a livello di sistema, andrebbe fornito con l 'applicazione stessa, e questo potrebbe non essere fattibile per cause esterne, non ultimo il licensing)

in pratica il problema della frammentazione del SW a livello architetturale, uscito dalla porta con l' assestamento della piattaforma mainstream sull' architettura x86, rientra dalla finestra con la diversità delle architetture GPU ... diversità che nello sviluppo di videogiochi mi pare sia affrontata realizzando versioni degli shader specifiche per le varie schede (o almeno famiglie, in base allo shader model e a quello "minimo" supportato) e includendoli tutti tra gli asset del gioco
ma una cosa del genere dubito sia fattibile perchè le applicazioni GPGPU possano essere mainstream ( e in effetti nella ricerca mi risulta si usassero solo schede geforce fino a non molto tempo fa...)
l' ideale sarebbe la standardizzazione di una ISA binaria anche per gli shader, ma si sa, la realtà non favorisce le cose ideali... ma credo ci si possa aspettare almeno una API di sistema standard e aperta, per l' astrazione dall' HW a basso livello (tenendo conto del fatto che , esulando un' applicazione GP GPU con molta probabilità, dall' ambito grafico, non avrebbe molto senso linkare con opengl o direct3d/DirectXGraphics/WGF) ...

blackshard
27-01-2007, 13:38
errore le vecchie gpu avevano una precisione float 16 bit poi sono passati a 24 poi a 32
le ati 9700 erano a 24 bit le ati 1000 sono a 32 bit
dalle 7000 di nvidia e a 32 bit
le operazioni in virgola mobile sono standardizate da IEEE 754
la 1900 è in singola precisione
la 7900 a 32 bit ma disposti diversamente dallo standard .
un link
http://www.gpgpu.org/w/index.php/FAQ#Where_can_I_get_information_about_GPU_floating_point_precision.3F_Is_it_IEEE-compliant.3F
http://it.wikipedia.org/wiki/IEEE_754

Che le unità FP delle schede video siano standard non vuol dire molto. Esse appunto si fermano a 32 bit, ampiamente sufficienti per gli usi di uno shader. Nel calcolo scientifico però molto spesso si usano precisioni superiori con numeri FP a 64 bit e a 80 bit che le FPU gestiscono dall'era dei dinosauri, quindi quello che è stato detto corrisponde al vero.
Per certi usi tuttavia la precisione a 32 bit va anche bene e non introduce errori significativi per il completamento del compito (tipo: calcolare il riverbero acustico).

blackshard
27-01-2007, 13:43
e come shader dipendenti da una surface 3d, li usi...
inoltre si sottovaluta un aspetto secondo me abbastanza importante, cioè che

<...cut...>

aspettare una API di sistema per l' astrazione dall' HW a basso livello (tenendo conto del fatto che un' applicazione GP GPU con molta probabilità esulerà dall' ambito grafico, quindi non avrebbe molto senso linkare con opengl o direct3d/DirectXGraphics/WGF) ...

Condivido tutto. E comunque mi pare curioso che processori dalle tante e tali capcità come le GPU non vengano già impiegati altrove senza avere il peso della scheda video appresso. Magari esistono già ma non lo sappiamo... nel qual caso ho la sensazione che si stia riscoprendo l'acqua calda :D

eta_beta
27-01-2007, 15:44
Che le unità FP delle schede video siano standard non vuol dire molto. Esse appunto si fermano a 32 bit, ampiamente sufficienti per gli usi di uno shader. Nel calcolo scientifico però molto spesso si usano precisioni superiori con numeri FP a 64 bit e a 80 bit che le FPU gestiscono dall'era dei dinosauri, quindi quello che è stato detto corrisponde al vero.
Per certi usi tuttavia la precisione a 32 bit va anche bene e non introduce errori significativi per il completamento del compito (tipo: calcolare il riverbero acustico).
i 32 bit non vanno bene per alcuni tipi di risoluzione di problemi,ok ma esistono tanti modi di risolvere un problema

anche la semplice somma di 1000 numeri può non andare bene la singola precisione
alcuni algoritmi implementati brutalmente senza alcun accorgimento danno errori
per alcuni metodi non usano la singola la doppia ne la "tripla" ma semplicemente il rapporto di numeri interi
per logica mia un problema non si risolve in una sola maniera ma in tante.

PS
dal era dei dinosauri .........
vuoi dire che nel vecchio pentium 1 erano implementate la singola e la doppia precisione, forse si, ma con tempi e modi che sono non di una implementazione HW ma fatta da microcodice
quando un operazione e implementata in hardware viene eseguita a livello macchina da 1-2-3-4 cicli di clock
dal manuale del pentium 1
tempi di moltiplicazione di due numeri in fp a mezza precisione 16 bit
MUL r16
8088 cicli 118-133
80186 35-37
286 21
386 9-22
486 13-26
pentium 11
dal pentium e stata la prima vera macchina a32 bit
forse la doppia precisione e arrivata con il pentium 4

un pentium 4 esegue un addizione in 3-5 cicli

Firedraw
27-01-2007, 16:57
mmmmmmmm sta a vedere che le cpu spariscono e rimangono solo cluster di gpu :D

blackshard
28-01-2007, 14:19
i 32 bit non vanno bene per alcuni tipi di risoluzione di problemi,ok ma esistono tanti modi di risolvere un problema

anche la semplice somma di 1000 numeri può non andare bene la singola precisione
alcuni algoritmi implementati brutalmente senza alcun accorgimento danno errori
per alcuni metodi non usano la singola la doppia ne la "tripla" ma semplicemente il rapporto di numeri interi
per logica mia un problema non si risolve in una sola maniera ma in tante.

PS
dal era dei dinosauri .........
vuoi dire che nel vecchio pentium 1 erano implementate la singola e la doppia precisione, forse si, ma con tempi e modi che sono non di una implementazione HW ma fatta da microcodice
quando un operazione e implementata in hardware viene eseguita a livello macchina da 1-2-3-4 cicli di clock
dal manuale del pentium 1
tempi di moltiplicazione di due numeri in fp a mezza precisione 16 bit
MUL r16
8088 cicli 118-133
80186 35-37
286 21
386 9-22
486 13-26
pentium 11
dal pentium e stata la prima vera macchina a32 bit
forse la doppia precisione e arrivata con il pentium 4

un pentium 4 esegue un addizione in 3-5 cicli

La doppia precisione estesa (floating point a 80 bit) esiste già dall'8087, non dal pentium: http://en.wikipedia.org/wiki/8087

Trattare dati a 32 bit, 64 bit o qualsiasi altro formato non dipende affatto dall'architettura, anzi l'8087 ha introdotto i registri ad 80 bit per la doppia precisione estesa che poi sono stati riusati anche per le MMX e le 3dnow!.
Di questa moltiplicazione a mezza precisione non ne ho mai sentito parlare e soprattutto le istruzioni fp x87 iniziano quasi tutte con "f", quindi fmul, fadd, fsqrt, etc... l'istruzione che hai descritto tu dovrebbe moltiplicare un intero contenuto in un registro a 16 bit con l'accumulatore, è solo uno dei tanti casi di moltiplicazione che mette a disposizione il set di istruzioni.

IW2NHL
28-01-2007, 15:55
Esiste un sito dedicato alle GP-GPU, con raccolte di articoli, link e librerie di codice per utilizzare le GPU in vari campi.
www.gpgpu.org
Tratta un po' di tutto: compressione dati, elaborazione immagini (2D e 3D), audio (elaborazione in real-time, riconoscimento vocale), calcoli scientifici, database, studi di algoritmi paralleli e tanto altro.

Vista la discussione sulla precisione dei calcoli in virgola mobile, può risultare interessante questo studio su come "aggirare" gli errori introdotti dal calcolo delle GPU fino ad arrivare a numeri a 128 bit:
PDF:
http://cs.allegheny.edu/~thall/papers/sigg06_df64_mkIV.pdf
Sito:
http://cs.allegheny.edu/~thall/
Preso da GP-GPU:
http://www.gpgpu.org/cgi-bin/blosxom.cgi/2006/08/10#thallExtPrecision06

eta_beta
29-01-2007, 00:47
La doppia precisione estesa (floating point a 80 bit) esiste già dall'8087, non dal pentium: http://en.wikipedia.org/wiki/8087

Trattare dati a 32 bit, 64 bit o qualsiasi altro formato non dipende affatto dall'architettura, anzi l'8087 ha introdotto i registri ad 80 bit per la doppia precisione estesa che poi sono stati riusati anche per le MMX e le 3dnow!.
Di questa moltiplicazione a mezza precisione non ne ho mai sentito parlare e soprattutto le istruzioni fp x87 iniziano quasi tutte con "f", quindi fmul, fadd, fsqrt, etc... l'istruzione che hai descritto tu dovrebbe moltiplicare un intero contenuto in un registro a 16 bit con l'accumulatore, è solo uno dei tanti casi di moltiplicazione che mette a disposizione il set di istruzioni.
ti prendo i casi migliori non i peggiori,
se prendevo una moltiplicazione dalla memoria impiegava il doppio del tempo
i registri sono i + veloci
certo che quello che ho preso e una operazione semplice interna al processore no al coprocessore
comunque dal 486 il coprocessore e interno
e la prima istruzione che ho trovato
una semplice fimul una floating integer multiply un 8087 impiega 124-138 cicli che non sono pochi
un fmul impiega dai 90 a 170 cicli per un 8087 per passare a 27-60 in un 387 e 11 -16 un 486 e 3 in un pentium questo valore e basso ma ..
può diventare alto
se questa operazione e l'i-esima impiega un tempo ad entrare e uscire dalla alu di 80 cicli e quella precedente 77 allora la nostra operazione impiega 3 cicli e non 80
il pentium 4 impiega molti meno cicli di questi sopra, peccato che avendo una pipe molto lunga che si svuotava continuamente o per errori di predizione o per mancanza di dati con il risultato che impiegava un tempo maggiore
8087 dice di fare tutto ma lo fa lentamente

PS
inoltre bisogna tenere in conto dei tempi della memoria
le schede video comunicano direttamente con la memoria mentre le cpu hanno tra la cpu e la memoria il chipset
il bus delle schede video verso la memoria e di 128 fino a 384 bit mentre i processori hanno un bus a 64 o 128 bit
le memorie video sono 3-4 volte + veloci delle memorie ram di sistema.

blackshard
29-01-2007, 17:43
ti prendo i casi migliori non i peggiori,
se prendevo una moltiplicazione dalla memoria impiegava il doppio del tempo
i registri sono i + veloci
certo che quello che ho preso e una operazione semplice interna al processore no al coprocessore
comunque dal 486 il coprocessore e interno
e la prima istruzione che ho trovato
una semplice fimul una floating integer multiply un 8087 impiega 124-138 cicli che non sono pochi
un fmul impiega dai 90 a 170 cicli per un 8087 per passare a 27-60 in un 387 e 11 -16 un 486 e 3 in un pentium questo valore e basso ma ..
può diventare alto
se questa operazione e l'i-esima impiega un tempo ad entrare e uscire dalla alu di 80 cicli e quella precedente 77 allora la nostra operazione impiega 3 cicli e non 80
il pentium 4 impiega molti meno cicli di questi sopra, peccato che avendo una pipe molto lunga che si svuotava continuamente o per errori di predizione o per mancanza di dati con il risultato che impiegava un tempo maggiore
8087 dice di fare tutto ma lo fa lentamente

Beh, all'epoca dell'8087 la tecnologia non era tale da permettere pipelining estremo e unità esecutive troppo complicate: si parla sempre di processori di 30 anni fa con alcune migliaia di transistor, e non svariati milioni come oggi!
Le reti logiche erano molto meno complesse per tanti motivi, e perciò un'istruzione faceva il giro del mondo prima di essere completata.
In ogni caso avere un 8087 ti dava un boost massiccio se lo usavi nelle operazioni di calcolo al posto dell'emulazione software.


PS
inoltre bisogna tenere in conto dei tempi della memoria
le schede video comunicano direttamente con la memoria mentre le cpu hanno tra la cpu e la memoria il chipset
il bus delle schede video verso la memoria e di 128 fino a 384 bit mentre i processori hanno un bus a 64 o 128 bit
le memorie video sono 3-4 volte + veloci delle memorie ram di sistema.

Certo, questo l'ho detto anche prima, anche se è improprio dire che il chipset sta fra la cpu e la memoria, visto che al giorno d'oggi per i K8 non è così.

homero
01-02-2007, 21:49
ormai parlare di ricerca scientifica come di un settore di qualità e come scrivere che tutti prodotti industriali certificati non fanno male alla salute....

quindi se standford vuole usare le ps3 come cluster invece che i cray o le sgi basate su opteron o itanium sono cavoli loro.

la precisione delle attuali gpu e' enormemente inferiore rispetto a quello che e' richiesto per la maggior parte degli algoritmi dei software...
in genere queste elaborazioni distribuite sul net si basano su un calcolo probabilistico quindi l'errore compiuto sui client viene equamente distribuito per eccesso e per difetto in quanto l'hardware su cui gira e' estremamente vario.
tanto poi alla fine i risultati li buttiamo nel cesso. in quanto l'obbieto e' soltanto far arrivare finanziamenti alle strutture di ricerca e non per ottenere risultati, quindi qualunque sistema va bene, tu hai una ps3, usala per calcolare le combinazioni tra la proteina X e quella Y tanto poi il risultato lo butto nel cesso.

sui sistemi di calcolo ci sarebbe un mare di parole da sprecare.......
.....quelli che usano gli itanium sono dei deficenti allora....
quelli si che sono sistemi di calcolo avanzati.
altro che le nostre GPU...

Trokji
01-02-2007, 21:55
Azz nn dire così.. se sono buttati nel cesso smetto subito di usarli!!!!! :mc: :muro: :muro: :doh:

eta_beta
02-02-2007, 00:00
ormai parlare di ricerca scientifica come di un settore di qualità e come scrivere che tutti prodotti industriali certificati non fanno male alla salute....

quindi se standford vuole usare le ps3 come cluster invece che i cray o le sgi basate su opteron o itanium sono cavoli loro.

la precisione delle attuali gpu e' enormemente inferiore rispetto a quello che e' richiesto per la maggior parte degli algoritmi dei software...
in genere queste elaborazioni distribuite sul net si basano su un calcolo probabilistico quindi l'errore compiuto sui client viene equamente distribuito per eccesso e per difetto in quanto l'hardware su cui gira e' estremamente vario.
tanto poi alla fine i risultati li buttiamo nel cesso. in quanto l'obbieto e' soltanto far arrivare finanziamenti alle strutture di ricerca e non per ottenere risultati, quindi qualunque sistema va bene, tu hai una ps3, usala per calcolare le combinazioni tra la proteina X e quella Y tanto poi il risultato lo butto nel cesso.

sui sistemi di calcolo ci sarebbe un mare di parole da sprecare.......
.....quelli che usano gli itanium sono dei deficenti allora....
quelli si che sono sistemi di calcolo avanzati.
altro che le nostre GPU...
ma allora se serve per fare soldi meglio per loro, no?
magari dopo di possono comprare un itanium
in molte ricerche i risultati li butti
altrimenti al posto di chiamarla "ricerca" la chiamavano "trovata" :sofico:

:D :D

homero
02-02-2007, 07:05
grandioso questo motto lo devo stampare e appendere in università :sofico:

bjt2
02-02-2007, 07:59
Azz nn dire così.. se sono buttati nel cesso smetto subito di usarli!!!!! :mc: :muro: :muro: :doh:

Ha ragione... ;) Il cell ha buone prestazioni su i calcoli in FP 32 (bassa precisione). Con calcoli FP 64 va 10-20 volte più lento. Le GPU non possono prorio fare i calcoli FP 64. In algoritmi anche semplici l'errore si propaga molto facilmente. TGanto è vero che spesso nei programmi C che faccio, uso i long double (80 bit), che non permettono le varie ottimizzazioni SSE...

xyz3D
17-02-2007, 16:00
Hanno rilasciato una versione liberamente scaricabile:

http://developer.nvidia.com/object/cuda.html

Trokji
17-02-2007, 18:05
che è questa versione liberamente scaricabile? nn ho capito.. cmq il fatto è che è ben diverso sapere a priori che si fa una cosa che si scarterà e fare una cosa che ha possibilità di essere utile.. per cui spero che chi diceva che folding eccetra sono inutili si sbagli..altrimenti esponete chiarimenti.. come detto se i risultati dei nostri calcoli vengono immediatamente cestinati, credo molti smetteranno di "scaccolare"

eta_beta
18-02-2007, 09:57
penso che formulano una ipotesi sviluppano un modello e lo danno in pasto alle macchine se i risultati coincidono con le ipotesi allora si conservano le ipotesi altrimenti si cestina