OpenCL哪个SDK最好?

时间:2014-03-12 21:23:23

标签: c sdk opencl

我是OpenCL编程的初学者。我的电脑拥有带有intel图形和AMD Radeon 7670的Windows 8.1。当我搜索下载OpenCL SDK和示例helloworld程序时,我发现有完全不同格式的单独SDK和程序可用。我必须使用C而不是C ++。任何人都可以建议我应该安装哪个SDK?请帮忙。

2 个答案:

答案 0 :(得分:1)

在最低级别,各种OpenCL SDK是相同的;它们都包含来自Khronos网站的cl.h。一旦您包含了该标头,您就可以写入OpenCL API,然后您需要链接到OpenCL.lib,它也在SDK中提供。在运行时,您的应用程序将加载您的GPU供应商已在/ Windows / System32中安装的OpenCL.dll。

或者,您可以包含cl.hpp并使用C ++包装器,但是因为您说您是C程序员,并且因为大多数书籍都使用C API,所以请坚持使用cl.h.我认为这可能会解释你所做的“完全不同格式的程序”观察,这就是我在这里提出的原因。

一个SDK优于另一个SDK的好处通常是用于分析和调试。例如,AMD SDK包括APP Profiler(或现在的CodeXL),它将帮助您弄清楚如何更快地使内核。 NVIDIA为同一目的提供Parallel Nsight,而英特尔也提供了性能工具。

因此,您可以根据计算机中的硬件选择SDK,但要了解一旦您编写了OpenCL API,您的应用程序就可以在其他供应商的其他GPU上运行 - 这就是OpenCL的优势。您甚至应该能够从一个供应商处获取样本以在另一个供应商的硬件上执行。

有一点需要注意的是版本:如果您编写OpenCL 1.2 SDK代码,则可能无法在OpenCL 1.1硬件上运行。

答案 1 :(得分:0)

对我而言,OpenCL的最大优点是您根本不需要SDK,因为它在公共接口后面抽象了不同的Vendor实现(请参阅本主题中的答案:Do I really need an OpenCL SDK?)。

相关问题