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