【发布时间】:2013-05-16 17:22:28
【问题描述】:
我想使用cudaMemcpy 创建一个向量 (1,...,1),这样我就可以对矩阵的行/列求和或使用 CUBLAS 将向量添加到矩阵中。代码会在不同的平台上运行,所以
- 如何保证始终使用 4 字节浮点数?
- GPU 上是否有针对数据类型的
sizeof函数,或者设备是否始终使用与主机相同的数据类型规范?
【问题讨论】:
我想使用cudaMemcpy 创建一个向量 (1,...,1),这样我就可以对矩阵的行/列求和或使用 CUBLAS 将向量添加到矩阵中。代码会在不同的平台上运行,所以
sizeof 函数,或者设备是否始终使用与主机相同的数据类型规范?【问题讨论】:
首先回答您的第二个问题,设备始终使用与主机编译器相同的数据类型规范。所以你可以在主机上使用sizeof(...)来确定相关的大小。如果不是这样,很多东西都会被破坏。
那么,为了回答您的第一个问题,我们只需要问一下,在 CUDA 支持的主机端编译器中,float 表示总是 32 位吗?答案是yes。
顺便说一句,请注意,大多数平台通常都是这样。查找具有 32 位浮点数以外的系统 is difficult。但据我所知,没有一般的 C 或 C++ 要求 float 为 32 位。其他人可能会证明我错了。
【讨论】: