Le moderne GPU contengono comandi cambio?


8

Sono consapevole che la maggior parte delle GPU moderne, sebbene progettate per il virgola mobile, sono più o meno equivalenti in termini di prestazioni intere in questi giorni, con alcuni avvertimenti come la mancanza di una fusione multipla aggiunta. Non sono sicuro di come questo si applichi alle operazioni a turni. Sto facendo Marching Cubes su GPU, inizialmente scrivendo una posizione compressa a 32 bit per ciascun cubo di superficie, quindi scompattando questi in un passaggio successivo ai vertici effettivi in ​​quel cubo, in questo modo:

ivec3 unpackedPos = ivec3( packedPos >> 20 & 0x3FF,
                         packedPos >> 10 & 0x3FF,
                         packedPos & 0x3FF);

Mi è appena venuto in mente di chiedermi se le unità shader hanno dei barili in questi giorni? Sto facendo 2 turni qui o 30?

EDIT >> Sono un idiota ... Grazie per le risposte ragazzi, utile sapere, ma ho sbagliato tutto. Dovrei semplicemente usare il formato di trama RGB10_A2UI, quindi impacchettare / decomprimere con una singola immagine carica / memorizza istruzioni invece di fare casini con bit-shift.

RE_EDIT >> O no ... Questo metodo sembra funzionare su scatole rosse ma non su quelle verdi, quindi è tornato ai bit-shift.


Gli shifter a 24 bit sono usati in virgola mobile a precisione singola per allineare le mantisse, quindi il compilatore potrebbe generarne alcuni, ma non credo che vedrai 30.
Daniel M Gessel

Risposte:


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.