【发布时间】:2015-08-10 12:05:40
【问题描述】:
我正在尝试开发一个必须并行运行许多计算的 C++ 应用程序。算法将非常大,但它们将是纯数学的并且是浮点整数。因此,它们应该使用 OpenCL 在 GPU 上工作。我希望该程序能够在不支持 OpenCL 的系统上运行,但我希望它也能够在支持 OpenCL 的系统上使用 GPU 来提高速度。
我的问题是我不想维护两组代码(标准 C++ 可能使用 std::thread 和 OpenCL)。我确实意识到我将能够共享大量实际代码,但唯一明显的方法是在文件之间手动复制可共享的部分,出于可维护性的原因,这确实不是我想做的事情和以防出错。
我希望能够只使用一组文件。有没有合适的方法来做到这一点?在某种程度上,OpenCL 仿真会是一种选择吗?
PS。我知道 AMD OpenCL 模拟器,但它似乎只用于开发,也只用于 Windows。还是我错了?
【问题讨论】:
标签: c++ multithreading parallel-processing opencl gpgpu