我目前正在用python开发一个项目,我想利用GPU进行一些计算。
乍一看,似乎有很多可用的工具;乍一看,我觉得我遗漏了一些东西。
铜斑蛇看起来棒极了,但还没有被释放。看起来,im仅限于编写低级CUDA或openCL内核;没有推力,没有cudpp。如果我想整理一些东西,我必须自己做。
我觉得这不太对。我真的错过了什么吗?或者这个GPU脚本还没有达到宣传的程度?
编辑:GPULIB似乎是我需要的。文档是基本的,python绑定只是顺便提到的,但是im现在正在申请下载链接。有没有人有这方面的经验,或链接到类似的免费学术使用GPU图书馆?重新编辑:好的,python绑定实际上是不存在的。
Edit2:所以我想我最好的办法是用C/CUDA编写一些东西,然后从python中调用它?
我将在这里发布一些我在reddit上看到的信息。对于那些不清楚不同包的功能以及如何将cuda与Python连接起来的人来说,这将非常有用:
发件人: Reddit
关于各种项目的目标和准备程度,这个主题中有很多困惑。没有“NumPy的GPU后端”(更不用说SciPy的任何功能了)。有几种方法可以在Python内部编写CUDA代码,以及一些支持NumPy的ndarray方法子集的GPU数组类对象(但不包括NumPy的其他部分,如linalg、fft等)
PyCUDA和PyOpenCL最接近。它们消除了启动GPU内核的许多管道(简化的数组创建和内存传输,不需要手动释放等)。然而,在大多数情况下,您仍然无法手动编写CUDA内核,它们只是碰巧以三个引号字符串的形式出现在Python文件中。PyCUDA的GPUarray确实包含了一些有限的类似NumPy的功能,所以如果你做的事情非常简单,你可能不用自己编写任何内核就可以逃脱。
NumbaPro包含一个“cuda.jit”装饰器,允许您使用Python语法编写cuda内核。实际上,这并不是PyCUDA所做工作的一大进步(引用的内核源代码),只是您的代码现在看起来更像是python。但是,它绝对不会在GPU上自动运行现有的NumPy代码。
Theano允许您构造符号表达式树,然后编译它们以在GPU上运行。它不是NumPy,只有一小部分NumPy功能的等价物。
gnumpy是一个关于CudaMat的文档很少的包装器。唯一支持的元素类型是float32,只实现了NumPy的一小部分。
我知道这条线索已经过时了,但我想我可以带来一些相关的信息来回答这个问题。
Continuum Analytics有一个包,其中包含为您解析CUDA计算的库。基本上,您需要使用decorator编写需要并行化(在函数中)的代码,并且需要导入库。因此,您不需要任何关于CUDA指令的知识。
信息可以在NVIDIA页面上找到
https://developer.nvidia.com/anaconda-accelerate
或者你可以直接进入“连续分析”页面
https://store.continuum.io/cshop/anaconda/
有30天的试用期和免费的学术许可证。
我广泛使用它并将代码加速10到50倍。
PyCUDA提供了与CUDA非常好的集成,并且有几个帮助器接口,使得编写CUDA代码比在直接的C api中更容易。Here是Wiki中的一个例子,它在不需要任何C代码的情况下执行2dfft。
相关问题 更多 >
编程相关推荐