我们有一段涉及昂贵线性代数计算的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上运行。
我正在尝试确定最佳方法。据我所知,Numba不支持在GPU上运行BLAS和LAPACK函数。看起来PyCUDA可能是最好的路线,但我很难确定PyCUDA是否允许使用BLAS和LAPACK函数。
编辑:我们需要使代码可移植到不同的GPU架构,包括AMD和Nvidia。虽然PyCUDA似乎提供了所需的功能,但CUDA(因此也是PyCUDA)无法在AMD GPU上运行。