2013-05-09 45 views
0

我想自动缩放一些数据。所以,我想通过所有数据并找到数据的最大范围。然后我想浏览数据,进行计算,并将结果发送给opengl进行渲染。这种类型的多路径事物可能在opencl中吗?或者,CPU是否必须指导“查找范围”计算,获得结果,然后使用该指标指导其他计算?可以opencl链多次通过而不返回CPU?

+0

是的,当然这是可能的。否则,这将是一个巨大的设计缺陷。您将数据复制到GPU,对其执行计算并返回结果,无论它是一次还是一百万次计算。 – dtech 2013-05-09 15:06:06

+1

听起来您需要两个OpenCL内核,一个用于计算最小值和最大值,另一个用于实际缩放数据。使用OpenCL命令队列和事件,您可以按顺序排列这两个内核,并将全局内存中的第一个结果存储起来,并在第二个内核中读取这些结果。 OpenCL命令队列的语义(假设您没有启用无序执行)将确保在没有来自主机应用程序的任何交互的情况下(参见clEnqueueNDRangeKernel),在另一个之前完成OpenCL命令队列的语义。 – agrippa 2013-05-09 20:43:51

+0

@agrippa请把它作为答案,我可以接受它。谢谢! – mentics 2013-05-10 16:08:23

回答

0

听起来您需要两个OpenCL内核,一个用于计算最小值和最大值,另一个用于实际缩放数据。使用OpenCL命令队列和事件,您可以按顺序排列这两个内核,并将全局内存中的第一个结果存储起来,并在第二个内核中读取这些结果。 OpenCL命令队列和事件的语义(假设您没有启用乱序执行)将确保在没有来自主机应用程序的任何交互的情况下完成(请参阅clEnqueueNDRangeKernel)。

相关问题