- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
它们都可以将数据从主机传输到设备,对吧?那么,有什么区别呢?需要创建一个缓冲区而不需要吗?谢谢!
khronos网站上的解释:
clEnqueueMapBuffer:
将命令加入队列,将 buffer 给定的缓冲区对象区域映射到主机地址空间,并返回指向该映射区域的指针。
clEnqueueWriteBuffer
将命令排队以从主机内存写入缓冲区对象。
最佳答案
写入缓冲区意味着您有 2 个内存对象 - 一个在主机上,由 malloc 等分配,另一个在设备上,通过 OpenCL API 分配。
映射意味着您有一个由 OpenCL API 分配的对象,并且您正在将其地址转换为主机地址空间。
如果您的设备有 RAM 内存,您最好使用映射 - 地址转换比复制花费的时间更少。
如果您的设备有单独的内存,您将不会看到速度差异 - 数据将被隐式复制。
无论如何,映射可以让你摆脱内存重复。
关于buffer - clEnqueueMapBuffer 和 clEnqueueWriteBuffer 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22057692/
在尝试提高某些 OpenCL 计算的性能时,我在 clEnqueueWriteBuffer 调用和紧随其后的 clEnqueueNDRangeKernel(取决于之前的数据传输)上使用了 OpenCL
我对 clEnqueueWriteBuffer 有一个很好奇的问题。在我当前的项目中,我想将大约 500 张图像 (1GB) 复制到显卡上并平均一些像素。图像存储在一个大的 double* 数组中(大
它们都可以将数据从主机传输到设备,对吧?那么,有什么区别呢?需要创建一个缓冲区而不需要吗?谢谢! khronos网站上的解释: clEnqueueMapBuffer: 将命令加入队列,将 buffer
当我致力于一个易于使用的 OpenCL 实现时,我遇到了错误 -36 clEnqueueWriteBuffer。我正在为启用了抛出异常的 spec 1.1 使用 OpenCL C++ Wrapper。
当我使用 OpenCL 处理大量数据时,它会在第 7 次迭代时崩溃。 我确保在循环的每次迭代之前释放内存,并再次为新 block 分配内存,但崩溃仍然发生,并在 Clenqueuewritebuffe
我正在编写一些从主机向设备发送大量数据的代码,但它的行为不稳定。 在下面的代码中,我试图从主机向设备发送一个数组。数组大小在每次迭代中递增,逐渐增加发送到设备的内存量。数组中的第一个元素填充了一个非零
我是一名优秀的程序员,十分优秀!