0

我在 CUDA 编程指南中读到,CUDA 设备中的全局内存是通过 32、64 或 128 位的事务访问的。知道了这一点,比如说,在内存中将一组 float4(128 位)放在一起有什么好处?据我了解,无论float4是分布在内存中还是按顺序分布,事务的数量都是一样的。还是将所有访问合并到一个巨大的交易中?

4

1 回答 1

3

合并是指将来自warp中各个线程的内存请求组合成单个内存事务。

单个内存事务通常是一个 128字节的高速缓存行,因此它将由八个128(例如float4)数量组成。

所以,是的,有多个线程请求相邻的 128 位数量是有好处的,因为这些仍然可以合并成单个(128 字节)高速缓存行请求到内存。

于 2013-08-07T02:11:45.047 回答