我似乎无法在Cuda编程指南中找到这个简单问题的答案:用nvcc编译内核时,short,int,long和long long声明了什么大小的整数?它是否依赖于我的主机架构,所以我应该使用int16_t,int32_t和int64_t,还是总是固定大小?
答案 0 :(得分:11)
这取决于主机编译器。具体来说,nvcc
对这些类型的定义将与主编译器的表示一致。
实际上,char
,short
和int
数据类型在CUDA支持的所有平台上都具有可预测的大小(分别为8位,16位和32位)。但是long
的大小因平台而异。