在查看NVIDIA Fermi架构中的性能计数器名称(cuda的doc文件夹中的Compute_profiler.txt文件)时,我注意到对于L2缓存未命中,有两个性能计数器,l2_subp0_read_sector_misses和l2_subp1_read_sector_misses。他们说这些是两片L2。
为什么他们有两片L2?与流式多处理器架构有什么关系吗?这种划分对表现的影响是什么?
由于
答案 0 :(得分:1)
我认为与流式多处理器没有任何直接关系。
我认为切片相当于银行存储器。
只需对两者的值求和,即可获得“总”L2读取失误。
答案 1 :(得分:1)
CUDA C编程指南描述了多处理器的体系结构。该文档指出每个Fermi多处理器都有两个warp调度程序。我假设L2缓存被拆分以允许并发缓存。
我没有看过Kepler架构的L2读取错误,但Kepler多处理器有四个warp处理器。因此,如果为Kepler编译报告了四个性能计数器,则可以验证此假设。