OpenCL для Python - PullRequest
       5

OpenCL для Python

13 голосов
/ 31 октября 2010

Я ищу хорошую оболочку OpenCL \ библиотеку для Python с хорошей документацией.Я пытался найти некоторые ... но не смог найти достаточно хорошего.

Ответы [ 4 ]

12 голосов
/ 31 октября 2010

Наиболее популярным и наиболее документированным вариантом является PyOpenCL . Он утверждает, что является полной оболочкой для OpenCL, и документация выглядит хорошо.

4 голосов
/ 29 августа 2011

pycl - это привязка ctypes к OpenCL (размещено в битовой корзине )

Его основная цель проста: обернуть OpenCL таким образом, чтобы его могли использовать как можно больше реализаций Python. В настоящее время он тестируется на CPython 2. {5,6,7}, 3.2 и PyPy 1.5. Известно, что он в основном не работает на Jython, библиотека ctypes которого еще не развита.

Чтобы достичь этого, мы отказываемся от модулей расширения и зависимостей вне стандартной библиотеки. В идеале такие вещи, как массивы NumPy и изображения PIL, должны просто работать, но они не должны требоваться

В настоящее время это довольно новое. Я недавно играл с ним, и он работает хорошо. Не закончено время по сравнению с PyOpenCL, но производительность кажется вполне разумной

Я не работал для меня с OpenCL 1.0 для OS X 10.6 (и AMD Radeon 5870, см. Здесь ), но отлично работает под 10.7 и OpenCL 1.1

Что касается документации, это довольно прямые привязки к библиотекам C, так что любая документация будет применяться. Также «Приключения в PyOpenCL» хорош и применим почти ко всем привязкам

4 голосов
/ 31 октября 2010

Оба CLyther и PyOpenCL выглядят хорошо задокументированными для меня.

2 голосов
/ 03 мая 2014

Мы разрабатываем opencl4py , привязки более высокого уровня.В этом проекте используется CFFI, поэтому он работает на Pypy.

Основная проблема, с которой мы столкнулись при работе с pyopencl, заключается в том, что import pyopencl выполняет инициализацию OpenCL и забирает всю виртуальную память в случае драйвера NVIDIA, предотвращая правильное разветвление иэффективно отключить многопроцессорность (да, мы утверждаем, что использование pyopencl отключает многопроцессорность по крайней мере с NVIDIA).opencl4py использует ленивую инициализацию OpenCL, разрешая этот «адский импорт».

Позже он получил несколько полезных функций, таких как сверхлегкое кэширование двоичных программ и т. д. К сожалению, документация несколько краткая.Лучший способ узнать, как это работает, - пройти тесты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...