在 AMD GPU 中使用 Python+Theano 和 OpenCL

Using Python+Theano with OpenCL in an AMD GPU

我正在尝试将 Python 与 Theano 一起使用,以使用 OpenCL 加速某些代码。我按照指示(我认为)安装了 libgpuarraypygpu,并且没有出现任何错误。安装检测到 OpenCL 运行 安装时间。

我不能 运行 OpenCL 的 Theano 示例,主要是因为我不知道如何指定我的 GPU。根据 inxi,我的 GPU 是 Radeon HD 5340/5450/5470。 Theano 文档中的所有代码都使用 device=cuda0,并且唯一提到 OpenCL 的地方是 device=openclN,其中 N 是一个数字。

我试过 device=opencl0 并收到一个 pygpu 错误,指出正确的格式是 opencl<int>:<int>。从那以后,我尝试了任意数量的数字组合(opencl0:0 等),并且总是 GpuArrayException: Unknown error.

我的系统是 Ubuntu 14.04 x64,我的硬件是 Toshiba Satellite,15"。我用 pip 安装了 Theano,后来安装了 libgpuarray他们网站上的说明。

我做错了什么?

opencl0:0 是正确的。你能确认 pyopencl 有效吗?您的 opencl(或 drivers/cl 编译器)可能有问题。

但是,我认为 Theano 目前不能很好地与 OpenCL 配合使用。当前状态是部分支持,足以 "hello world",但不足以 运行 任何重要代码。

参见:

https://github.com/Theano/Theano/issues/2189

https://github.com/Theano/Theano/issues/1471

https://github.com/Theano/Theano/issues/2190

https://github.com/Theano/Theano/pull/1732

总而言之,不,大多数东西都没有移植(例如,包括 Elemwise,这是一个常见的操作)。不过,我真的很想在 OpenCL 上看到 Theano。对于 AMD 来说,这将是一件很棒的事情。很快:)