Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parallel processing 在OpenCL中,是否可以对不同的内核使用相同的内存缓冲区?_Parallel Processing_Opencl - Fatal编程技术网

Parallel processing 在OpenCL中,是否可以对不同的内核使用相同的内存缓冲区?

Parallel processing 在OpenCL中,是否可以对不同的内核使用相同的内存缓冲区?,parallel-processing,opencl,Parallel Processing,Opencl,我正在实现一个内核函数,其中主机端的内存被传输到内核。。是否可以在不同的时间与内核共享相同的内存缓冲区 是的,多个内核可以使用相同的内存对象,只要这些内核不存在同时执行的风险。通常的“单命令队列不是在无序执行的情况下创建的”。是的,我使用光线跟踪器执行此操作。我有三粒麦粒。一个改变几何图形的预处理器、一个光线跟踪器和一个进行图像处理的后处理器。我与他们三人共享内存缓冲区。我确保在开始下一个内核之前,内核已经完成。您可以毫无问题地共享内存。如果内存是只读的,您甚至可以将该内存对象用作并发运行的两个

我正在实现一个内核函数,其中主机端的内存被传输到内核。。是否可以在不同的时间与内核共享相同的内存缓冲区

是的,多个内核可以使用相同的内存对象,只要这些内核不存在同时执行的风险。通常的“单命令队列不是在无序执行的情况下创建的”。

是的,我使用光线跟踪器执行此操作。我有三粒麦粒。一个改变几何图形的预处理器、一个光线跟踪器和一个进行图像处理的后处理器。我与他们三人共享内存缓冲区。我确保在开始下一个内核之前,内核已经完成。

您可以毫无问题地共享内存。如果内存是只读的,您甚至可以将该内存对象用作并发运行的两个内核的输入(即:不同的GPU/相同的上下文)

但是,如果要覆盖内存区域,请小心使用事件同步内核。我强烈建议使用事件机制,因为它支持对另一个队列中的内存区域进行并行I/O读写