如何在C ++应用程序中的不受支持的硬件上处理OpenCL代码

时间:2012-06-13 17:15:05

标签: opencl

我一直在研究OpenCL,以及在项目中使用它的可能性。我的问题是,有没有办法在C ++应用程序中不受OpenCL SDK支持的CPU上运行OpenCL代码。我知道Java有Aparapi,但是我想知道如何在没有SDK支持的硬件的情况下在C ++应用程序中运行OpenCL代码。我想在OpenCL内核中编写一些代码以利用可用的OpenCL并行性,但是我不确定我是否能够在较旧的硬件上运行它(仍然是X86,而不是最近的硬件)。任何人都可以向我解释如何做到这一点,或者在旧系统上运行OpenCL代码甚至是一个问题呢?

谢谢, 彼得

1 个答案:

答案 0 :(得分:1)

我想说最好的方法是检查设备是否支持OpenCL通过OpenCL API调用,如clPlatformIDs然后一旦你认为它不是一个OpenCL设备然后运行所需的代码作为正常的C / C ++函数,否则运行它使用openCL内核。但是为了便于携带,你需要在.cl文件中编写两次程序逻辑,并将其作为普通的c / c ++方法/函数编写一次。