Ho letto che CUDA può leggere dalla memoria globale 128 byte alla volta, quindi ha senso che ogni thread in un ordito possa leggere/scrivere 4 byte in un modello coalescente per un totale di 128 byte.Perché i tipi di vettore CUDA (int4, float4) sono più veloci?
Lettura/scrittura con i tipi di vettore come int4 e float4 è faster.
Ma quello che non capisco perché questo è. Se ogni thread nel warp richiede 16 byte e solo 128 byte possono spostarsi sul bus alla volta, da dove viene il guadagno di prestazioni?
È perché ci sono meno richieste di memoria che accadono, cioè si dice "prendi 16 byte per ogni thread in questo warp" una volta, opposto a "prendi 4 byte per ogni thread in questo ordito" 4 volte? Non riesco a trovare nulla nella letteratura che dice il motivo esatto per cui i tipi di vettore sono più veloci.
Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il link per riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. – Luke
Grazie, l'ho appena fatto. –