【发布时间】:2021-02-28 19:26:48
【问题描述】:
根据cuda alignment 256bytes seriously? CUDA 内存分配保证至少与 256 字节对齐。
为什么会这样? 256 字节比任何数字数据类型都要大得多。它可能是向量的大小,但 GPU 不需要加载/存储与整个向量的大小对齐,实际上它们甚至支持收集/分散,其中每个单独的元素都可以放置在任何内存地址这是元素大小的倍数。
256 字节对齐有什么用途?
【问题讨论】:
-
如您链接的问题中所示,CUDA 设备具有纹理对齐要求(还有表面对齐要求等)。当我在 T4 上运行
deviceQuery时,它报告了 512 字节的纹理对齐要求。因此,提供这种分配粒度的一个原因是为了支持这些需求。如果您问“纹理系统需要对齐 512 字节是什么?”我将无法回答。然而,纹理有时具有空间缓存行为,并且空间缓存可能比单一类型对齐更高。
标签: cuda gpu gpgpu memory-alignment