【发布时间】:2015-03-18 05:01:43
【问题描述】:
我阅读了一些关于 CUDA 编程的教程。他们中的大多数都提到“如果半扭曲的ALL线程访问相同的地址,则没有银行冲突(广播)”。我的问题是,部分相同的地址访问是否会在 CUDA 的共享内存中引起银行冲突?
假设每个 warp 有 32 个线程,那么 half-warp 将是 16 个线程。
(1)如果所有16个线程都访问Bank0上的同一个地址A,则广播后不会发生bank冲突。
(2) 但是如果 Thread-{0,1,...,6,7} 想访问 Bank0 上的地址 A 而 Thread-{8,9,...,14,15} 想访问怎么办? Bank1 上的地址 B?我想知道是否会有银行冲突。由于NOT所有half-warp线程都访问同一个地址(只有half-half-warp访问同一个地址),所以会出现bank冲突。
如果我的理解有误,请纠正我。非常感谢!
【问题讨论】:
标签: cuda