我正在研究Cuda C ++。但是我在使用CUDA读取和写入文件时遇到了问题。
如何在Cuda C ++中实现文件输入输出流程?
我想将 .obj 文件读入我的Cuda内核。
我该怎么办?
答案 0 :(得分:12)
使用普通主机(C ++)文件操作读取文件。然后,如果您需要,可以使用普通cudaMalloc
和cudaMemcpy
操作将数据传输到设备。
您将无法直接在CUDA C ++中实现文件I / O,因为没有此API,并且GPU不直接连接到文件系统。您必须通过操作系统获取文件系统服务。
答案 1 :(得分:5)
要让你的文件进入CUDA内存空间,你必须在为信息分配内存后使用CUDA memcpy命令(cudaMalloc(你的,malloc,params,这里)和cudaMemcpy(你的,memcpy,params)也是如此,这里)你加载解析并在内存中存储文件,就像在C ++中一样。
您可以尝试使用cuda系统直接访问该文件,但这是一个我不会羡慕尝试编写的过程,并且增益与努力比将使其成为一个不可行的冒险(除了概念证明)锻炼; Tibial)。
希望有所帮助!:)