Почему Майк Паунд измеряет вычислительные возможности своего компьютера по его видеокартам, а не по процессорам?

17

Недавно я смотрел отличное видео Computerphile о паролях, в котором Майк Паунд хвастается суперкомпьютером своей компании, имеющим 4 видеокарты (точнее, Titan X).

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

Ra31513
источник
11
Я не думаю, что это обязательно вопрос Гориллы против Акулы ... Есть простой вопрос: "Почему Майк Паунд измеряет вычислительные возможности своего компьютера по его видеокартам, а не по процессорам?" на который можно ответить, и его ответ имеет конструктивное значение для будущих читателей.
Может быть,
6
@gnat: даже не близко. Конечно, вопрос, в его нынешнем виде, на самом деле не о разработке программного обеспечения. Но я думаю, это можно было бы интерпретировать как вопрос о системной инженерии, где система = «комбинация аппаратного + программного обеспечения».
Док Браун
10
Компьютер с 4 графическими картами не является суперкомпьютером (равно как и кластер из 10 Raspberry Pis).
Матти Вирккунен
10
Это просто очень дорогая настройка ПК, а не суперкомпьютер ...
Бакуриу
3
Разве это не простой ответ на вопрос «Почему Майк Паунд измеряет вычислительные возможности своего компьютера по его видеокартам», потому что контекст - это взлом пароля? Если у вас проблема с пространством, это то, о чем вам нужно заботиться, может быть что-то совсем другое.
JimmyJames

Ответы:

32

Майк Паунд, очевидно, ценит вычислительные возможности графических карт выше, чем вычислительные возможности процессоров.

Почему? Графическая карта в основном состоит из МНОГИХ упрощенных процессоров, которые работают параллельно. Для некоторых работ по моделированию многие вычисления могут быть легко распараллелены и обработаны параллельно на тысячах ядер, имеющихся в графических картах, что сокращает общее время обработки.

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

Maybe_Factor
источник
5
Добавляем несколько цифр. Допустим, ваш главный компьютер будет AMD Epyc Server, 64 ядра, 128 с Hyperthreading. Скажем также, что «ядро» видеокарты всего на 10% быстрее. ОДИН TitanX все еще имеет 3072 ядра cuda, примерно 12000 для установки. Получите идею? Если вы можете запустить задачу на видеокарте, это не «быстрее» - это все равно, что сравнивать скорость кареты с автомобилем формулы 1.
TomTom
3
+1 за «смущающе параллельный набор простых вычислений», очень хорошо написано. Коротко и точно.
Майкл Виктор Старберг
11
@TomTom: На самом деле мое предпочтительное сравнение - сравнивать машину формулы 1 (ваш процессор) с сверхскоростным пассажирским экспрессом. Конечно, поезд и машина примерно одинаковой скорости. Но поезд может перемещать 1000 человек от А до Б быстрее, чем машина формулы 1.
Slebetman
2
@slebetman суть в том, что процессор, как правило, намного быстрее в одноядерной производительности (не примерно с той же скоростью). Может быть, мы можем пойти на компромисс и сравнить сверхзвуковой реактивный самолет с паровозом.
Даррен Рингер
2
Если бы мне пришлось выбирать аналогию, основанную на транспортном средстве, я бы сказал, что процессор похож на истребитель (он намного быстрее для перевозки из пункта в пункт и имеет много трюков в рукаве, чего не могут другие транспортные средства, но могут только несут очень небольшую нагрузку), в то время как графический процессор похож на грузовое судно (он может нести значительно большую нагрузку параллельно, но имеет гораздо более медленный оборот).
Ли Райан
5

Проверьте https://developer.nvidia.com/cuda-zone (и Google CUDA NVIDIA для получения дополнительной информации). Архитектура cuda и высококачественные видеокарты довольно широко используются в настольных суперкомпьютерах. Как правило, вы можете собрать коробку с несколькими Tflop менее чем за 10 000 долларов США, используя готовые компоненты whitebox.

Так...

Как энтузиаст численного моделирования, я мечтаю создать рабочий стол исключительно для симуляции

... cuda - лучшая игра в городе для вас. Может быть, попробуйте еще раз спросить на /scicomp// или другом веб-сайте stackexchange, более тесно связанном с подобными вещами.

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

Джон Форкош
источник
И мы вернулись в Ордос как обычно.
Майкл Виктор Старберг
2
@MichaelViktorStarberg Я единственный, кто не понимает ссылки на Ордос?
MarnixKlooster ReinstateMonica
Боюсь, что вы ...: /
Исмаэль Мигель
4
@MarnixKlooster: мне пришлось гуглить "Ордос". Не уверен, что «город-призрак» в Китае связан с суперкомпьютерами или терафлопсами.
Роберт Харви
@MarnixKlooster Вы действительно нет.
jpmc26
2

Если бы я строил компьютер, о каком предмете я должен заботиться больше?

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

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

Off к гонкам разработки программного обеспечения

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

На высоком уровне проблема - древние и почтенные дебаты MIMD / SIMD. Системы с несколькими инструкциями и несколькими данными стали главными победителями в области общих и коммерческих вычислений. В этой модели, которая включает SMP, существует несколько процессоров, каждый из которых выполняет свой собственный отдельный поток команд. Это компьютерный эквивалент французской кухни, куда вы направляете небольшое количество опытных поваров для выполнения относительно сложных задач.

Системы с одной инструкцией / несколькими данными, с другой стороны, больше напоминают огромную комнату, полную клерков, прикованных к их столам в соответствии с инструкциями главного контроллера. «Все ДОБАВЛЯЮТ строки 3 и 5!» Он использовался в чистом виде в ILLIAC и некоторых «мини-супер» системах, но потерян на рынке. Нынешние графические процессоры - близкие родственники, они более гибкие, но придерживаются общей философии.

Подводя итог вкратце:

  • Для любой данной операции процессор будет быстрее, а графический процессор может выполнять много одновременно. Разница наиболее очевидна с 64-битными числами.
  • Ядра процессора могут работать на любом адресе памяти, данные для графического процессора должны быть упакованы в меньшую область. Вы выигрываете, только если вы делаете достаточно вычислений, чтобы компенсировать время передачи.
  • Код, насыщенный условными выражениями, обычно будет более счастливым на процессоре.
Мэтью Готье
источник