我阅读了一些关于CUDA编程的教程.他们中的大多数都提到"如果半经线的所有线程访问相同的地址,则没有银行冲突(广播)".我的问题是,部分相同的地址访问是否会导致CUDA共享内存中的银行冲突?
假设每个warp有32个线程,那么half-warp将是16个线程.
(1)如果所有16个线程都访问Bank0上的相同地址A,则自广播以来不会发生银行冲突.
(2)但是如果Thread- {0,1,...,6,7}想要访问Bank0上的地址A而Thread- {8,9,...,14,15}想要访问地址B怎么办? BANK1?我想知道是否会有银行冲突.由于并非所有半warp线程都访问相同的地址(只有半半warp访问相同的地址),因此会出现银行冲突.
如果我的理解是错误的,请纠正我.非常感谢你!
| 归档时间: |
|
| 查看次数: |
52 次 |
| 最近记录: |