2015-07-12 70 views
1

我正在寻找技术来加速我的应用程序(C++,测量数据处理)中的计算。 OpenCL似乎是一个很好的解决方案。 但是对于不同的平台(ATI GPU,Nvida GPU & Intel),有不同的库和不同的运行时。多平台OpenCL应用程序

我可以创建一个在NVidea GPU,ATI GPU和Intel中正确处理的实现吗?或者我需要为每个平台创建一个不同的实现?

我可以这样做:

void ComputeIt(); 

或者我需要创建:

void ComputeItAMD(); 
void ComputeItIntel(); 
void ComputeItNVidea(); 

???

谢谢!

+0

要澄清,你只是试图编写将在每个平台上工作的代码,或者你是否尝试使用所有可用的平台同时? – jprice

+0

我试图编写可以在每个平台上工作的代码。 –

回答

0

您只需要编写一次。这就是OpenCL的重点;写一次,在任何地方运行!

这些库是供应商实施OpenCL的。例如。如果您有Amd卡,请下载AMD图书馆,Nvidia卡,下载Nvidia的图书馆等...

+0

这是否意味着我已经将所有运行时与我的产品一起发货,并根据主机功能选择在运行时使用哪个运行时? –