我正在研究一些广泛使用boost::multi_array<double>
的C ++代码。
下一步是将代码移植到使用openCL。由于我对openCL很陌生,我不知道我应该对multi_array
做些什么。我应该将其重写为nested-openCL-vector
或nested-c-array
。
你会做什么?
答案 0 :(得分:0)
OpenCL已经存在类似库的提升,您可能希望从GPU供应商处查看以下库
来自NVIDIA的周四:Thrust是一个强大的并行算法和数据结构库。 Thrust为GPU编程提供了灵活的高级接口,极大地提高了开发人员的工作效率。使用Thrust,C ++开发人员只需编写几行代码即可执行GPU加速排序,扫描,转换和缩减操作,比最新的多核CPU快几个数量级。例如,thrust :: sort算法的排序性能比STL和TBB快5到100倍。
AMD提供的数学库是包含用OpenCL编写的FFT和BLAS函数的软件库,设计用于在AMD GPU上运行以获取更多信息: http://developer.amd.com/libraries/appmathlibs/Pages/default.aspx