我正在实现一个内核函数,其中来自主机端的内存被转移到内核。内核有三个函数。是否有可能在不同时间与内核共享相同的内存缓冲区?是否可以在OpenCL中为不同的内核使用相同的内存缓冲区?
1
A
回答
1
是的,多个内核可以使用相同的内存对象,只要不存在内核同时执行的风险。通常的“单一命令队列不是无序执行”。
1
是的,我用我的射线示踪剂做了这个。我有三个内核。改变几何图形的预处理器,光线追踪器和进行图像处理的后处理器。我与他们三个共享内存缓冲区。在开始下一个之前,我确定内核已经完成。
0
你可以共享内存没有任何问题。如果内存是只读的,您甚至可以将该内存对象用作并发运行的2个内核(即:不同的GPU /相同上下文)的输入。
但是,如果您要覆盖内存区域,请小心并使用事件来同步内核。我强烈推荐这种事件机制,因为它支持并行I/O读取和写入另一个队列中的内存区域。
相关问题
- 1. OpenCL中不同内核/程序的缓冲区的设备地址是否相同
- 2. 我可以在相同的设备缓冲区中一个接一个地调用OpenCL内核吗?
- 3. 如何释放GPU内存并在Pyopencl中为不同的阵列使用相同的缓冲区?
- 4. 恒定的缓冲区成员访问相同的内存
- 5. 是否可以用C++而不是C编写OpenCL内核?
- 6. 所有内核缓冲区在所有系统中具有相同的地址?
- 7. OpenCL - 是否可以在内核中调用另一个函数?
- 8. OpenCL是否允许并发写入相同的内存地址?
- 9. OpenCL - 缓冲区和全局内存之间的区别
- 10. OpenCL - 多GPU缓冲区同步
- 11. 是否可以跨越OpenCL内核在CPU和GPU上同时运行
- 12. 是发送/接收数据包缓冲区相同预分配的内存
- 13. clEnqueueMapBuffer是否总是返回相同CL缓冲区的相同地址?
- 14. MPI_Isend/Irecv:是否有可能同时访问未使用的内存位置上的发送缓冲区
- 15. 比较内存缓冲区
- 16. 是否可以加载不同的内核并从内核模块跳转到内核?
- 17. 如何在linux内核中使用malloc()创建缓冲区?
- 18. 在缓冲区中存储内容
- 19. OpenCL自相关内核
- 20. 两个不同的缓冲区,相同的python外壳
- 21. 是否可以解析ColdFusion 9.0.1缓存内存的内容?
- 22. MPI内部缓冲区内存问题
- 23. Linux内核 - 遍历缓冲区头
- 24. 店FREAD()中的字符,而不是内存缓冲区
- 25. 内核可以调度不同内核上相同进程的用户级线程吗?
- 26. 在节点js中使用缓冲区是否导致内存泄漏
- 27. 在Linux内核模块中为RDMA注册大缓冲区
- 28. Declspec创建一个缓冲区发送到OpenCL内核时的结构
- 29. 3种不同内核的OpenCL应用程序
- 30. OpenCL中的缓冲区对象和图像缓冲区对象