Я ищу хорошую библиотеку OpenCL для библиотеки Python с хорошей документацией. Я попытался найти кое-что ... но не смог найти достаточно одного.OpenCL для Python
ответ
Самым популярным и лучшим документированным вариантом является PyOpenCL. Он утверждает, что является полной оболочкой для OpenCL, и документация выглядит хорошо.
pycl является ctypes связывающиеся с OpenCL (поддерживаемым on bitbucket)
Его основная цель проста: обернуть OpenCL таким образом, что, как многие реализации Python могут использовать его по мере возможности. В настоящее время он тестируется на CPython 2. {5,6,7}, 3.2 и PyPy 1.5. Известно, что он, в основном, не работает над Jython, чья библиотека ctypes еще незрелая.
Для этого мы избегаем модулей расширения и зависимостей вне стандартной библиотеки. В идеале такие вещи, как массивы NumPy и изображения PIL, должны работать только, но они не обязательны.
Это в настоящее время довольно новый. Я недавно играл с ним, и он работает красиво. Не сделано таймингов по сравнению с PyOpenCL, но производительность кажется совершенно разумной
Я не работал для меня с OS X 10.6 OpenCL 1.0 (и AMD Radeon 5870, see here), но отлично работает под 10.7 и OpenCL 1.1
Что касается документации, это довольно прямые привязки к библиотекам C, поэтому любая документация будет применяться. Также "Adventures in PyOpenCL" подходит для практически всех привязок
Мы разрабатываем opencl4py, крепления верхнего уровня. Этот проект использует CFFI, поэтому он работает на Pypy.
Основная проблема, с которой мы столкнулись с pyopencl, заключается в том, что «import pyopencl» выполняет инициализацию OpenCL и берет всю виртуальную память в случае драйвера NVIDIA, предотвращая правильное форсирование и эффективно отключая многопроцессорность (да, мы утверждаем, что использование pyopencl отключает многопроцессорность по крайней мере, с NVIDIA). opencl4py использует ленивую инициализацию OpenCL, разрешая этот «импорт ад».
Позже он приобрел некоторые приятные функции, такие как супер легкое двоичное кэширование программ и т. Д. К сожалению, документация несколько краткая. Лучший способ узнать, как это работает, - пройти тесты.
PyOpenCL автор здесь. Самое главное, что я могу сделать из вашего утверждения, это то, что opencl4py не загружает libOpenCL.so во время импорта. Если это проблема (как вы утверждаете), то почему бы не импортировать PyOpenCL точно там, где это необходимо? Не уверен, что я понимаю вашу мотивацию здесь. –
В качестве дополнительного комментария PyOpenCL имеет [cffi branch] (https://github.com/pyopencl/pyopencl/tree/cffi), который может запускать ядра и работать с PyPy. Это не совсем готово к прайм-тайму, но он туда добирается. –
Наше приложение имеет десятки модулей, которые используют OpenCL и задерживают импорт, что делает код очень подверженным ошибкам. Каждый раз, когда кто-то импортировал pyOpenCL «раньше, чем он должен», очень сложно было отлаживать и диагностировать ошибки ...иногда :) И, конечно же, он мог работать с устройствами, отличными от NVIDIA OpenCL, на машине разработчика. – markhor
- 1. OpenCL 4 Python - буфер для данных
- 2. Bigint в OpenCL и Python
- 3. python c extension/opencl daemon
- 4. OpenCL для поиска набора?
- 5. GUI для программы OpenCL
- 6. Упорядочение памяти для OpenCL
- 7. эквивалент Valgrind для OpenCL
- 8. Эквивалент curand для OpenCL
- 9. Отладчик для OpenCL
- 10. Идеальное хеширование для OpenCL
- 11. Не удалось загрузить OpenCL runtime - OpenCV3 Python
- 12. Не удалось загрузить OpenCL runtime в OpenCV для Python
- 13. Intel OpenCL Vs. Khronos OpenCL
- 14. OpenCL CPU быстрее, чем OpenCL GPU для наивного умножения матрицы
- 15. Вложенные функции ядра для opencl
- 16. Обертка cuda для выполнения openCL
- 17. Перехват функции Linux для OpenCL
- 18. OpenCL - метод для выполнения СОКРАЩЕНИЯ
- 19. OpenCL - выполнение динамических для циклов
- 20. ошибка клинка для opencl amd
- 21. OpenCV для Android - поддержка OpenCL
- 22. Ядро OpenCL для конкатенации строк
- 23. OpenCL: число запросов для обработки
- 24. Динамическая структура данных OpenCL
- 25. OpenCL/CPU. Проверьте, доступна ли среда OpenCL
- 26. Имитация OpenCL 1.1 с OpenCL 1.2
- 27. opencl synchronization
- 28. OpenCL создает неправильные цвета
- 29. OpenCL HelloWorld
- 30. OpenCL удаляет данные из ОЗУ
Ow. tnx .. кажется, что я загружал PyOpenCL не с официального сайта .. и вот почему я не нашел для него документацию ... –
@Ai_boy: Конечно, проблем нет. –