首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开始使用PyOpenCL

开始使用PyOpenCL
EN

Stack Overflow用户
提问于 2013-08-24 00:47:56
回答 4查看 11.2K关注 0票数 12

我最近发现了GPU(通用图形处理单元)的强大功能,并希望利用它在一台机器上执行“繁重”的科学和数学计算(否则需要大CPU集群)。

我知道有几个接口可以在GPU上运行,其中最突出的是CUDA和OpenCL。后者相对于CUDA具有优势,可以在大多数显卡(NVIDIA、AMD、Intel)上运行,而不仅仅是NVIDA卡。在我的例子中,我有一个普通的英特尔4000 GPU,似乎与OpenCL很好地合作。

现在,我需要学习如何使用PyOpenCL操作,以使它更深入!所以问题来了:

我怎么才能开始使用PyOpenCL呢?先决条件是什么?我真的需要在Python和/或OpenCL方面有经验吗?

我的背景是fortran,事实上,我需要将一个冗长的fortran代码转换为python (或者pyopencl),主要是解决PDE和对角化矩阵。

我读过两个相关的网站http://enja.org/2011/02/22/adventures-in-pyopencl-part-1-getting-started-with-python/http://documen.tician.de/pyopencl/,但它们对新手(即虚拟人)并没有真正的帮助。

我只是不知道该怎么开始。我不想成为这个领域的专家,我只是想知道如何将简单的数学和线性代数并行到pyopencl上。

任何建议和帮助都是非常欢迎的!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-08-25 08:45:29

似乎你正在寻找最快和最有效的途径来学习PyOpenCL。开始时不需要了解OpenCL (困难的部分),但是在开始时了解Python会很有帮助。

为了快速学习Python语法,我推荐Codecademy的Python曲目:http://www.codecademy.com/tracks/python

然后,Udacity并行编程课程是从GPGPU开始的一个很好的地方(尽管这门课程是用CUDA教授的)。https://www.udacity.com/course/cs344本课程将很快教你基本的GPGPU概念。您将不需要一个NVIDIA GPU参与,因为所有的课程评估都是在线进行的。

在Udacity课程之后(或期间),我建议您阅读、运行和自定义PyOpenCL代码示例:https://github.com/inducer/pyopencl/tree/master/examples

票数 11
EN

Stack Overflow用户

发布于 2013-08-25 06:32:23

不管GPGPU计算采用哪种语言,比如Java、C/C++、Python,我建议您首先了解GPGPU计算和OpenCL的基础知识。

您可以使用以下资源--所有这些资源都是面向C/C++的--但是如果您对OpenCL、GPGPU硬件有足够的了解,就可以开始工作了。

  1. AMD OpenCL大学工具包
  2. 异类计算与OpenCL图书第二版
  3. NVIDIA OpenCL页面是另一个极好的资源。
  4. Streamcomputing.eu有不错的openCL入门文章。
  5. 英特尔OpenCL SDK教程

PyOpenCL特异性

  1. 行动中的OpenCL :如何加速图形和计算有一个关于PyOpenCL的章节
  2. OpenCL编程指南有PyOpenCL一章

这两本书都包含OpenCL 1.1实现,但对您来说应该是一个很好的起点。

票数 6
EN

Stack Overflow用户

发布于 2016-05-03 11:22:13

作为GPU编程新手,我发现您提到的相关文章相当简单,尽管我发现示例代码完全从命令行运行,但在Eclipse中却没有使用Anaconda。我认为这可能是因为anaconda的Eclipse不同于命令行版本,而且我还没有解决这个问题。

对于学习python,有大量的在线资源,包括免费电子书。

https://wiki.python.org/moin/BeginnersGuide http://codecondo.com/10-ways-to-learn-python/

应该是个好的开场白。如果您使用Eclipse,您应该安装pydev。无论如何,安装Anaconda https://docs.continuum.io/anaconda/install,因为这将为您节省很多麻烦。

为了达到Python所需的熟练程度,我估计一个星期左右的时间,只要你有几个简单的迷你项目。您可能还会发现,使用numpy和may以及可能的ipython笔记本,您可能不需要深入研究GPU编程。

这些链接可以帮助您避免GPU编程,或者至少延迟学习它。请注意,在内核之间切换的成本意味着您没有为每个核心分配大量的工作量。

http://blog.dominodatalab.com/simple-parallelization/ https://pythonhosted.org/joblib/parallel.html

一般来说,我发现一次只学一件东西会更有效率,甚至更少乐趣。

我希望这能帮到你。

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

https://stackoverflow.com/questions/18413825

复制
相关文章

相似问题

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