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

StackOverflow https://stackoverflow.com/questions/213337

Вопрос

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

Это было полезно?

Решение

Нет, использование CUDA не является тривиальным вопросом.

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

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

Другие советы

Я бы хотел рассказать вам, как это сделать с Эрлангом ... ;-), но по крайней мере Сатнам Сингх из MS Research проделал очень интересную работу с Haskell (Lava) и F #. Возможно, эта статья поможет вам понять, как это можно сделать :

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top