交错寻址法减少并行Bank冲突

Bank conflict in parallel reduction using interleaved addressing method

我正在阅读 Mark Harris 关于在 CUDA 中优化并行缩减的演讲。这是我在其中遇到问题的幻灯片:

说这个方法存在bank冲突问题。但为什么?所有线程都在访问位于不同组中的两个连续的内存单元。他们都没有同时访问特定的内存单元。

此演示文稿可追溯到 CUDA 的早期阶段,适用于第一代硬件。

该硬件在 8 个 32 位库中安排了共享内存。因为共享数组中每八个条目都驻留在同一个库中,所以在该缩减树的多个级别存在库冲突。

此问题已在较新的硬件中得到解决,其中银行的数量已扩展到 32,这意味着不会发生此类银行冲突。