Quantcast
Channel: Commenti a: AMD e NVidia: l’evoluzione della specie (parte 1)
Viewing all articles
Browse latest Browse all 10

Di: Pleg

$
0
0

L’organizzazione delle nuita’ fp64 e’ cambiata in Kepler. In Fermi c’erano due tipi di unita’, una solo fp32 e una fp32/64, dove la 64 riusava parti della 32. In Kepler invece c’e’ una unita’ fp32 e una fp64, sono completamente separate, quindi tutta la capacita’ fp64 che togli e’ spazio risparmato netto nei cuda core.

Non so dirti esattamente perche’ sia stato fatto cosi’. Immagino che si perda un po’ di area (non so dirti quanto: ci sono molti fattori che entrano nel calcolo, tra cui l’architettura dei sommatori, il routing dei bus, il posizionamento dei registri, il floorplanning, gli overhead di clock e power gating, eccetera), ma ci sono almeno due vantaggi che mi vengono in mente:
* un’unita’ mista fp32/64 potrebbe essere piu’ difficile da progettare in modo efficiente rispetto ad una pura fp32 e una pura fp64: l’unita’ mista potrebbe avere dell’overhead a causa delle parti che devono essere utilizzate in un caso e non nell’altro
* un’unita’ mista e’ piu’ difficile da spegnere tramite clock gating, perche’ dovresti spegnere solo una parte della ALU (in fp32, la parte necessaria a fp32 deve funzionare mentre il resto dovrebbe essere gated, potrebbe non essere possibile farlo in modo efficiente); se hai due unita’ distinte e’ molto piu’ semplice fare clock-gating, ciclo di clock per ciclo di clock: quando il dispatcher manda fuori una operazione fp32 puoi fare clock gating dell’intera unita’ fp64 per quel ciclo di clock e viceversa, e’ molto piu’ facile da gestire e riduce il consumo di energia (e quindi aumenta le prestazioni per Watt)


Viewing all articles
Browse latest Browse all 10

Latest Images

Trending Articles