【发布时间】:2012-12-14 12:18:44
【问题描述】:
在“CUDA C 编程指南 5.0”中,p73 (also here) 说“驻留在全局内存中或由驱动程序或运行时 API 的内存分配例程之一返回的变量的任何地址始终至少对齐256 字节”。我不知道这句话的确切含义。谁能给我举个例子?非常感谢。
一个衍生问题: 那么,如何分配基本元素(如 int)或自定义元素的一维数组呢?数组的起始地址会是256B的倍数,而数组中每个元素的地址不一定是256B的倍数?
【问题讨论】:
-
任何 cudaMalloc 的起始地址都是 256 的倍数。256 是十六进制的两个符号,它们在 addrexx 中为零;所以你可以得到像 0x0456ad00 但不是 0x0456ad80 这样的地址。