-1

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

谢谢,彼得

4

1 回答 1

1

我想说解决这个问题的最佳方法是通过 OpenCL API 调用(例如 clPlatformIDs)检查设备是否支持 OpenCL,然后一旦您认为它不是 OpenCL 设备,然后将所需的代码作为普通 C/C++ 函数运行,否则使用 openCL 运行它核心。但是为了可移植性,您需要在 .cl 文件中编写程序逻辑两次,一次作为普通的 c/c++ 方法/函数。

于 2012-06-14T17:43:26.793 回答