SM L1高速缓存在同一流或空流上的所有操作之间无效,以保证一致性.但这并不重要,因为GPU上的L1缓存并非真正用于改善给定执行线程内的时间局部性.在大规模并行处理器上,重要的是并行空间局部性.这意味着您希望彼此相邻执行的线程访问彼此相邻的数据.
当执行高速缓存的内存加载时,它将针对单个warp完成,并且高速缓存存储由该warp中的线程访问的高速缓存行(理想情况下只有一行).如果下一个warp访问相同的缓存行,则缓存将命中并且延迟将减少.否则,将使用不同的缓存行更新缓存.如果内存访问非常分散,那么稍后warp可能会在重用之前从早期warp中逐出高速缓存行.
当另一个内核运行时,缓存中的数据不太可能是有效的,因为许多warp可能已经由该SM为前一个内核运行,因此如果它仍然存在则无关紧要.
| 归档时间: |
|
| 查看次数: |
757 次 |
| 最近记录: |