我重新认识了 numpy 可以与 blas 链接,我想到了为什么不使用 gpu 加速的 blas 库。
有没有人这样做过?
更新 (2014-05-22)
AMD 制作了 AMD 核心数学库 (ACML) 6.0 版的 beta 版本,它可以通过在内部使用 clMath 将 FFT 和 BLAS 函数卸载到 GPU。公告在这里:ACML Beta 6.0 Release Leverages the Power of Heterogeneous Compute。这里需要注意的是,输入数据必须从 CPU 传输到 GPU,并在每次BLAS 或 FFT 调用时将输出数据返回到 CPU。因此,当问题足够大以至于 ACML 将使用 GPU 而不是 CPU 时,AMD 有一堆脚本用于调整。
为了完整起见,我还要提到 Nvidia 的 nvBLAS 库支持类似的功能,但它依赖于 cuBLAS 和 CUDA,因此它只能在 Nvidia GPU 上运行。
原始答案
不幸的是,AMD 的 GPU 加速 BLAS 库不能直接链接到 Numpy 或任何其他需要基于标准 CPU 的 BLAS 库的应用程序。原因是现有的 GPU BLAS 库都需要在调用 BLAS 函数之前先将矩阵复制到 GPU。这需要有人修改 Numpy 来进行这种复制。
编辑: CLyther 看起来可以替代 Numpy 所做的一些工作,并将所有内容都转换为 OpenCL。见这里:http ://srossross.github.io/Clyther/for_numpy_users.html
如果内存服务器,至少 pyCuda,pyOpenCL 也可以与 numPy 一起使用