LINUX.ORG.RU

Линейная алгебра на GPU в Python - текущее состояние дел?

 , , ,


2

3

Преамбула: имеется вектор из 100e6 элементов, который необходимо нарезать на фрагменты размером N, применить к каждому фрагменту fft, а затем применить к ним ряд операций линейной алгебры (в тч. копирование, вырезание поддиапазона, так же в numpy как vstack, roll, conj, поэлементное произведение). Результирующий код на numpy выполняется порядка 5-10 минут на одном ядре core i5.

Есть мнение, что «matlab может в gpu из коробки, просто нажимаешь какую-то галочку и все выполняется на GPU, ну, по крайней мере, операции линейной алгебры над векторами легко»!

Вопрос к знатокам - действительно ли тулбокс параллельной обработки данных в матлабе настолько крут? Настолько, что можно сформировать параллельный алгоритм с минимальным редактированием кода?

Сейчас смотрю в сторону PyOpenCL, я правильно понимаю, что для этого необходимо изучить как бы другой язык? Язык написания kernel-ов?

Вот это читал - не очень ясно в контексте сабжа, где тут ниша именно вычислений? Theano?

UP 1: Видеокарта Radeon :)

Перемещено leave из desktop

Ответ на: комментарий от ZERG

Solace, ZERG Да, кстати у меня ATI, я так понимаю, что это обязывает игнорировать всё, где есть «CUDA»

omegatype ★★ ()
Ответ на: комментарий от omegatype

в зависимости от модели Radeon и используемого драйвера - можно игнорировать и всё, где есть «OpenCL»

Ford_Focus ★★★★★ ()
Ответ на: комментарий от omegatype

Тогда страдай или найди себе Nvidia.

Реально, выцыгань денег на нормальную карту для расчётов, если это не разовая штука. А если разовая, то овчинка выделки не стоит, проще пользоваться тем, что у тебя есть.

ZERG ★★★★★ ()
Ответ на: комментарий от omegatype

У Torch и иже с ними есть опция с OpenCL, попробуй завести.

Solace ★★ ()

Погляди PyViennaCL. Про pyopencl и OpenCL ты не совсем понял, это библиотека в первую очередь для работы с самим OpenCL + некоторые готовые алгоритмы. Сам OpenCL состоит из рантайма, API и кода для вычислительных устройств на своем С-подобном языке. Советую вообще почитать про GPGPU и его технологии, чтобы не было каши в голове.

lu4nik ★★★ ()
Ответ на: комментарий от omegatype

CUDA лучше OpenCL по критерию «наличие библиотек для вычислений».

ei-grad ★★★★★ ()
Ответ на: комментарий от omegatype

Все коллеги, которых я знаю, используют cuda для вычислений, деталей не уточнял, извини. Да, аргумент не очень, но парни работают в серьёзных лабах типа Fermilab.

ZERG ★★★★★ ()
Ответ на: комментарий от ei-grad

Для CUDA лучше с наличием и развитостью инструментов разработки. Но, с другой стороны, мы в Open-source сообществе или где? У нас тут фапают на мультиплатформенность и переносимость кода или зачем?

LittleKawaiiNeko ★★ ()

в курсе по ML, говорили что операции с матрицами отлично оптимизированны в octave/matlab. Возможно есть модуль в питоне для octave чтобы через нее вычислять.

kiotoze ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.