这是一个关于离散 GPU 的问题,主要是最近的 GPU(NVIDIA Kepler、Maxwell;以及 AMD Kaveri 和 R290 中的任何东西)。
将其他未缓存的元素从...加载到寄存器中需要多少时间
- 全局设备内存?
- 全局内存 L2 缓存?
- 纹理缓存?
- 常量缓存?
- 每核一级缓存?
- (每核共享内存 - 应该与 L1 缓存相同。)
到某个地方的表格的链接会很棒,一个解释就可以了......
这是一个关于离散 GPU 的问题,主要是最近的 GPU(NVIDIA Kepler、Maxwell;以及 AMD Kaveri 和 R290 中的任何东西)。
将其他未缓存的元素从...加载到寄存器中需要多少时间
到某个地方的表格的链接会很棒,一个解释就可以了......
它因 gpu、代、其集成方式(如 pcie)和其他方面而异。我经常使用 ASM,这些是我使用的数字:
- 全局设备内存?大约 300-800 个时钟。(安装在主板上的 GPU,如使用主存的笔记本电脑的内存较慢)
- 全局内存二级缓存?大约 100 个时钟周期
- 纹理缓存?猜测 50-100 个时钟周期
- 恒定缓存?如果它在缓存中,则大约 1-3 个时钟周期,或者 L2 缓存(约 50-100 个时钟)甚至全局内存 300-500 个时钟。(取决于它是缓存命中还是未命中)
-每核(即 Kepler/Maxwell 中的每 SMX/SMM)L1 缓存?大约 1-3 个时钟周期
-Per-core(即 Kepler/Maxwell 中的 Per-SMX/SMM)共享内存?大约 1-3 个时钟周期
我还做了一些在线搜索,看看我有多接近并找到了这个。数字和我的不一样。http://lpgpu.org/wp/wp-content/uploads/2013/05/poster_andresch_acaces2014.pdf 我认为由于多线程,它所花费的实际时间与程序员应该使用的时间是两个不同的数字。希望这可以帮助。