与CPU相比,内存副本在GPU上花费的时间更多

问题描述 投票:0回答:1

我有要复制的图像的源指针和目标指针。当我在CPU上运行该副本的代码时,它需要2毫秒。现在,我用clCreateBuffer(context,CL_MEM_USE_HOST_PTR | CL_MEM_READ_WRITE,size,host_ptr,errcode_ret)在开放cl上运行代码,并编写了具有全局工作组大小(w,H)的内核。因此,每个内核都在复制一个像素。时间约为20ms 。有人可以帮我吗,当我们有指向全局内存的图像指针时,如何在开放的cl上有效地进行内存复制。此过程使用的工作组大小是多少?

谢谢

opencl
1个回答
0
投票

您能帮助您阐明您要完成的目标吗?您是否要比较将memcpy主机缓冲区所需的时间与使用GPU内核复制设备缓冲区所需的时间进行比较?

[如果是这样,请尝试分配没有CL_MEM_USE_HOST_PTR标志的缓冲区。从第一个响应here起,似乎有些实现将缓冲区映射到系统内存而不是设备内存,这可能会减慢复制内核的速度。

© www.soinside.com 2019 - 2024. All rights reserved.