在 OpenCL 中使用内存映射文件
Using memory mapped file with OpenCL
我使用内存映射 I/O 访问磁盘上的文件(mmap
调用 linux)。
是否可以使用 CL_MEM_USE_HOST_PTR
将此虚拟内存缓冲区传递给 OpenCL(只读)。这会带来性能提升吗?
我想避免将整个文件复制到主机内存中,而是让 OpenCL 内核控制操作系统获取文件的哪些部分loaded/buffered。
我认为这应该可行——您不应该以错误、崩溃或不正确的结果告终;它是否带来性能提升可能取决于硬件、driver/CL 实现和访问模式。如果在许多情况下它没有太大的不同,我不会感到惊讶。我可以想象 GPU 驱动程序预故障并连接所有页面,以便将其映射到 GPU 的地址 space。
我使用内存映射 I/O 访问磁盘上的文件(mmap
调用 linux)。
是否可以使用 CL_MEM_USE_HOST_PTR
将此虚拟内存缓冲区传递给 OpenCL(只读)。这会带来性能提升吗?
我想避免将整个文件复制到主机内存中,而是让 OpenCL 内核控制操作系统获取文件的哪些部分loaded/buffered。
我认为这应该可行——您不应该以错误、崩溃或不正确的结果告终;它是否带来性能提升可能取决于硬件、driver/CL 实现和访问模式。如果在许多情况下它没有太大的不同,我不会感到惊讶。我可以想象 GPU 驱动程序预故障并连接所有页面,以便将其映射到 GPU 的地址 space。