我使用内存映射 I/O(Linux 上的 mmap
调用)访问磁盘上的文件。
是否可以使用 CL_MEM_USE_HOST_PTR
(只读)将此虚拟内存缓冲区传递给 OpenCL。这会带来性能提升吗?
我想避免将整个文件复制到主机内存中,而是让 OpenCL 内核控制操作系统加载/缓冲文件的哪些部分。
最佳答案
我认为这应该可行——您不应该以错误、崩溃或不正确的结果告终;它是否带来性能提升可能取决于硬件、驱动程序/CL 实现和访问模式。如果在许多情况下它没有太大的不同,我不会感到惊讶。我可以想象 GPU 驱动程序预故障并连接所有页面,以便将其映射到 GPU 的地址空间。
关于linux - 在 OpenCL 中使用内存映射文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47534882/