【发布时间】:2015-01-06 05:28:42
【问题描述】:
我已经阅读了有关合并内存访问 (In CUDA, what is memory coalescing, and how is it achieved?) 及其性能重要性的信息。但是,当发生非合并内存访问时,我不知道典型的 GPU 会做什么。当一个线程“请求”位置 P 中的一个字节而其他线程请求远处的某个东西时,GPU 会为该线程获得一个完整的 128 字节块?如果读数对齐,我可以“免费”读取其他 127 个字节吗?
【问题讨论】:
-
@Robert 的回答很到位。真正简短的答案是:非合并读取会被序列化,内核只有在它们全部完成后才会继续。因此,您可以看到合并读取的好处!比最坏情况快 32 倍。