CPU+GPU. С чего начать?

Привет!
Заинтересовала тема написания гибридного ПО, использующего возможности CPU+GPU. Есть математическая задача, которую надо обсчитать, например, факторизация. Видюха от ATI. Погуглив, нашел статьи на хабре по OpenCL с примерами на С.
Вопросы:
1) можно ли писать под OpenCL на других языках, например python? Насколько это получится эффективным(скорость разработки + итоговое быстродействие)
2) Какие есть альтернативы OpenCL? Насколько они проще, сложнее? GLSL - альтернатива OpenCL?
  • Вопрос задан
  • 1972 просмотра
Решения вопроса 1
@vilgeforce
Раздолбай и программист
Для начала нужно разделять код хоста и код ядра. Ядро в общем случае пишется ТОЛЬКО на C, а точнее на его диалекте для openCL. Для Nvidia можно писать на своеобразном ассемблере. Код хоста просто дергает функции opencl и может быть на чем угодно, привязка для python есть. Смысла в подобном не вижу, ибо opencl - сишный код.
По второму вопросу: есть CUDA. Есть FPGA с кастомным дизайном.

В любом случае разработка для параллельных вычислений должна начинаться с параллельного алгоритма. Некоторые задачи не параллелятся.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Dum_spiro_spero
Собственно главное - это использование GPU - от CPU вы так и так никуда не денетесь. По CUDA материалов просто море. Включая конференции для разработчиков которые проводит Nvidia. По OpenCL инфы на порядок меньше.
Программирование GPU - достаточно близко к "железу" - потому и С/С++. Я хотел разобраться в OpenCL - но в результате плюнул и занялся Кудой.
Ответ написан
donkaban
@donkaban
Умею рисовать тени
1. mathema.tician.de/software/pyopencl
2. GLSL - это язык программирования шейдеров, если вам не визуализацию, а возвратить результаты, то не стоит. Альтернативы - CUDA (с ATI - сразу нет).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы