PyOpenCL入门

mar*_* go 10 python gpgpu opencl pyopencl

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

我知道有几个接口可以在GPU上运行,其中最突出的是CUDA和OpenCL.后者具有防止CUDA在大多数显卡(NVIDIA,AMD,Intel)上运行的优势,而不仅仅是NVIDA卡.在我的情况下,我有一个普通的Intel 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上并行化简单的数学和线性代数.

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

ben*_*ope 8

您似乎正在寻找学习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


小智 5

无论GPGPU计算的采用语言如Java,C/C++,Python,我建议您首先开始使用GPGPU计算和OpenCL的基础知识.

您可以使用以下资源,所有这些都是面向C/C++的,但是这应该让您充分了解OpenCL,GPGPU硬件以帮助您入门.

  1. AMD OpenCL大学工具包

  2. 使用OpenCL Book第2版进行异构计算

  3. NVIDIA OpenCL页面是另一个优秀的resorce

  4. Streamcomputing.eu有很好的openCL入门文章.

  5. 英特尔OpenCL SDK教程

PyOpenCL具体

  1. OpenCL in Action:如何加速图形和计算 有一章关于PyOpenCL
  2. OpenCL编程指南有PyOpenCL章节

这两本书都包含OpenCL 1.1实现,但它应该是你的好起点.