fbpx
Можете да изберете дали да четете сайта в светла или тъмна тема

GPU vs CPU: къде е разликата?

CPU vs. GPU къде е разликата

Едночиповите системи (SoC) в съвременните смартфони съдържат различни обработващи компоненти, но двата най-широко използвани са – централният процесор – CPU ( Central Processing Unit (CPU)) и графичният процесор (Graphics Processing Unit (GPU)). Акронимите изглеждат подобни, като и двата процесора обработват множество данни, но разликите в прилаганите за това технологии са значими.

Преди да се потопим в ключовите разлики между GPU и CPU, нека започнем с някои базови концепции.

Ядрата на CPU и GPU са изградени от набор под-блокове, като всеки от тях изпълнява определени задачи, възложени на процесора. Тези блокове варират по размер и обхват на действие, според това как е проектирана микро-архитектурата. Масово се използва Аритметичното-логическо устройство (Arithmetic Logic Unit (ALU)), което изпълнява математически операции, като например събиране и умножение. Други широко използвани устройства и от двата процесора са за паметта (зареждане и съхраняване), декодиране на инструкции и кеширане. И тук приключваме с приликите 

 Нека продължим към концепциите на ядрата на GPU vs CPU:

Какво е CPU?

Най-лесно е да си представим, че CPU е мозъкът на машината. Той е изключително гъвкав, “следва начертания път”, и може да изпълбява голям обхват задачи. CPU в телефона е отговорен за изпълнението на логческите задачи и операциите, възложени от Андроид системата, както и от приложенията.

CPU обичайно са с многоядрени конфигурации – между 4 и 8 за мобилните устройства, 16 или повече за десктоп и сървъри. При многоядрените процесори е възможно едновременното изпълнение на множество задачи, с по-добри енергийна ефективност и производителност. CPU могат да се конфигурират с високоскоростна памет, в която се съхраняват инсктукции и данни за кеш. Кешът също може да е индивидуален за всяко ядро на CPU, или споделен между ядрата, и това е съществено за постигане на висока скорост на изпълнение на заачите, и превключването между задачите.

В съвременните CPU има няколко ALU, проектирани за обработване на цифри, съответно има и множество транзистори. CPU също трябва да справят и с пренареждането на виртуалната памет за изпълняваните приложения, което е съществено за ОС. CPU също трябва да предвидят и кои данни и инструкции ще са необходими в близко време. Това спасява при по-бавна RAM, и е полезно при претоварване на CPU. При съвременните GPU няма такива възможности за предвиждане, тъй като там натоварването е съвсем различно.

Какво е GPU?

Както вече споменахме в GPU няма предвиждане, поради различното естество на натоварането. И това е ключовата разлика между GPU и CPU. Ако CPU е проектиран да се спраави с почти всичко, то GPU е създаден с разлчна цел – паралелно обработване на данни за 3D графики. Той е предвиден да е многo по-бърз, по-мoщен, но пък не е така гъвкав.

Ядрата на GPU имат един или повече ALU, но са проектирани доста различно, спрямо основните ALU на CPU. Весто да борави с едно или две числа едновременно, GPU действа с 8, 16, или дори 32 операции наведнъж. Също така, ядрата на GPU могат да имат десетки, дори стотици ALU ядра, чрез които да обработват хиляди числа едновременно. Това е много полезно, когато в даден цвят има милиони пиксели, които да се визуализират на дисплей с висока резолюция.

Тези паралелни изчисленя често се групират в т.нар warp (вързоп). По този начин група с данни и инструкции преминава през целия път на изчисления наведнъж, вместо множество отделни инструкции да се извършват по отделно, което е по-характерно за CPU. С други думи, GPU архитектурите са проектирани да пренасят големи количества сходни данни наведнъж, като съответно прилагат една инструкция за тях (голям обеми данни). Докато инстркциите при CPU са за доста по-малко данни наведнъж.

Скоростта при GPU е доста по-ниска отколкото при CPU. Ограничения се налагат поради затоплянето , както и защото мащабното паралено обработване на дани изисква много повече транзистори, отколкото в ALU на CPU . Прилагането на мащабни изчисления за големи обеми може де се прилага и за процеси, различни от графичните. Алгоритните за video rendering, machine learning – като разпознаване на обекти, криптографските алгоритми също се осъществяват много по-бързо на GPU, oтколкото при ограниченията на CPU.

GPU vs CPU in a nutshell

Като финална аналогия, можем да гледаме на CPU, като ножче за швейцарската армия, а на GPU – като на мачете. Армейските ножове са удобни за всякави разнородни дейности – от рязане на въжета, до отваряне на консери с боб. Последното не бихте опитали да направите с мачете, нали? Но ще пожелаете бруталната мощ на едно мачете, когато се налага да си проправяте път в непроходима джунгла, и там швейцарското ножче няма да Ви е от особена полза.

За да се справи с големия обем задач, CPU разполага с голям набор инструкции. Ядрата са по-гъвкави, позвоялващи множество приложения и задачи да се изпълняват паралелно. Докато GPU имат доста по-малко инструкции, и изпълняват по една задача, но пък извършват много повече математически операции в един времеви цикъл. Да го наречем – специализация.

И в заключение, въпреки, че CPU и GPU са изградени от транзистори, и обработват данни и числа, те са предвидени за различни цели. И в SoCs се влагат най-добрите от двата вида, интегрирани заедно.

Total
1
Shares
Вашият коментар

Вашият имейл адрес няма да бъде публикуван.

Предишна публикация

Есенно настроение на дисплея

Следваща публикация

Fuchsia OS на Google

Подобни публикации
Read More

USB и Bluetooth аксесоари могат да се използват за наблюдение на потребители на Android

Отдавна сме свикнали с факта, че вируси и различни уязвимости редовно се появяват на устройства с Android, които позволяват на хакери да откраднат личните…
Total
1
Share