c++ - CUDA 中的一个字符实际占用多少内存?

标签 c++ c cuda

在我的 CUDA 内核中,我需要很多索引,所有索引的范围都小于 256。为了节省内存和内存带宽,我打算将这些索引放在 char 中而不是 int.

这实际上会节省我的内存吗?还是 CUDA 会自动为一个 char 使用 32 位或 64 位内存位置?

(内存合并在这里不是问题,因为所有内核的索引都相同。)

最佳答案

字符本身将占用一个字节。 CUDA 并不是一个奇怪的系统,所以它是常规的 8 位字节。这是否节省取决于具体情况。如果数组中有这些字符索引,它们之间将没有填充,这样可以节省时间。如果每个字符都是结构的一部分并夹在两个整数之间,则您将具有填充(CUDA 对齐整数)。

关于c++ - CUDA 中的一个字符实际占用多少内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29227304/

相关文章:

c++ - 定义 NDEBUG 时删除断言是否在内联函数之前发生?

C++ std::vector::data 为什么返回的指针索引和 vector 索引不匹配?

c - 将 '\0' 添加到非空终止 "string"的末尾

c++ - Nvidia Nsight - 如何连接到本地主机?

c++ - C++ 中的嵌套 Lambda 捕获

c++ - 定义清晰但角度变化的图像的图像识别

GCC 可以不提示 undefined reference 吗?

在 C 中导致段错误 |堆栈虚拟内存

c++ - 外部函数调用期间指针地址发生变化

ubuntu - 为 Linux : Could NOT find CUDA 安装 CUDA