【问题标题】:Are floats guaranteed to be 4 bytes with CUDA?使用 CUDA 是否保证浮点数为 4 个字节?
【发布时间】:2013-05-16 17:22:28
【问题描述】:

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

  • 如何保证始终使用 4 字节浮点数?
  • GPU 上是否有针对数据类型的sizeof 函数,或者设备是否始终使用与主机相同的数据类型规范?

【问题讨论】:

    标签: cuda gpgpu


    【解决方案1】:

    首先回答您的第二个问题,设备始终使用与主机编译器相同的数据类型规范。所以你可以在主机上使用sizeof(...)来确定相关的大小。如果不是这样,很多东西都会被破坏。

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

    顺便说一句,请注意,大多数平台通常都是这样。查找具有 32 位浮点数以外的系统 is difficult。但据我所知,没有一般的 C 或 C++ 要求 float 为 32 位。其他人可能会证明我错了。

    【讨论】:

      猜你喜欢
      • 2016-10-29
      • 2017-03-25
      • 2014-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-11
      相关资源
      最近更新 更多