例如,我应用了一个长度为7 * sizeof(cl_int)的cl_mem
cl_mem cl_test= clCreateBuffer
(context,CL_MEM_READ_WRITE,7*sizeof(cl_int),NULL,NULL );
在设备中进行一些处理后,我只想下载第三个元素而不是整个cl_mem。
我该怎么办?
使用
clEnqueueReadBuffer(queue,cl_test[2],CL_TRUE,0,sizeof(cl_int),(void*)data_int_host,0,NULL,NULL );
或者
clEnqueueReadBuffer(queue,cl_test+2,CL_TRUE,0,sizeof(cl_int),(void*)data_int_host,0,NULL,NULL );
??? 我不知道......
谢谢!
答案 0 :(得分:4)
将offset
参数用于clEnqueueReadBuffer()功能。
例如,要读取缓冲区的第三个元素(假设您的缓冲区包含cl_int
' s):
clEnqueueReadBuffer(queue, cl_test, CL_TRUE, 3 * sizeof(cl_int), sizeof(cl_int), (void*) data_int_host, 0, NULL, NULL);