Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.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
C++ 什么样的应用程序应该重写以使用OpenCL?_C++_C_Osx Snow Leopard_Performance_Opencl - Fatal编程技术网

C++ 什么样的应用程序应该重写以使用OpenCL?

C++ 什么样的应用程序应该重写以使用OpenCL?,c++,c,osx-snow-leopard,performance,opencl,C++,C,Osx Snow Leopard,Performance,Opencl,MacOSX10.6附带了OpenCL,但是如果重写为使用OpenCL,有多少应用程序可以有更好的性能呢?什么样的应用程序应该重写才能使用OpenCL?OpenCL不是一个神奇的“提高性能”按钮。要获得性能提升,有几个先决条件需要满足,第一个是合适的硬件(特斯拉GPU有帮助)。至于能从中受益的软件,它是任何能进行大量并行计算的软件。这就排除了大多数“日常”软件,留下了图形处理应用程序(渲染器、图像处理程序)、操作可能并行的大型数据处理应用程序和科学应用程序 通常,如果您编写的应用程序可以从Ope

MacOSX10.6附带了OpenCL,但是如果重写为使用OpenCL,有多少应用程序可以有更好的性能呢?什么样的应用程序应该重写才能使用OpenCL?

OpenCL不是一个神奇的“提高性能”按钮。要获得性能提升,有几个先决条件需要满足,第一个是合适的硬件(特斯拉GPU有帮助)。至于能从中受益的软件,它是任何能进行大量并行计算的软件。这就排除了大多数“日常”软件,留下了图形处理应用程序(渲染器、图像处理程序)、操作可能并行的大型数据处理应用程序和科学应用程序

通常,如果您编写的应用程序可以从OpenCL中获益,您就知道您已经从中获益了;)

首先,您不能使用OpenCL“重写”整个应用程序。您仍然需要一种“普通”的GUI语言等

使用OpenCL,您可以加速非常大的数据并行问题。大多数问题不属于这一类


最有希望的候选者是图形/视频和声音处理。但是每一个需要对大量数据进行相同操作的问题都是合适的。

我的公司正在使用OpenCL进行科学计算。虽然我不是使用它的开发团队的一员,但我可以告诉你他们使用它做的一些事情:图像的大规模数据处理,想象重建,以及以前编写的科学代码的大规模并行化


基本上,OpenCL是相当前沿的。除非你想/不得不处理它,最好留给那些需要它的人。我并不是想让你气馁,但这是一款专为利基市场设计的利基产品。为了潜在的就业目的,你最好学习编程的其他领域。

普通GeForce/Radeon卡和专业产品线在OpenCL支持方面没有区别。我想大多数需要更多CPU能力的普通应用程序最好使用Grand Central Dispatcher,这也是QuickTime X中使用的。从这里给出的答案中,我了解到OpenCL对于一组受限的应用程序来说非常具体。OpenCL是向前迈出的一步,因为它允许使用可在不同平台上使用的基于C的编程语言。GCD基本上只是一个非常复杂的线程池实现。通过自己管理线程,您可以做得更好。