【发布时间】:2019-05-05 04:03:08
【问题描述】:
我有一个很大的 cl_mem 缓冲区(1 亿个浮点数)。我正在尝试减少用来自主机的数据填充它所需的时间(我必须多次将数据从主机传递到设备,目前我每次都重新初始化缓冲区)。
与其一遍又一遍地使用 clCreateBuffer/CL_MEM_COPY_HOST_PTR 进行初始化,似乎将缓冲区初始化一次,然后每次使用多线程方法更新其数据(因此多个 CPU 线程每次更新数据)。
这样的方法可行吗?我研究了 clEnqueueWriteBuffer,虽然它允许更新缓冲区的子集,但似乎对它的多次调用仍将由命令队列按顺序执行。我需要多个命令队列吗?这种方法甚至可能吗?
【问题讨论】: