【问题标题】:OpenCL write to buffer choices [duplicate]OpenCL写入缓冲区选择[重复]
【发布时间】:2011-04-30 08:33:28
【问题描述】:

可能重复:
Two ways to create a buffer object in opencl: clCreateBuffer vs. clCreateBuffer + clEnqueueWriteBuffer

在创建缓冲区后立即将数据复制到设备与稍后将数据复制到设备有什么区别? 即。

cl_mem memObj = clCreateBuffer( context, CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR
, size, dataPtr, NULL);

cl_mem memObj = clCreateBuffer( context, CL_MEM_READ_ONLY , size, NULL, NULL);
clEnqueueWriteBuffer( commandQueue, memObj, CL_TRUE, 0, size, dataPtr, 0, NULL, NULL);

我是 OpenCL 的新手,所以我只是想弄清楚一些事情。哪种方法最好用。

谢谢!

【问题讨论】:

  • 哎呀,是的,这是重复的

标签: opencl gpgpu gpu


【解决方案1】:

create/enqueue 事情的全部意义(一般来说,不仅仅是在 opencl 中)是,一旦你创建了一个缓冲区,你可以在计算你想要写入的内容之后写入它,并写入任意数量的次。用其中的数据初始化缓冲区与创建缓冲区然后添加数据之间没有功能差异。此外,任何性能差异都应该由您的编译器优化掉。

【讨论】:

    猜你喜欢
    • 2016-04-17
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    • 2016-09-16
    • 2016-12-03
    相关资源
    最近更新 更多