|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#21 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 958
|
no beh le command queue esistono anche in opencl 1.0. ma quindi cosa intendi quando dici che sono superiori a quelle di cuda? che in cuda non ci sono proprio? io in effetti non l'ho usato gli ho dato solo un'occhiata vaga mentre opencl lo sto usando per un progetto per l'università
|
|
|
|
|
|
#22 | |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
In cuda pensavo ci fosse, ma ho avuto una brutta sorpresa...
in pratica l'esecuzione di "un Kernel" è parallela al main thread si... Il problema è che se c'è una nuova chiamata ad un kernel prima che il primo finisca, a causa della mancanza di una command queue il main thread viene messo in attesa del primo, appena prova a lanciare il secondo. quindi fuori dalle app di esempio che fanno lavorare solo la GPU, ci si trova spessissimo in situazioni dove prima la CPU lancia un sacco di kernels e aspetta la GPU, quindi la GPU aspetta che la cpu finalizzi il frame e faccia quello che deve fare. Per cui il modello è sostanzialmente sincrono... mentre fai conto che nei videogiochi la GPU si trova a volte fino a 10 frame indietro rispetto alla CPU prima che venga imposta una sincronizzazione! Inoltre questo fatto lo conoscono in pochi, che io sappia c'è una sola implementazione di command queue in giro. In realtà ci sarebbero i Compute Streams nel CUDA SDK, che dovrebbero parallelizzare l'esecuzione di N kernels... il problema è che su qualsiasi cosa che non sia Fermi non fanno assolutamente nulla e tutti i kernels vengono lanciati nel main thread. E su Fermi se ne possono eseguire (al più, a discrezione dello scheduler) 4 , che comunque presentano lo stesso problema di quell'unico thread di prima, cioè 2 kernel consecutivi serializzano lo stream. Per cui OpenCL mi è interessata di botto con questa cosa. Quote:
La situazione è quantomeno confusa
Ultima modifica di Tommo : 24-06-2010 alle 12:19. |
|
|
|
|
|
|
#24 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Dagli tempo.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
|
#25 | |
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
Perche' dovrebbero essere compatibili a livello binario per essere uno standard ? OpenCL si occupa di altro, cosi' come lo standard C++ non si occupa della compatibilita' binaria degli eseguibili. Anzi col C++ e' forse peggio perche' esistono compilatori per la stessa architettura HW (x86) e la stessa piattaforma (win32) che generano codice oggetto con ABI diverse. Nonostante questo c++ e' uno standard.
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
|
|
|
|
|
#26 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Si beh però purtroppo mentre "Win e Linux" sono due cose piuttosto differenti dal punto di vista dell'utente, AMD e Nvidia producono schede video che fanno esattamente le stesse cose.
Detta in altra maniera, non è fattibile un eseguibile per Nvidia e uno per AMD in un'applicazione di massa... sia per la manutenzione che per l'utente finale che spesso non sa nemmeno che è una scheda video ( "è lo schermo?" (cit.) ) e va prepotentemente contro l'idea che ha fatto nascere OpenCL, cioè computing parallelo portabile e trasparente. All'inizio dicevano che avrebbe funzionato pure sui processori, figurarsi. A questo punto è ovvio che si fa prima a dire "nvidia only" e supportare il tool fatto meglio. Bah, speriamo che la situazione cambierà, OpenCL non mi dispiace |
|
|
|
|
|
#27 | |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Ho provato su Mac, com'è giusto che sia il kit offerto col sistema non fa alcuna distinzione tra Nvidia e AMD... magari le prestazioni non sono al top (58 gflops per lo nbody sample) ma trattandosi di una 8600GT su mac "non ufficiale" è notevole.
Come sarà che su Windows questa cosa è "tecnicamente impossibile"? EDIT: ah ecco Quote:
Che è sto LLVM che sembra saper fare di tutto?
Ultima modifica di Tommo : 25-06-2010 alle 00:35. |
|
|
|
|
|
|
#28 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
http://llvm.org/
Se non mi ricordo male sta per Low Level Virtual Machine. E' una macchina virtuale con molte funzionalità avanzate, e vuole rappresentare un pò lo stato dell'arte. Ci ho giocato un pò e mi sembra davvero un gioiellino. Oltretutto, i messaggi d'errore di clang (il progetto principale a contorno, C su LLVM in pratica) sono spettacolari
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
|
|
|
|
|
#29 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
|
#30 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
http://blog.llvm.org/2010/04/amazing...-recovery.html
Notare che ti sottolinea l'errore in ascii-art style e ti dice "did you mean X?" con la correzione. Spettacolo. C'è un confronto diretto tra clang e gcc... la differenza si nota!
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
|
|
|
|
|
#31 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
|
#32 |
|
Senior Member
Iscritto dal: Nov 2007
Messaggi: 488
|
Ma visto che mi pare di capire che qui c'è gente che usa OpenCL... Usate Visual Studio 2010 per sviluppare? Perchè io non riesco a far andare l'intellisense nei file .cl, faccio tutto quello che dice la guida(stessa roba col'2008 che però mi funziona) ma va solo per i file .cl che sono GIA' presenti nei progetti dell'SDK, se anche ne aggiungo uno ad un esempio già esistente non mi funziona, ma solo per il file nuovo. Vi viene in mente niente?
Grazie. p.s. La configurazione l'ho impostata come per i file già presenti. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:45.




















