【发布时间】:2013-05-18 22:19:27
【问题描述】:
我发现 numpy 可以与 blas 链接,我想到了为什么不使用 gpu 加速的 blas 库。
有人这样做过吗?
【问题讨论】:
我发现 numpy 可以与 blas 链接,我想到了为什么不使用 gpu 加速的 blas 库。
有人这样做过吗?
【问题讨论】:
更新 (2014-05-22)
AMD 已经发布了 AMD 核心数学库 (ACML) 6.0 版的测试版,它可以通过在内部使用 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 一起工作
【讨论】: