本篇主要介绍CUDA编程中的Memory coalescing概念。翻译整理自 Programming Massively Parallel Processors 4thmemory coalescing就是内存合并,通常用于高效地在全局内存、共享内存、寄存器之间传输数据。CUDA kernel 性能的一个最重要因素是访问全局内存中数据的速度,有限的带宽很可能成为瓶颈。毕竟CUDA kernel一下子要处理很多数据,数据从哪来,得先有数据才能算,如何高效传输数据当然就比较重要了。这里聊到的memory coalescing通常与tile技术结合使用,从而高效利用带宽。全局内存 global memory 的特性Global memory 是用 DRAM 实现的。数据位存储在小电容中的 DRAM 单元中,其中电荷的存在或缺失区分了 1 和 0 值。从 DRAM 单元读取数据需要小电容使用其微小的电荷来驱动连接到传感器的高电容线路,并触发传感器的检测机制,以确定电容中是否有足够的电荷作为 “1”。这
………………………………