您好我想在最大浮点数中初始化一个设备变量,到目前为止我这样做:
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
。浮点数的最小值和最大值是否有相应的首字母缩写词?
感谢。
答案 0 :(得分:2)
这不正确。 cudaMemset
设置字节,就像memset
。
您无法使用float
合理地初始化cudaMemset
数量。
改为使用cudaMemcpy
。
您的cudaMalloc
操作也只分配1个字节。