Come funziona la cache L2 in GPU con architettura Kepler in termini di località di riferimento? Ad esempio, se un thread accede a un indirizzo nella memoria globale, supponendo che il valore di tale indirizzo non sia nella cache L2, come viene memorizzato il valore nella cache? È temporale? O ci sono altri valori vicini di quell'indirizzo portati anche alla cache L2 (spaziale)?cache L2 in Kepler
L'immagine sottostante è tratta dal whitepaper NVIDIA.
cache L2 è stato introdotto con calcolo capacità 2.0 o superiore e continua ad essere supportato su architettura Kepler. La politica di memorizzazione nella cache utilizzata è LRU (utilizzata meno di recente) e l'intenzione principale era quella di evitare il collo di bottiglia della larghezza di banda della memoria globale. L'avevo letto dal libro "Cuda Application design and development". Non sono sicuro che questo risponda alla tua domanda. –
La cache L1 ha una dimensione di cacheline di 128 byte. La cache L2 ha una dimensione di cacheline di 32 byte. Quindi una miss L2 attiva un carico di 32 byte. Kepler normalmente non ha L1 abilitato per i carichi globali ordinari. –