我正在研究一些广泛使用的 C++ 代码boost::multi_array<double>
。
下一步是移植代码以使用 openCL。由于我对 openCL 很陌生,我不知道应该如何处理multi_array
. 我应该将其重写为 anested-openCL-vector
还是nested-c-array
.
你会怎么做?
我正在研究一些广泛使用的 C++ 代码boost::multi_array<double>
。
下一步是移植代码以使用 openCL。由于我对 openCL 很陌生,我不知道应该如何处理multi_array
. 我应该将其重写为 anested-openCL-vector
还是nested-c-array
.
你会怎么做?
OpenCL 已经存在类似库的提升,您可能需要查看来自 GPU 供应商的以下库
来自 NVIDIA 的 Thurst: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