Quante "unità parallele" ha una GPU?


8

Mi piacerebbe sapere quante unità parallele per l'elaborazione dei vertici ha una GPU.

Questa pagina di Wikipedia fornisce un GFLOPS e una velocità di clock, ad esempio per il Radeon 5850 "Broadway PRO", ottieni 1000 GFLOPS. Supponiamo che eseguire uno shader di vertice sia 100 flop, quindi ciò significa che puoi elaborare 1000e9 / 100 = 10e9 vertici al secondo.

Esiste un numero pubblicato dal produttore del numero di unità di elaborazione parallele o un modo per conoscere quel numero?


8
Varia da ciascun modello di carta a quello successivo. Qual è l'obiettivo di questa domanda?
Attaccando

Sono d'accordo con AttackingHobo, è irrilevante il numero di core perché ogni chip ha una quantità diversa e inoltre funzionano in modo diverso, quindi in un modello 30 core potrebbero essere più potenti di uno con 60 core. Inoltre, dovrai fare riferimento a ciascuna specifica di chip del produttore se non ti fidi delle informazioni presenti su Wikipedia (che è probabilmente accurata)
Pablo Ariel,


Risposte:


27

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.


Grande. Ho trovato anche questo articolo sull'architettura GPU, ma dove hai trovato i conteggi delle unità in virgola mobile? Questo è quello che stavo cercando.
Bobobobo,

@bobobobo: era nella pagina Wikipedia a cui ti sei collegato. Inoltre, l'articolo GPU Gems è specifico per la linea 6-7 di GeForce. Ha anche 6 anni.
Nicol Bolas,

È interessante che pronunci SIMD con le sue singole lettere. VLIW è un boccone confuso da qualcosa di diverso dalle sue lettere, ma la maggior parte (tutti, in effetti) i programmatori di sistemi con cui ho lavorato dicono "sim dee".
Andon M. Coleman,

@NicolBolas, amico, 80 istruzioni simultanee? Quel frigging batte ancora i soliti 8 o 16 ottenuti dalla CPU.
Pacerier,

3

Non capisco, cosa intendi per unità di elaborazione parallela? unità shader? Poiché oggigiorno una ppu e una gpu sono sostanzialmente la stessa cosa, intendo la ppu È la gpu se stiamo parlando di ati radeon.

Suppongo che intendi le unità funzionali, devi leggere il Config corecampo in wikipedia:

Config Core – The layout of the graphics pipeline, in terms of functional units. Over time the number, type and variety of functional units in the GPU core has changed significantly; before each section in the list there is an explanation as to what functional units are present in each generation of processors.

quindi per il radeon dici che avrebbe:

Unified Shaders (Vertex shader/Geometry shader/Pixel shader) : Texture mapping unit : Render Output unit

che per Broadway Pro è: 800:40:16

questo significa che ha 800 unità shader, 40 unità di mappatura delle trame e 16 unità di output di rendering.

EDIT: Beh no, sembra che l'unità di elaborazione parallela sia applicata anche a ciò che intendi, quindi suppongo che sia un po 'confuso chiamarli in quel modo. Le definirei unità shader o core simd.


Whaats a PPU ??
Pacerier,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.