在我的 CUDA 内核中,我需要很多索引,所有索引的范围都小于 256。为了节省内存和内存带宽,我打算将这些索引放在 char
中而不是 int
.
这实际上会节省我的内存吗?还是 CUDA 会自动为一个 char
使用 32 位或 64 位内存位置?
(内存合并在这里不是问题,因为所有内核的索引都相同。)
最佳答案
字符本身将占用一个字节。 CUDA 并不是一个奇怪的系统,所以它是常规的 8 位字节。这是否节省取决于具体情况。如果数组中有这些字符索引,它们之间将没有填充,这样可以节省时间。如果每个字符都是结构的一部分并夹在两个整数之间,则您将具有填充(CUDA 对齐整数)。
关于c++ - CUDA 中的一个字符实际占用多少内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29227304/