Запуск MSIL на GPU
Может быть, сумасшедший вопрос, но можно ли запускать потоки на GPU?
Причина, о которой я прошу, заключается в том, что у меня есть довольно сложное вычисление для выполнения (это в основном математика и массивы), и мне хотелось бы узнать, могу ли я улучшить скорость с помощью GPU.
О, и я хотел бы сделать это в С# или F #:)
Спасибо
Ответы
Ответ 1
Здесь есть реферат по теме:
http://microsoft.cs.msu.su/Projects/Documents/ILShaders/ilshaders.pdf - [[dead link]]
Но мне еще не найти ссылку на источник. Вот страница с переводом Google:
http://translate.google.co.uk/translate?hl=en&sl=ru&u=http://microsoft.cs.msu.su/Projects/Pages/ILShaders.aspx&ei=QuieTu_tGsTD8QPk-tmmCQ&sa=X&oi=translate&ct=result&resnum=2&ved=0CCYQ7gEwAQ&prev=/search%3Fq%3DILShaders%26hl%3Den%26prmd%3Dimvns - [[deak link]]
Я уже рассмотрел этот вопрос и не нашел ничего ранее, что фактически взял совместимый язык и скомпилировал его на GPU.
Существует множество библиотек, которые предоставляют детали графического процессора, но вам нужно понять, как выразить свою проблему в виде параллельной структуры данных. Эти библиотеки затем могут ссылаться на С#.
Некоторые библиотеки:
CUDA.NET - мертвая ссылка
Microsoft Accelerator - мертвая ссылка
Различные другие источники Q/A:
Использование GPU с С#
http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/239fd75b-05c3-4e4b-9835-6807940dc492
Обновление: SK-логика прокомментировала tidepowerd, я связал раздел "Как это работает":
http://www.tidepowerd.com/product/howitworks - [[dead link]]
Это выглядит хорошей отправной точкой для меня. Не уверен, что если он обрабатывает MSIL напрямую, он сначала выглядит как шаг пост-сборки для создания настраиваемого кода под капотом.
Ответ 2
Если вы используете новейший графический процессор NVidia, вы можете посмотреть CUDAfy.
Не использовал его, но я долго смотрел на них раньше, когда писал программу .NET для гипотезы Биле. Удачи.
Ответ 3
Alea GPU компилирует MSIL во время выполнения в LLVM IR, а затем в CUBIN, чтобы он мог выполнять на GPU. В отличие от CUDAFy, это настоящий полноценный компилятор, а не только генератор кода CUDA C, который опирается на компилятор NVIDIA CUDA С++ в задней части.
Их технология также позволяет скомпилировать делегата во время выполнения для кода графического процессора и выполнить его на графическом процессоре.
Они также реализовали автоматическое управление памятью с помощью инструментария IL-кода, так что программисту не нужно копировать и возвращать данные между CPU и графическим процессором. Более подробная информация о функциях находится на странице .
Ответ 4
Наверное, лучше всего использовать С++ AMP, а затем вызывать этот код из .NET обычным способом. Для получения доступа к С++ AMP вам понадобится Visual Studio 11 Developer Preview (Ultimate или Express). (Никогда не слышал о С++ AMP? У меня сообщение в блоге, полное ссылок.)