Numpy 努比、布拉斯和库布拉斯

Numpy 努比、布拉斯和库布拉斯,numpy,cuda,gpgpu,blas,Numpy,Cuda,Gpgpu,Blas,Numpy可以针对不同的BLAS实现(MKL、ACML、ATLAS、GotoBlas等)进行“链接/编译”。配置起来并不总是那么简单,但这是可能的 是否也可以根据NVIDIA的CUBLAS实现“链接/编译”numpy? 我在网上找不到任何资源,在我花太多时间尝试之前,我想确保这一切都是可能的 一句话:不,你不能那样做 有一个相当好的scikit,它提供了从scipy访问CUBLAS的权限,名为,它构建在。PyCUDA提供了一个类似于numpy.ndarray的类,它无缝地允许使用CUDA操作GP

Numpy可以针对不同的BLAS实现(MKL、ACML、ATLAS、GotoBlas等)进行“链接/编译”。配置起来并不总是那么简单,但这是可能的

是否也可以根据NVIDIA的CUBLAS实现“链接/编译”numpy?

我在网上找不到任何资源,在我花太多时间尝试之前,我想确保这一切都是可能的

一句话:不,你不能那样做

有一个相当好的scikit,它提供了从scipy访问CUBLAS的权限,名为,它构建在。PyCUDA提供了一个类似于
numpy.ndarray
的类,它无缝地允许使用CUDA操作GPU内存中的numpy阵列。因此,您可以将CUBLAS和CUDA与numpy一起使用,但不能仅链接到CUBLAS并期望它工作


还有一个提供numpy和cublas功能的商业库,它有一个Python接口或绑定,但我将让他们的一个助手来告诉您这一点。

还有一种可能性:


这基本上是一个gnumpy+cudamat环境,可用于利用GPU。同样的代码也可以在没有使用npmat的gpu的情况下运行。请参阅上面的链接下载所有这些文件

谢谢你的信息。我知道允许访问CUDA的各种Python库。然而,我认为,如果我可以将Numpy配置为使用Cublas,我就不必更改现有代码中的任何内容(目前它使用
Numpy.dot()
和其他带有MKL或GotoBlas2的Linealg函数),并且我可以进行性能比较。出于好奇:你是否碰巧知道为什么不能将numpy与CUBLAS联系起来的技术原因是什么?因为API不一样,标准blas应用程序对整个内存管理层一无所知。这可能会改变这种情况:虽然这适用于倍频程,但它也应该适用于numpys,而不是您答案中的内容?