src*_*rer 4 python numpy blas lapack
我们有一个 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 上运行。
小智 5
您尝试过研究 scikit-cuda 吗? https://scikit-cuda.readthedocs.io/en/latest/#
它似乎使用 pyCUDA 来访问 CUDA 工具包库(CUBLAS、CUSOLVER、CUFFT、CULA),并提供自己的一些基于 CUBLAS 的 LAPACK 例程的实现。
我在 CUBLAS 例程中使用过它,这是一次愉快的体验,我希望 LAPACK 也能如此