urano88 ha scritto:
Cercando di fare chiarezza hai scritto cose profondamente sbagliate
La prima ad uscire con schede multiple è stata nvidia con lo SLI, seguita poi da ati con il crossfire.. e poi tri-SLI e quad-SLI... praticamente in un pc c'erano solo schede grafiche!!
Ora questa possibilità, sebbene ancora prevista e supportata da molte schede madri, è stata messa un po' da parte. La nuova NVIDIA GeForce GTX 690 contiene 3072 core. La diretta concorrente: AMD Radeon™ HD 7950 ne ha 1792, INTEGRATI NELLA GPU!!. Uno si domanda: ma cosa servono tutti questi core, non verranno mai usati.. FALSO! Le operazioni grafiche come il calcolo del colore dei singoli pixel sono quanto di più standard e parallelizzabile esista, per questo il numero di core nelle GPU è esploso negli ultimi anni.
D'altro canto negli ultimi 10 anni si è passati a schermi da risoluzioni medie di 800x600 a 1920x1080, con applicazioni grafiche sempre più elaborate e come pensi si possano pilotare tutti quei pixel?
Quello che davvero differenzia nvidia da amd (ex ati) è CUDA, in parole povere alcune funzioni compatibili con C++ che permettono di spostare l'esecuzione di un normale programma dalla CPU alla GPU, sfruttando le potenzialità che generalmente sono dedicate alla grafica.
Se trovi un programma di rendering video scritto con il supporto CUDA e fai girare sulla scheda di cui sopra ci mette davvero un centesimo del tempo rispetto al più potente I7 o FX attualmente sul mercato. Non a caso molti dei servizi di calcolo stanno passando proprio a GPU nvidia.
E' evidente che non hai ben chiaro come si sviluppi un processo di calcolo parallelo e delle istruzioni a basso livello (che era il discorso che stavo facendo io, ben lontano dal "c++") necessarie per la loro realizzazione. Occhio ad usare i termini corretti. Un "radeonTM core" che svolge un'operazione "radeon" è lontana da un core CPU. Per quanto mi riguarda un "radeonTM" può essere un comunissimo sommatore per cui è chiaro che preferisco avere una cascata di sommatori ad un ciclo con un unico sommatore per fare una complessa elaborazione; ma non vedo sinceramente il punto del discorso. Non ho mai detto che un i7 è meglio di un FX o che un FX sia più veloce del crossing tra due schede. Che centra tutto questo con quello che ho scritto?
Poi, che si chiami CUDA, o Crossfire, tutto sta a trovare sw adatto e che supporti tale funzione. Poi, non so a che livello sia arrivato l'openGL e openCL (sono rimasto al 4), ma i multicoring oltre il parallelismo fisico penso sia molto più recente; per questo motivo ho scritto 2x2. Sinceramente non me ne frega nulla di come ATI o nVidia gestiscano il parallelismo con le loro schede. Alla loro base c'è un'architettura sistolica con tutti i pro ed i contro del caso.
EDIT: leggendo sulla pagina wiki, giusto per capire cosa fossero i "radeonTM" core... praticamente shaders: microarchitetture di calcolo specializzate. Fanno il pipeling di texture e shading per ogni pixel, se serve. Sono sommatori e moltiplicatori; non ne dovrebbero servire più di 2 o 3 per ogni pipeline (poi cosa ci sia realmente sotto solo ATI e nVidia lo sanno)