Запуск MSIL на GPU - PullRequest
       20

Запуск MSIL на GPU

15 голосов
/ 19 октября 2011

Возможно, это сумасшедший вопрос, но возможно ли запускать потоки на графическом процессоре?

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

О, и я хотел бы сделать это в C # или F #:)

Спасибо

Ответы [ 4 ]

4 голосов
/ 19 октября 2011

Здесь есть реферат по теме:

http://microsoft.cs.msu.su/Projects/Documents/ILShaders/ilshaders.pdf - [[неработающая ссылка]]

Но мне еще не удалось найти ссылку на источник. Вот страница перевода проекта 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]]

Я смотрел эту тему раньше и не нашел ничего, что на самом деле брало бы совместимый язык и компилировало его в графический процессор.

Существует множество библиотек, представляющих части графического процессора, но вам необходимо понять, как выразить вашу проблему в параллельной структуре данных. Затем на эти библиотеки можно ссылаться в C #.

Некоторые библиотеки:

CUDA.NET - неработающая ссылка

Microsoft Accelerator - неработающая ссылка

Различные другие источники Q / A:

Использование графического процессора с помощью c #

http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/239fd75b-05c3-4e4b-9835-6807940dc492

Обновление: SK-logic прокомментировала tidepowerd, я связал раздел "Как это работает":

http://www.tidepowerd.com/product/howitworks - [[неработающая ссылка]]

Это похоже на хорошую отправную точку для меня. Не уверен, что он обрабатывает MSIL напрямую, изначально он выглядит как шаг после сборки для генерации собственного кода под капотом.

2 голосов
/ 17 декабря 2016

Alea GPU компилирует MSIL во время выполнения в LLVM IR, а затем в CUBIN, чтобы он мог выполняться на GPU. В отличие от CUDAFy, это настоящий полноценный компилятор, а не просто генератор кода CUDA C, который опирается на компилятор NVIDIA CUDA C ++ в бэкэнде.

Их технология также позволяет компилировать делегата во время выполнения к коду GPU и выполнять его на GPU.

В них также реализовано автоматическое управление памятью с использованием инструментария кода IL, поэтому программисту не нужно копировать данные между ЦП и ГП и обратно. Более подробная информация о функциях находится на странице продукта .

2 голосов
/ 19 октября 2011

Если вы используете новейший графический процессор NVidia, вы можете взглянуть на CUDAfy .

Не использовал его, но я долго смотрел на них раньше, когдаписал программу .NET для гипотезы Била.Удачи.

1 голос
/ 19 октября 2011

Вероятно, вам лучше всего использовать C ++ AMP, а затем вызывать этот код из .NET обычным способом.Вам понадобится Visual Studio 11 Developer Preview (Ultimate или Express), чтобы получить доступ к C ++ AMP.(Никогда не слышал о C ++ AMP? У меня пост в блоге полон ссылок.)

...