Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

L2 cache in NVIDIA Fermi

When looking at the name of the performance counters in NVIDIA Fermi architecture (the file Compute_profiler.txt in the doc folder of cuda), I noticed that for L2 cache misses, there are two performance counters, l2_subp0_read_sector_misses and l2_subp1_read_sector_misses. They said that these are for two slices of L2.

Why do they have two slices of L2? Is there any relation with the Streaming Multi-processor architecture? What would be the effect of this division to the performance?

Thanks

like image 615
Zk1001 Avatar asked Nov 04 '22 16:11

Zk1001


2 Answers

I don't think there is any direct relation with the streaming multiprocessor.

I just think that slice is equivalent of bank memory.

Just sum the values of the two to get the "total" L2 read misses.

like image 74
fabrizioM Avatar answered Nov 09 '22 12:11

fabrizioM


The CUDA C Programming Guide describes the architecture of the multiprocessor. The document states that each Fermi multiprocessor has two warp schedulers. I assume that the L2 cache is split to allow concurrent caching.

I haven't looked at L2 read misses for the Kepler architecture, but Kepler multiprocessors have four warp processors. So, this assumption may be validated if there are four performance counters reported for Kepler compilation.

like image 32
Thomas Ryan Stovall Avatar answered Nov 09 '22 12:11

Thomas Ryan Stovall