使用CUDA浮动保证是4个字节吗?

时间:2013-05-16 17:22:29

标签: cuda gpgpu

我想使用cudaMemcpy创建一个向量(1,...,1),这样我就可以对矩阵的行/列进行求和,或者使用CUBLAS将向量添加到矩阵中。代码将在不同的平台上运行,所以

  • 我怎样才能保证我总是会使用4字节浮点数?
  • GPU上的数据类型是否有sizeof函数,或者设备是否始终使用与主机相同的数据类型规范?

1 个答案:

答案 0 :(得分:5)

首先回答第二个问题,设备始终使用与主机编译器相同的数据类型规范。因此,您可以在主机上使用sizeof(...)来确定相关尺寸。如果情况并非如此,很多事情都会被打破。

要回答您的第一个问题,那么,我们只需要在支持的CUDA 主机端编译器中询问float表示总是32位吗?答案是yes

另外,请注意,对于大多数平台而言,这通常是正确的。查找不是32位浮点数is difficult的系统。但据我所知,没有通用的C或C ++要求浮点数为32位。别人可能证明我错了。