首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python GPU编程

Python GPU编程
EN

Stack Overflow用户
提问于 2011-05-11 07:16:30
回答 7查看 80.6K关注 0票数 54

我目前正在做一个python项目,我想使用GPU进行一些计算。

乍一看,似乎有很多可用的工具;再看一眼,我觉得我错过了一些东西。

铜头看起来很棒,但还没有发布。看起来我只局限于编写低级的CUDA或openCL内核;没有推力,就没有cudpp。如果我想把东西整理好,我就得自己做了。

这对我来说似乎不太对。我是不是真的漏掉了什么?或者,这个GPU脚本还没有完全达到炒作的程度?

编辑: GPULIB似乎就是我需要的。文档是基本的,python绑定只是顺便提一下,但我现在正在申请一个下载链接。有谁有这方面的经验,或者链接到类似的免费供学术使用的GPU库?ReEdit:好吧,python绑定实际上是不存在的。

Edit2:所以我想我最好的选择是用C/CUDA编写一些东西,然后在python中调用它?

EN

回答 7

Stack Overflow用户

发布于 2011-05-11 07:31:33

PyCUDA提供了与CUDA的非常好的集成,并且有几个助手接口,使得编写CUDA代码比直接在make中更容易。Here是维基的一个例子,它完全不需要任何C代码就可以进行2DFFT。

票数 29
EN

Stack Overflow用户

发布于 2015-08-28 05:25:44

我将在这里发布一些我在reddit上读到的信息。对于那些不清楚不同包的作用以及它们如何将cuda与Python连接起来的人来说,这将是很有用的:

来自:Reddit

在这个帖子中,关于各种项目的目标是什么以及它们的准备程度有很多混乱之处。没有“NumPy的图形处理器后端”(更不用说任何SciPy的功能了)。有几种方法可以在Python和一些GPU类似数组的对象中编写CUDA代码,这些对象支持NumPy的ndarray方法的子集(但不是NumPy的其余部分,如linalg、fft等)。

  • PyCUDAPyOpenCL最接近。它们消除了许多围绕启动GPU内核的管道(简化的数组创建和内存传输,不需要手动释放,等等)。然而,在很大程度上,您仍然需要手动编写CUDA内核,它们恰好在Python文件中作为一个带三重引号的字符串。PyCUDA的GPUarray确实包括一些有限的类似于NumPy的功能,所以如果你正在做一些非常简单的事情,你可能不需要编写任何内核yourself.
  • NumbaPro包括一个"cuda.jit“装饰器,它允许你使用Python语法编写CUDA内核。它实际上并不比PyCUDA (引用内核源码)有多大的进步,只是你的代码现在看起来更像Pythonic了。然而,它绝对不会自动在GPU.
  • Theano上运行现有的NumPy代码,让你构建符号表达式树,然后编译它们在图形处理器上运行。它不是NumPy,并且只有一小部分NumPy的等价物,NumPy的functionality.
  • gnumpy是围绕CudaMat的一个文档很少的包装器。唯一支持的元素类型是float32,并且只有一小部分NumPy是implemented.
票数 11
EN

Stack Overflow用户

发布于 2013-12-05 01:31:11

我知道这个帖子很老了,但我想我可以带来一些相关的信息来回答你提出的问题。

Continuum提供了一个软件包,其中包含可为您解析CUDA计算的库。基本上,您需要使用装饰器对需要并行化(在函数内)的代码进行检测,并且需要导入库。因此,您不需要任何关于CUDA指令的知识。

信息可在NVIDIA页面上找到

https://developer.nvidia.com/anaconda-accelerate

或者您可以直接转到Continuum Analytics的页面

https://store.continuum.io/cshop/anaconda/

有30天的试用期和免费的学者执照。

我广泛地使用它,并将我的代码加速了10到50倍。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5957554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档