根据cuda对齐256字节严重吗?CUDA内存分配保证与至少256个字节对齐。
为什么会这样?256字节比任何数字数据类型都要大得多。它可能是一个向量的大小,但GPU不需要加载/存储与整个向量的大小对齐,事实上,它们甚至支持聚集/分散,其中每个单独的元素都可以放置在元素大小的倍数的任何存储器地址。
256字节对齐的作用是什么?
为什么会这样?256字节比任何数字数据类型都要大得多。
好吧,我相信有多个原因(例如,管理更少、更大的分配更容易(,但关于您的具体观点:不要考虑数字数据类型的单个值-考虑完整的warp值:如果sizeof(float)
是4,那么warp值的float
s就是32 * 4 = 128
字节。如果它是一个double
或long int
(64位int(,那么就得到了32 * 8 = 256
。
注意:warps不需要从内存中对多个值进行这种联合读取。一个线程可以读取一个未对齐的字节,这将起作用。但是,如果读取模式不合并为读取连续的、对齐的块(通常为128字节或32字节(,则性能将受到影响;另请参阅:
在CUDA中,什么是内存聚合,它是如何实现的?