在极值中初始化float变量

时间:2013-11-05 20:10:59

标签: c++ cuda gpu

您好我想在最大浮点数中初始化一个设备变量,到目前为止我这样做:

float *max;
checkCudaErrors(cudaMalloc(&max, 1));
checkCudaErrors(cudaMemset(max, std::numeric_limits<float>::max(), 1));

分别为最小浮点数

float *min;
checkCudaErrors(cudaMalloc(&min, 1));
checkCudaErrors(cudaMemset(min, std::numeric_limits<float>::min(), 1));

这是使用#include <limits>完成的。没有任何包含,还有其他替代方式吗?例如,我在page中看到uchar具有最大值0xff。浮点数的最小值和最大值是否有相应的首字母缩写词?

感谢。

1 个答案:

答案 0 :(得分:2)

这不正确。 cudaMemset设置字节,就像memset

您无法使用float合理地初始化cudaMemset数量。

改为使用cudaMemcpy

您的cudaMalloc操作也只分配1个字节。