Целесообразность использования графического процессора в качестве процессора?[закрыто]

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

  •  09-06-2019
  •  | 
  •  

Вопрос

Как вы думаете, какое будущее у графических процессоров как у таких инициатив, как CUDA?Считаете ли вы, что они станут мейнстримом и очередным увлечением в отрасли?Apple создает новую платформу для использования графического процессора для выполнения задач процессора, и проект Nvidias CUDA добился большого успеха в науке.Можете ли вы предложить студенту посвятить время этой области?

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

Решение

Прежде всего, я не думаю, что эти вопросы действительно относятся к SO.

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

Он уже получил распространение в играх (физических движках) и научных расчетах.Если вы считаете любой из этих двух «мейнстримом», то да, графический процессор станет мейнстримом.

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

Если вы, как студент, интересуетесь научными расчетами, основанными на физике, вам обязательно следует посвятить этому некоторое время (в любом случае графические процессоры - очень интересные аппаратные средства).

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

Выделите время, если вас интересуют научные и параллельные вычисления.Не думайте о CUDA и о том, чтобы графический процессор выглядел как процессор.Он допускает только более прямой метод программирования графических процессоров, чем старые методы программирования GPGPU.

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

Изначально графические процессоры были предназначены для выполнения одной задачи и выполняли ее очень и очень хорошо.Графические операции по своей сути параллельны.Вы можете рассчитать цвет всех пикселей на экране одновременно, поскольку между результатами нет зависимости данных.Кроме того, необходимые алгоритмы не должны были иметь дело с ветвями, поскольку практически любую необходимую ветвь можно было получить, установив коэффициент равным нулю или единице.Таким образом, аппаратное обеспечение может быть очень простым.Нет необходимости беспокоиться о предсказании ветвей, и вместо того, чтобы создавать суперскалер процессора, вы можете просто добавить столько ALU, сколько сможете втиснуть в чип.

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

Рынок GPGPU по-прежнему является каплей в море и в определенной степени таковым и останется.В конце концов, «выглядит красиво» — это гораздо более низкий стандарт, чем «100% гарантированные и воспроизводимые результаты каждый раз».

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

Всегда важно сопоставить возникшую проблему с наиболее подходящим инструментом для ее решения.

Я думаю, что в долгосрочной перспективе графические процессоры перестанут существовать, поскольку процессоры общего назначения будут развиваться, чтобы взять на себя эти функции. Ларраби от Intel это первый шаг.История показала, что делать ставки против x86 — плохая идея.

Изучение массово-параллельных архитектур и векторной обработки по-прежнему будет полезно.

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

Вскоре вы начнете видеть новые процессоры от Intel и AMD, которые включают в себя векторные вычисления с плавающей запятой в стиле графического процессора, а также стандартные вычисления ЦП.

Я думаю, что это правильный путь.

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

Так что давай и делай это.Это станет отличным поводом для интересного исследования, а также законной причиной купить эту высококачественную видеокарту, чтобы вы могли играть в Crysis и Assassin's Creed с полной детализацией графики ;)

Это одна из тех вещей, для которых вы видите 1 или 2 приложения, но довольно скоро кто-то придумает «убийственное приложение», которое поймет, как с его помощью сделать что-то более полезное на сверхбыстрых скоростях.

Пиксельные шейдеры для применения процедур к большим массивам значений с плавающей запятой, возможно, мы увидим какие-нибудь приложения для покрытия ГИС или, ну, я не знаю.Если вы не посвятите этому больше времени, чем я, то у вас будет такой же уровень понимания, как у меня, то есть немного!

У меня такое чувство, что это может стать действительно большим достижением, как это делают Intel и S3, возможно, ему просто нужно добавить одну небольшую настройку в аппаратное обеспечение или кого-то с лампочкой над головой.

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

Apple недавно анонсировала OpenCL, который, по их утверждению, представляет собой нечто большее, чем CUDA, но при этом довольно простой.Я не уверен, что именно об этом думать, но группа khronos (ребята, работающие над стандартом OpenGL) работают над стандартом OpenCL и пытаются сделать его максимально совместимым с OpenGL.Это может привести к появлению технологии, которая лучше подходит для обычной разработки программного обеспечения.

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

Давным-давно было действительно сложно выполнять вычисления с плавающей запятой (тысячи/миллионы циклов эмуляции на инструкцию на ужасно производительных (по сегодняшним меркам) процессорах, таких как 80386).Люди, которым нужна производительность с плавающей запятой, могут приобрести FPU (например, 80387.Старые FPU были достаточно тесно интегрированы в работу CPU, но они были внешними.Позже они были интегрированы: в 80486 был встроен FPU.

Старый FPU аналогичен вычислениям на графическом процессоре.Мы уже можем получить это с помощью APU AMD.APU — это процессор со встроенным в него графическим процессором.

Итак, я думаю, что фактический ответ на ваш вопрос таков: графические процессоры не станут процессорами, вместо этого в процессоры будет встроен графический процессор.

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