我想知道是否可以编写一个在我的程序Cuda / Optix中计算的变量的文本文件。也就是说,变量在我的.cu文件中,因此不能由CPU写入。
发布于 2012-07-10 15:55:52
据我所知,从CUDA内核执行文件I/O是不可能的。您需要使用cudaMemcpy并将数据复制回主机内存,然后可以从那里将值写入文件。
发布于 2012-07-10 16:00:59
我没有使用Optix的经验,但据我所知,无法从CUDA写入文件。您应该将值下载到主机,以便将它们存储到文件中。
您可以使用cudaMemcpy( dstPointer, srdPointer, size, cudaMemcpyDeviceToHost);将数据从设备(GPU)复制到主机(CPU)。请看:NVIDIA CUDA Library: cudaMemcpy请注意,您的dstPointer必须足够大才能存储数据!
发布于 2012-07-11 01:37:30
正如前面的答案所暗示的,通过CUDA内核将数据写入文件是不可能的。如果您的代码涉及多个循环,您可能会考虑程序在每个循环上传输和写入数据的速度有多慢;如果是这样的话,您应该在给定数量的循环之后进行数据传输。换句话说,在多个循环的块中编写文件,而不是在每个单独的循环中。
https://stackoverflow.com/questions/11408817
复制相似问题