Как вы думаете, какое будущее у GPU как инициативы CPU, такие как CUDA? Как вы думаете, они станут мейнстримом и станут следующей причудой в индустрии? Apple создает новую структуру для использования графического процессора для выполнения задач ЦП, и проект Nvidia CUDA добился большого успеха в науке. Вы бы посоветовали студенту посвятить время этой области?
Выполнимость GPU в качестве процессора?
Ответы (8)
Прежде всего, я не думаю, что эти вопросы действительно относятся к SO.
На мой взгляд, GPU — это очень интересная альтернатива всякий раз, когда вы занимаетесь векторной математикой с плавающей запятой. Однако это означает: это не станет мейнстримом. Большинство основных (настольных) приложений выполняют очень мало вычислений с плавающей запятой.
Он уже набрал обороты в играх (физических движках) и в научных расчетах. Если вы считаете любой из этих двух «мейнстримом», то да, GPU станет мейнстримом.
Я бы не стал рассматривать эти два продукта как основные, и поэтому я думаю, что GPU станут следующей популярной модой в основной индустрии.
Если вы, будучи студентом, проявляете какой-либо интерес к научным расчетам, основанным на физике, вы должны обязательно уделить им некоторое время (в любом случае графические процессоры — очень интересные аппаратные средства).
Выделите время, если вы заинтересованы в научных и параллельных вычислениях. Не думайте о CUDA и превращении графического процессора в процессор. Это позволяет только более прямой метод программирования графических процессоров, чем старые методы программирования GPGPU.
ЦП общего назначения получают свою способность хорошо работать с широким спектром задач из всей работы, которая была направлена на прогнозирование ветвлений, конвейерную обработку, супермасштабирование и т. д. Это позволяет им достигать хорошей производительности при самых разных рабочих нагрузках, в то же время заставляя их терпеть интенсивные операции с плавающей запятой с высокой пропускной способностью памяти.
Графические процессоры изначально разрабатывались для одной задачи, и делали это очень и очень хорошо. Графические операции по своей сути параллельны. Вы можете рассчитать цвет всех пикселей на экране одновременно, потому что между результатами нет зависимостей по данным. Кроме того, необходимые алгоритмы не должны были иметь дело с ветвями, поскольку почти любую требуемую ветвь можно было реализовать, установив коэффициент равным нулю или единице. Таким образом, аппаратное обеспечение может быть очень простым. Не нужно беспокоиться о предсказании ветвлений, и вместо того, чтобы делать процессорный суперскейлер, вы можете просто добавить столько ALU, сколько сможете втиснуть в чип.
Благодаря программируемым текстурным и вершинным шейдерам GPU получили путь к общей программируемости, но они по-прежнему ограничены аппаратным обеспечением, которое по-прежнему предназначено для высокопроизводительных операций с плавающей запятой. Некоторые дополнительные схемы, вероятно, будут добавлены, чтобы обеспечить более общие вычисления, но только до определенного момента. Все, что ставит под угрозу способность графического процессора выполнять графику, не будет реализовано. В конце концов, компании, производящие графические процессоры, все еще занимаются графическим бизнесом, а целевым рынком по-прежнему являются геймеры и люди, которым нужна высококачественная визуализация.
Рынок GPGPU по-прежнему капля в море и в определенной степени останется таковым. В конце концов, «это выглядит красиво» — это гораздо более низкий стандарт, чем «100% гарантированные и воспроизводимые результаты каждый раз».
Короче говоря, GPU никогда не смогут работать как CPU. Они просто предназначены для различных видов рабочих нагрузок. Я ожидаю, что графические процессоры получат функции, которые сделают их полезными для быстрого решения более широкого круга задач, но в первую очередь они всегда будут графическими процессорами.
Всегда будет важно всегда сопоставлять проблему, которая у вас есть, с наиболее подходящим инструментом, который у вас есть для ее решения.
В долгосрочной перспективе я думаю, что GPU перестанут существовать, поскольку процессоры общего назначения будут развиваться, чтобы взять на себя эти функции. Intel Larrabee — это первый шаг. История показала, что ставить против x86 — плохая идея.
Изучение массивно-параллельных архитектур и векторной обработки по-прежнему будет полезно.
GPU никогда не вытеснят CPU. ЦП выполняет набор последовательных инструкций, а ГП параллельно выполняет очень специфический тип вычислений. Эти графические процессоры очень полезны в числовых вычислениях и графике; однако большинство программ никоим образом не могут использовать эту разновидность вычислений.
Вскоре вы увидите новые процессоры от Intel и AMD, которые включают векторные вычисления с плавающей запятой в стиле GPU, а также стандартные вычисления ЦП.
Я думаю, это правильный путь.
Учитывая, что графические процессоры использовались для создания дешевых суперкомпьютеров Похоже, это естественная эволюция вещей. Учитывая, что для вас уже сделано так много вычислительных мощностей и исследований и разработок, почему бы не использовать имеющиеся технологии?
Так что давай, сделай это. Это послужит интересным исследованием, а также законной причиной для покупки этой высококачественной графической карты, чтобы вы могли играть в Crysis и Assassin's Creed с полной графической детализацией ;)
Это одна из тех вещей, для которых вы видите 1 или 2 приложения, но достаточно скоро кто-то придумает «убойное приложение», которое выясняет, как делать с ним что-то более полезное на сверхвысоких скоростях.
Пиксельные шейдеры для применения подпрограмм к большим массивам значений с плавающей запятой, может быть, мы увидим какие-нибудь приложения для покрытия ГИС или ну, я не знаю. Если вы не посвящаете этому больше времени, чем я, тогда у вас будет такой же уровень понимания, как у меня, т.е. немного!
У меня есть ощущение, что это может быть действительно большой вещью, как Intel и S3, может быть, нужно просто добавить 1 небольшую настройку к оборудованию или кому-то с лампочкой над головой.
С таким большим количеством неиспользованной силы я не понимаю, как она может оставаться неиспользованной слишком долго. Вопрос, однако, в том, как для этого будет использоваться GPU. На данный момент CUDA кажется хорошей догадкой, но на горизонте появляются и другие технологии, которые могут сделать ее более доступной для среднего разработчика.
Apple недавно анонсировала OpenCL, который, как они утверждают, намного больше, чем CUDA, но при этом достаточно прост. Я не уверен, что именно с этим делать, но группа khronos (парни, работающие над стандартом OpenGL) работают над стандартом OpenCL и пытаются сделать его максимально совместимым с OpenGL. Это может привести к созданию технологии, которая лучше подходит для обычной разработки программного обеспечения.
Это интересная тема, и, между прочим, я собираюсь начать свою магистерскую диссертацию на тему того, как лучше всего сделать мощность графического процессора доступной для обычных разработчиков (если это возможно) с упором на CUDA.
Давным-давно было действительно трудно выполнять вычисления с плавающей запятой (тысячи/миллионы циклов эмуляции на инструкцию на ужасно производительных (по сегодняшним меркам) процессорах, таких как 80386). Люди, которым требовалась производительность с плавающей запятой, могли получить FPU (например, 80387). Старые FPU были довольно тесно интегрированы в работу ЦП, но они были внешними. Позже они стали интегрированными, а 80486 имел встроенный FPU.
Прежний FPU аналогичен вычислениям на GPU. Мы уже можем получить это с APU AMD. APU — это центральный процессор со встроенным в него графическим процессором.
Итак, я думаю, что фактический ответ на ваш вопрос заключается в том, что графические процессоры не станут процессорами, вместо этого в процессоры будет встроен графический процессор.