简介
OpenCL C 编程语言内置了类似 memcpy
的函数,内核代码通过调用该函数,可以在局部内存和全局内存区域之间拷贝数据。当设备内存独立于主机内存时,无需主机内存参与数据周转,就能在不同内存区域之间拷贝数据,这提高了数据拷贝效率。
函数描述
异步拷贝
下面的 OpenCL C 内置函数在全局内存和局部内存区域之间执行异步拷贝,同时还从全局内存区域预取数据到全局高速缓存。
event_t async_work_group_copy(__local gentype *dst,
const __global gentype *src,
size_t num_gentypes,
event_t event)
event_t async_work_group_copy(__global gentype *dst,
const __local gentype *src,
size_t num_gentypes,
event_t event)
以异步方式,从内存区域 src
拷贝 num_gentypes
个元素到内存区域 dst
。工作组中所有工作项都会执行异步拷贝操作,也就是说该内置函数必须被工作组中的每个工作项执行,而且传递的参数需要保持相同,否则会出现不可预知的错误。例如,下面代码中:
local_ind