Почему центральные процессоры лучше графических процессоров при выполнении обычных задач?

Почему центральные процессоры лучше графических процессоров при выполнении обычных задач?

Я пытаюсь понять относительные преимущества центральных процессоров и графических процессоров.

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

Но по мере того, как я исследовал эту тему, я наткнулся на вопросы и ответы вродеэтот.

Прошу прощения, если этот вопрос может быть слишком общим, но у меня есть лишь элементарная подготовка в области электротехники, и мне было интересно, есть ли простое объяснение, почему ЦП предпочтительнее ГП для обычных задач, таких как описанные в связанных вопросах и ответах: «предсказание ветвлений, конвейеризация, супермасштабирование и т. д.».

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

решение1

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

Если взглянуть на компоновку любого из этих типов ЦП, станет очевидно, чем они отличаются.

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

решение2

Второй ответ в вопросе, ссылку на который вы дали (не принятый, но набравший наибольшее количество голосов), на мой взгляд, хорошо написан и достаточно подробен.

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

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

CPU лучше подходят для широкого спектра задач, выполняемых "обычным" пользователем. Однако, если пользователь знает, что задача потребует обширных математических вычислений, следует рассмотреть GPU. Если задача, в дополнение к математическим вычислениям, может быть распараллелена - такая задача может быть помечена как "GPU customized".

Связанный контент