CUDA, OpenCL, PGI и т.д .... но что случилось с GLSL и Cg? - PullRequest
7 голосов
/ 11 июня 2009

CUDA, OpenCL и опции GPU, предлагаемые Portland Group, интригуют ... Результаты впечатляют ( 125-кратное ускорение для некоторых групп). Похоже, что следующая волна инструментов GPGPU готова доминировать в мире научных вычислений. Однако я вспоминаю ту же фанфару, когда были объявлены GLSL и Cg.

Что случилось с GLSL и Cg? Была ли прекращена поддержка? Люди все еще используют GLSL & Cg для вычислений общего назначения на графических процессорах?

Ответы [ 3 ]

12 голосов
/ 22 июня 2009

Дни использования Cg или GLSL для GPGPU почти закончились. Тем не менее, они интенсивно используются для 3D-графики и будут использоваться таким образом в обозримом будущем. GLSL и Cg использовались только для научных вычислений, потому что они были единственной игрой в городе. Не было другой альтернативы для вычислений общего назначения на GPU.

Единственная реальная причина использовать GLSL для GPGPU прямо сейчас - быть независимым от платформы. Если вам абсолютно необходимо иметь возможность запускать свое программное обеспечение на различных графических процессорах, это пока еще путь. OpenCL изменит это в ближайшем будущем.

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

4 голосов
/ 11 июня 2009

Ты сравниваешь яблоки с апельсинами. CUDA и OpenCL предназначены для вычислений общего назначения на графических процессорах. GLSL и Cg являются шейдерными языками. Они в первую очередь предназначены для написания шейдеров, а не для вычислений общего назначения.

Я не знаю о фактическом статусе GLSL, но я знаю о Cg. Прошло много лет с тех пор, как я использовал его, но мой друг, который только что работал над новой трехмерной игрой, использовал Cg ​​для написания своих шейдеров. Даже если у Cg нет той же поддержки сообщества и отрасли, которая была когда-то, она все еще существует, и вы все равно можете ее использовать.

0 голосов
/ 24 сентября 2010
  • Cg / HLSL если вы разработчик игры.
  • OpenCL , если вы очень увлеченный разработчик игр.

Никто другой на рабочем столе не может даже гарантировать, что у него будет необходимое оборудование.

Будущее всех этих решений выглядит неясным. Мы, вероятно, увидим еще как минимум 1 или 2 поколения языков, прежде чем GPGPU подключится к рабочему столу и объединится

...