小编sel*_*731的帖子

CL_MEM_ALLOC_HOST_PTR比CL_MEM_USE_HOST_PTR慢

所以我现在一直在玩OpenCL并测试主机和设备之间的内存传输速度.我正在使用英特尔OpenCL SDK并在带有集成显卡的英特尔i5处理器上运行.然后我发现当使用固定内存时clEnqueueMapBuffer,clEnqueueWriteBuffer它变得更快了近10倍:

int amt = 16*1024*1024;
...
k_a = clCreateBuffer(context,CL_MEM_READ_ONLY | CL_MEM_USE_HOST_PTR, sizeof(int)*amt, a, NULL);
k_b = clCreateBuffer(context,CL_MEM_READ_ONLY | CL_MEM_USE_HOST_PTR, sizeof(int)*amt, b, NULL);
k_c = clCreateBuffer(context,CL_MEM_WRITE_ONLY | CL_MEM_USE_HOST_PTR, sizeof(int)*amt, ret, NULL);

int* map_a = (int*) clEnqueueMapBuffer(c_q, k_a, CL_TRUE, CL_MAP_READ, 0, sizeof(int)*amt, 0, NULL, NULL, &error);
int* map_b = (int*) clEnqueueMapBuffer(c_q, k_b, CL_TRUE, CL_MAP_READ, 0, sizeof(int)*amt, 0, NULL, NULL, &error);
int* map_c = (int*) clEnqueueMapBuffer(c_q, k_c, CL_TRUE, CL_MAP_WRITE, 0, sizeof(int)*amt, 0, NULL, NULL, &error);
clFinish(c_q); …
Run Code Online (Sandbox Code Playgroud)

c++ memory opencl

6
推荐指数
1
解决办法
5277
查看次数

标签 统计

c++ ×1

memory ×1

opencl ×1