Как я могу использовать графический процессор в качестве второго процессора в .Net? - PullRequest
7 голосов
/ 22 января 2009

Вопрос говорит обо всем на самом деле. Я надеюсь, что мне не нужно писать код в c ++ .dll, а затем вызывать его из управляемого кода.

Ответы [ 4 ]

3 голосов
/ 22 января 2009

С помощью быстрого поиска я нашел этот , называемый ускорителем. Это проект Microsoft Research , найденный здесь .

2 голосов
/ 23 января 2009

Вы можете написать код для графического процессора только с использованием языка затенения. Все языки затенения являются собственными языками (это не языки C ++, .NET или что-то еще) сами по себе, но они очень похожи на C ++.

Наиболее распространенными языками затенения являются:

  • GLSL (для OpenGL)

  • Cg (затенение nVidia язык совместим с обоими DirectX и OpenGL)

  • HLSL (затенение Microsoft язык для DirectX).

Вам нужно написать код, который вы хотите запустить на GPU, на своем языке шейдинга, а затем динамически скомпилировать и загрузить в GPU. Код, который вы используете для динамической компиляции и загрузки, обычно представляет собой любой код, который поддерживает DirectX / OpenGL (насколько я знаю, есть API Java, .NET и C ++ - большинство людей используют C ++, хотя большинство примеров, которые вы найдете, будут написанный на C ++).

0 голосов
/ 11 сентября 2013

CUDAfy

Позволяет вам кодировать на C # и переводить на CUDA C ++ для вас статически или динамически. В большинстве случаев он работает хорошо, но более сложные вещи могут быть сложными без внесения прямых изменений в библиотеку. Это могло улучшиться, так как я использовал это. У меня также сложилось впечатление, что OpenCL должен был быть поддержан в какой-то момент.

0 голосов
/ 22 января 2009

Одно могу вам точно сказать: по состоянию на декабрь 2008 года у Nvidia и ATI не было управляемых классов для своих графических процессоров. Я не знаю, есть ли у них планы на это в ближайшее время.

...