1

我正在寻找编写信号处理代码,该代码将需要通常的并行原语(例如scan(),、、reduce()和)以及用于 FFT 和密集向量/矩阵运算的有效例程,以支持诸如主成分分析之类的东西map()其中包括寻找特征向量和特征值。还有大量的矩阵求逆和乘法。主机代码将是 C++11。sort()

我想使用 OpenCL 来保持与平台无关,但是几天的实验并没有让我对工具的成熟度充满信心。在编程模型和原语方面我喜欢Boost.Compute,但我不确定像clMAGMA和 FFT 库FFTcl这样的 LAPACK 库在数据类型、共享上下文和异步操作方面是否能很好地使用它。我还看到 clMAGMA 的最后一次更新是在两年前。

ViennaCL涵盖了 FFT 和一些矩阵运算,但对 LAPACK 没有帮助。VEXcl仅适用于稀疏向量/矩阵。

对于 CUDA,这一切似乎都不是什么难事——安装 Nvidia 的开发工具就可以了。所有最新的库都在那里,还有像NPP这样的东西来涵盖我可能需要的其他东西。我没有看到库之间不兼容的风险。

我很好奇是否有其他人使用 OpenCL 走这条路。我想这样做,但我觉得它比使用 CUDA 的风险更高,CUDA 似乎提供了更少的机会遇到不可预见的障碍。

4

0 回答 0