Supponiamo che eseguire uno shader di vertice sia 100 flop, quindi ciò significa che puoi elaborare 1000e9 / 100 = 10e9 vertici al secondo.
No, sicuramente no.
Fondamentalmente, dovresti considerare sospetto qualsiasi calcolo della velocità di esecuzione di qualsiasi codice basato esclusivamente sul conteggio "FLOPS". In effetti, in genere è meglio ignorare completamente FLOPS.
Non hai definito il termine "unità parallela"; senza quella definizione, potremmo solo indovinare ciò che desideri.
Prendi la Radeon 5870. Ha 1600 unità in virgola mobile. Ciò significa che, per ogni ciclo, può eseguire contemporaneamente 1600 operazioni scalare in virgola mobile. Tuttavia, ogni codice operativo VLIW funziona su registri matematici vettoriali a 5 vie. Quindi la minima granularità possibile del codice reale è 1600/5, o 320 (nota: questa è una grande semplificazione). Sono 320 discussioni.
Tuttavia , non è così che funziona. Non hai 320 percorsi separati di esecuzione in corso. Non puoi avere 320 diversi pezzi di codice in esecuzione su 320 unità diverse. Vedete, i VLIW a 5 vie sono essi stessi raggruppati in core SIMD a 4 vie. Ogni SIMD può avere il proprio percorso di esecuzione e il proprio codice sorgente. Ogni VLIW all'interno di un core SIMD può avere dati separati, in modo che calcolino valori separati. Ma ogni VLIW all'interno di un core SIMD esegue le stesse istruzioni in blocco con gli altri VLIW in quel core.
Quindi davvero, hai solo 320/4 o 80 thread totali. Ma di nuovo, dipende dal tipo di "unità parallela" di cui stai parlando. Tecnicamente, 1600, 320 e 80 sono tutte risposte legittime.
E questo è solo per un'architettura specifica . La linea Fermi di NVIDIA (GeForce 4xx e successive) utilizza un'architettura molto diversa. La linea Cayman di ATI (Radeon 69xx) cambia i VLIW a 5 vie in VLIW a 4 vie. La loro prossima architettura potrebbe avere anche alcune differenze significative.
Senza sapere cosa stai cercando, non c'è proprio modo di rispondere alla domanda.