Защо видеокартите копаят по-добре от процесорите

Първо, нека изясним:

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

Ядрото на процесора обработва 4 32-битови инструкции на такт (SSE) или 8 32-битови инструкции на такт (AVX), докато графичният процесор Radeon HD 5970 е в състояние да обработва 3200 32-битови инструкции на такт (използвайки своите 3200 ALU или шейдъри). Оказва се, че в този пример GPU е в състояние да обработва 800 (или 400 (с AMX)) пъти повече инструкции на такт от CPU.

Дори въпреки факта, че от 2011 г. CPU CPU C 6, 8 и 12 ядра и тактова честота в областта от 2000-3000 MHz и повече, GPU Radeon HD 5970 (с тактова честота 750 MHz) остава повече от четири пъти по-бърз от 12-ядрен процесор с честота 2,3 GHz (с цената на последния в района на $ 4700, за разлика от $ 350, за разлика от $ 350. HD5970).

CPU - "главен"

Централните процесори са предназначени основно за вземане на решения според програмните инструкции. Например, ако отпечатате документ и го запишете, тогава работата на процесора е да конвертира вашия документ в подходящия тип файл и да инструктира твърдия диск да запише този файл. Процесорът също така може да извършва математически изчисления, всеки CPU има едно или повече ALU, може да следва инструкциите „ако това се случи, направете това, в противен случай направете нещо друго“. Голям брой процесорни елементи са заети да следят дали останалите елементи могат да превключат към нова задача в точното време.

Централният процесор също така изпълнява много други операции, които добавят сложност към неговата архитектура, включително:

  • ограничаване на привилегиите между потребителските програми и операционната система
  • създаване на "илюзия" за виртуална памет за работещи програми
  • осигуряване на обратна съвместимост за изпълнение на наследени програми и инструкции

GPU - "работи"

Представете си, че процесорът е малка група от много умни хора. Те са в състояние бързо да се справят с всяка задача. Тогава графичният процесор е голяма група от „бездарни“, всеки от които не е в състояние бързо да изпълни нито една задача, но които могат да бъдат научени да изпълняват повтарящи се действия. В този случай производителността на голям брой „безталантливи“ хора, извършващи един и същи тип повтаряща се работа, ще бъде по-висока от производителността на малък брой много умни хора, вършещи същата работа.

Това не означава, че процесорът е дебел, развален или мързелив. Както CPU, така и GPU са направени от милиарди микроскопични транзистори върху малко парче силиций и това, което позволява на CPU да върши работата си добре, е по-сложната структура на всеки елемент. Структурата е по-сложна - всеки елемент заема повече площ, а площта върху силициевия чип е скъпа. За разлика от CPU, в GPU структурата на всеки елемент е проста и малка по площ, което ви позволява да поставите по-голям брой "посредствени" елементи на един чип.

Първо, AMD проектира своите GPU с голям брой прости ALU (VLIW архитектура), работещи на ниски тактови скорости (средно 1120-3200 ALU при 625-900 MHz), докато дизайнът на GPU на Nvidia се състои от по-малко по-сложни ALU, компенсирани от по-високи тактови скорости (448-1024 ALU средно при 1150-1544 MHz). Поради разликите в архитектурата на GPU, ALU на Nvidia заемат по-голям отпечатък отALU AMD, съответно Nvidia поставя по-малък брой ALU в чипа. Това води до победа на графичните процесори на AMD при решаването на проблеми, при които производителността на ALU е най-важна:

  • AMD Radeon HD 6990: 3072 ALU x 830 MHz = 2550 милиарда 32-битови инструкции в секунда
  • Nv >Тази приблизително 2x-3x разлика в производителността се наблюдава в диапазона от GPU линии на AMD и Nvidia, което влияе върху скоростта на решаване на всички задачи, свързани с ALU, като биткойни, отгатване на парола (груба сила) и др.