编程cuda内核时,整数的大小是多少

编程cuda内核时,整数的大小是多少,cuda,Cuda,在Cuda编程指南中,我似乎找不到这个简单问题的答案:当使用nvcc编译内核时,short、int、long和long-long所声明的整数大小是多少?它是否取决于我的主机体系结构,因此我应该使用int16\u t、int32\u t和int64\u t,或者它始终是一个固定大小?它取决于主机编译器。具体来说,nvcc对这些类型的定义将与主机编译器的表示一致 实际上,char、short和int数据类型在CUDA支持的所有平台上都具有可预测的大小(分别为8、16和32位)。但是,long的大小因

在Cuda编程指南中,我似乎找不到这个简单问题的答案:当使用nvcc编译内核时,short、int、long和long-long所声明的整数大小是多少?它是否取决于我的主机体系结构,因此我应该使用int16\u t、int32\u t和int64\u t,或者它始终是一个固定大小?

它取决于主机编译器。具体来说,
nvcc
对这些类型的定义将与主机编译器的表示一致


实际上,
char
short
int
数据类型在CUDA支持的所有平台上都具有可预测的大小(分别为8、16和32位)。但是,
long
的大小因平台而异。

您确定这是正确的吗?设备代码需要转换为ptx命令。如果这个过程是特定于主机体系结构的,那就太奇怪了。我查看了CUDA文档,没有找到任何内容。是的,设备数据类型必须与主机类型匹配,否则无法预测主机需要多少内存。谢谢。这正是我需要的。这是有道理的,因为如果我负责匹配主机代码和内核代码之间的类型,那将是一场噩梦。