Если бы я строил компьютер, о каком предмете я должен заботиться больше?
С практической точки зрения вам, вероятно, стоит уделить немного внимания материнской плате и процессору, учитывая относительную сложность обновления по сравнению с графическим процессором. После покупки наступает ужасное время, чтобы обнаружить, что у вас нет места для четырех графических процессоров или достаточно быстрого процессора, чтобы все они были заняты.
Вы также должны знать, что производительность GPU чаще всего сообщается в FLOP одинарной точности, а для двойной точности падает совсем немного. Если вам нужна дополнительная точность в ваших симуляциях, вы окажетесь намного ниже заявленной скорости.
Off к гонкам разработки программного обеспечения
С точки зрения программного обеспечения действительно существует две основные проблемы: узкое место фон Неймана и модель программирования. Процессор имеет довольно хороший доступ к основной памяти, у графического процессора большой объем встроенной памяти. Не секрет, что время перемещения данных в и из графического процессора полностью сводит на нет любую выигрыш в скорости. В общем, процессор является победителем для умеренных вычислений на больших объемах данных, в то время как графический процессор выделяется при больших вычислениях на меньших объемах. Все это подводит нас к модели программирования.
На высоком уровне проблема - древние и почтенные дебаты MIMD / SIMD. Системы с несколькими инструкциями и несколькими данными стали главными победителями в области общих и коммерческих вычислений. В этой модели, которая включает SMP, существует несколько процессоров, каждый из которых выполняет свой собственный отдельный поток команд. Это компьютерный эквивалент французской кухни, куда вы направляете небольшое количество опытных поваров для выполнения относительно сложных задач.
Системы с одной инструкцией / несколькими данными, с другой стороны, больше напоминают огромную комнату, полную клерков, прикованных к их столам в соответствии с инструкциями главного контроллера. «Все ДОБАВЛЯЮТ строки 3 и 5!» Он использовался в чистом виде в ILLIAC и некоторых «мини-супер» системах, но потерян на рынке. Нынешние графические процессоры - близкие родственники, они более гибкие, но придерживаются общей философии.
Подводя итог вкратце:
- Для любой данной операции процессор будет быстрее, а графический процессор может выполнять много одновременно. Разница наиболее очевидна с 64-битными числами.
- Ядра процессора могут работать на любом адресе памяти, данные для графического процессора должны быть упакованы в меньшую область. Вы выигрываете, только если вы делаете достаточно вычислений, чтобы компенсировать время передачи.
- Код, насыщенный условными выражениями, обычно будет более счастливым на процессоре.