Подтвердить что ты не робот

Как создать уже написанную параллельную программу на массиве GPU?

У меня есть нейронная сеть, написанная в Erlang, и я только что купил карту GeForce GTX 260 с 240-ядерным графическим процессором. Тривиально использовать CUDA как клей для запуска этого на графической карте?

4b9b3361

Ответ 1

Нет, использование CUDA - это не тривиальный вопрос.

Модель программирования CUDA в основном использует C (с некоторыми дополнениями), но для того, чтобы максимально использовать возможности GPGPU, вам нужно было бы убедиться, что ваши алгоритмы следуют рекомендациям CUDA. (см. Руководство по программированию NVIDIA CUDA)

Например, чтобы получить максимальную производительность памяти (где-то около 70 Гбит/с), вам необходимо получить доступ к памяти в потоковом режиме с коалесценцией, а также ветки очень дорогостоящие на графических процессорах, поэтому вы должны избегать условностей как можно больше. Проверьте руководство и образцы, представленные в SDK, они обеспечат отличную отправную точку.

Ответ 2

Хотел бы я рассказать вам, как это сделать с Erlang...;-), но, по крайней мере, Satnam Singh в MS Research сделал очень интересную работу с Haskell (Lava) и F #. Возможно, этот документ может дать вам некоторую интуицию о том, как это можно сделать:

http://research.microsoft.com/en-us/people/satnams/