【发布时间】:2014-12-12 23:06:28
【问题描述】:
有没有办法将双数组从主机复制到设备上的浮点数组。我不担心精度损失? 我有下一个案例:
double* host = new[N];
... // Perform some calculations on host array
float* device;
cudaMalloc( (void**) &device, N * sizeof(float) );
cudaMemcpy( device, host, N * sizeof(float), cudaMemcpyHostToDevice);
在尝试上面编写的代码时,我收到错误无效参数。 除了将主机数组更改为浮动之外,还有其他解决方案吗?
【问题讨论】:
-
我不确定你是否理解 memcpy 或 cudaMemcpy 的作用。它在不考虑浮点或双精度的情况下进行字节到字节的二进制复制。因此,即使您运行代码并且没有收到任何错误,设备向量中也会有垃圾。
标签: cuda