我使用内存映射的I/O(在Linux上调用)访问磁盘上的文件。
是否可以使用(仅用于读取)将此虚拟内存缓冲区传递给OpenCL?这样做是否会导致性能提升?
我想避免将整个文件复制到主机内存中,而是让OpenCL内核控制操作系统加载/缓冲的文件部分。
是否可以使用(仅用于读取)将此虚拟内存缓冲区传递给OpenCL?这样做是否会导致性能提升?
我想避免将整个文件复制到主机内存中,而是让OpenCL内核控制操作系统加载/缓冲的文件部分。
我认为这应该可以工作 - 你不应该遇到错误、崩溃或不正确的结果;是否带来性能提升可能取决于硬件、驱动程序/CL实现和访问模式。在许多情况下,我不会感到惊讶它没有太大的区别。我可以想象GPU驱动程序预先分配并固定所有页面,以便将其映射到GPU的地址空间中。