我们有一个 Python 代码,其中涉及昂贵的线性代数计算。数据存储在 NumPy 数组中。该代码使用 numpy.dot 以及一些 BLAS 和 LAPACK 函数,当前可通过 scipy.linalg.blas 和 scipy.linalg.lapack 访问这些函数。当前代码是为CPU编写的。我们想要转换代码,以便一些 NumPy、BLAS 和 LAPACK 操作在 GPU 上执行。
我正在尝试确定执行此操作的最佳方法。据我所知,Numba 不支持 GPU 上的 BLAS 和 LAPACK 函数。看来 PyCUDA 可能是最佳途径,但我无法确定 PyCUDA 是否允许同时使用 BLAS 和 LAPACK 函数。
编辑:我们需要将代码移植到不同的 GPU 架构,包括 AMD 和 Nvidia。虽然 PyCUDA 似乎提供了所需的功能,但 CUDA(以及 PyCUDA)无法在 AMD GPU 上运行。