Cuda C++中的简单文件 I/O

Simple File I/O in Cuda C++

本文关键字:文件 简单 C++ Cuda      更新时间:2023-10-16

我现在正在研究 Cuda C++。但是我在使用 CUDA 读取和写入文件时遇到问题。

如何在 Cuda C++ 中实现文件输入输出过程?

我想将 .obj 文件读入我的 Cuda 内核。

我该怎么办?

使用普通主机 (C++) 文件操作读取文件。然后,如果需要,请使用普通cudaMalloccudaMemcpy操作将数据传输到设备。

您将无法直接在 CUDA C++中实现文件 I/O,因为没有用于此的 API,并且 GPU 不直接连接到文件系统。您必须通过操作系统才能获得文件系统服务。

虽然 NVIDIA 确实有一个名为 GPU Direct Storage 的 CUDA 辅助系统,但从技术上讲,这不是 CUDA 的一部分,并且可能不是大多数人在 CUDA 中寻找的简单文件 I/O 的内容。 GPU 直接存储在使用之前需要特定的系统功能和设置步骤,并且远远超出了初学者 CUDA 的使用范围。

为了使您的文件进入 CUDA 内存空间,您必须在为信息分配内存后使用 CUDA memcpy 命令(因此,在加载解析并存储在内存中后,请执行 cudaMalloc(your, malloc, params, here) 和 cudaMemcpy(your, memcpy, params,here)加载解析并存储在内存中的文件,就像您通常在C++中一样

您可以尝试制作一个 cuda 系统来直接访问文件,但这是一个我不会羡慕尝试编写的过程,并且收益与努力比率将使其成为一项不可行的冒险(除了概念验证练习)。

希望有帮助!:)