Графичен процесор – Уикипедия

Графичният процесор (на английски: graphics processing unit, GPU) е специализиран микропроцесор за обработка на графични изображения. Тъй като съвременните компютри работят с голямо количество графични данни, обособяването на специализирано устройство за по-ефективната им обработка значително повишава производителността.

Графичният процесор може да бъде интегриран в дънната платка на компютъра или да бъде предоставен като отделно устройство – графична карта, съдържаща освен самия процесор и поддържащи схеми. GPU се използва във вградените (специализирани) системи, мобилните телефони, персоналните компютри, работните станции и игралните конзоли.

Архитектура[редактиране | редактиране на кода]

Съвременните графични устройства са специализирани в управлението на компютърна графика и тяхната силно паралелна структура на изчисления ги прави много по-ефективни при боравенето с редица алгоритми, за разлика от централния процесор. В домашния компютър видеокартата може да е отделен компонент или вградена в дънната платка. Над 90% от новите стационарни и преносими компютри имат вградени видеокарти, които обикновено са далеч по-маломощни от тези, които са във вид на отделен компонент.

Изчислителни функции[редактиране | редактиране на кода]

Съвременните GPU ползват повечето си транзистори за изпълняването на изчисления, свързани с 3D компютърна графика. В началото са се ползвали за ускоряване на задачи, свързани с интензивна употреба на паметта като например налагането на картинка върху многоъгълник (полигон) (на английски: texture mapping) и възпроизвеждането на самите полигони; по-късно се добавят и устройства за ускоряване на геометрични изчисления като ротация и транслация на върхове (на обекти) в различни координатни системи. Понеже повечето от изчисленията, извършвани от модерната видеокарта, включват работа с матрици и вектори, все по-често инженери и учени изучават употребата на видеокартите за неграфични изчисления.

История[редактиране | редактиране на кода]

Графични ускорители[редактиране | редактиране на кода]

  • GPU, т.е. устройството, което обработва графиката (картинните изображения), е свързан с графичната карта микропроцесор, който е предназначен за изчисляването на операции (математически действия) с плаваща запетая.
  • Графичният ускорител съдържа специално изработени за тази цел микрочипове, служещи за изпълнение на определени математически операции за възпроизвеждане на 3D графика. Поради това ефективността на ускорителя зависи от ефективността на чиповете.
  • GPU устройството изпълнява редица графични примитивни операции по такъв начин, че изпълнението им става значително по-бързо, отколкото директното им разчертаване на екрана с текущия централен процесор (CPU). Най-често срещаните математически операции, използвани в ранната 2D компютърна графика, включват растерни действия (комбинират се няколко bitmap шаблона), и операции за чертане на квадрати, триъгълници, кръгове, и дъги. Съвременните графични устройства поддържат 3D компютърна графика и обикновено включват функции за цифрово видео.

70-те години на XX век[редактиране | редактиране на кода]

Чиповете ANTIC и CTIA осигуряваха хардуерен контрол върху смесена графика и текстови режими, позиционирането и изобразяването на т.нар. sprite-ове (двуизмерни, предварително възпроизведени картинки), и други ефекти за 8-битовите компютри на Атари. ANTIC чиповете бяха процесори със специална цел, и се ползваха за организиране на текстови и графични данни за видео-изхода. Проектантът на ANTIC чипа, Джей Майнър, впоследствие разработи графичния чип за Commodore Amiga.

80-те години на XX век[редактиране | редактиране на кода]

Професионалният графичен контролер на IBM (IBM Professional Graphics Controller) е един от първите 2D/3D графични ускорители за IBM PC. Пуснат на пазара през 1984, 10 години преди хардуерното 3D ускорение да стане стандарт, неговите висока цена (тогавашни $4500), бавен процесор (модел 8088 – 2 работещ на 8 MHz), и липса на съвместимост с тогавашните търговски планове направиха невъзможен успеха на този контролер на масовия пазар.

Commodore Amiga е първият компютър на широкия пазар, който се отличаваше с това, което днес се приема за цялостен графичен ускорител, отнемайки на практика целия изчислителен товар от централния процесор за възпроизвеждането на всички видео-функции, включително чертане на линия, запълване на площ, графичен ко-процесор, и др. Преди това задачата по чертането върху дисплея падаше изцяло върху централния процесор.

90-те години на XX век[редактиране | редактиране на кода]

През 1991, фирмата S3 Graphics представя първия 2D ускорител, който е на единичен чип, а именно -- S3 86C911 (името идва от Porsche 911 като индикация за скока в производителността, който гарантира). Този чип роди множество имитации: към 1995, всички главни производители на графични чипове добавиха 2D ускорение към своите видеокарти. По това време вече Windows – ускорителите (ускорители специално за Windows) надминаха по производителност по-скъпите ко-процесори (които могат да изпълняват и други функции).

В периода на 90-те години 2D ускорението продължи да се развива. Появиха се т.нар. API (програмен интерфейс за приложения) за различни задачи, като например WinG графичната библиотека за Windows 3.x, и по-късно техният DirectDraw интерфейс за хардуерно ускоряване на 2D игри с Windows 95 и по-късните версии на операционната система.

В началото и средата на 90-те подпомогнатите от централния процесор 3D графики започваха да стават все по-често явление в компютърните и конзолните игри, което доведе до нарастване в търсенето на графични ускорители. В света на компютрите, забележителни неуспешни единични опити за евтини 3D графични чипове бяха S3 ViRGE, ATI Rage, и Matrox Mystique. Тези чипове в основата си бяха старо поколение 2D ускорители с добавени 3D възможности. Първоначално качествената 3D графика беше възможна само с отделни карти, посветени изцяло за ускоряването на 3D функциите (и с липсващи всякакви 2D функции), примерно с Voodoo картата на 3dfx. И все пак, с развиването на производствената технология, и трите функционалности – видео, 2D и 3D – бяха интегрирани в един чип. Чиповете Verite на Rendition бяха сред първите подобни чипове, постигнали успех.

От 2000 г. до днес[редактиране | редактиране на кода]

С появата на OpenGL API и подобната функционалност на DirectX, се появиха възможности за имитиране на осветеност, сенки, полупрозрачност, огледални ефекти, ефект на награпяване и отблясъци върху плосък полигон и други.

С нарастването на изчислителната мощ на графичните карти, нарасна и тяхната електрическа консумация. Високо-производителните видеокарти често потребяват повече енергия, отколкото текущите централни процесори.

В днешно време, паралелно-изчисляващите графични устройства (изчисляват различни операции едновременно) започнаха да отнемат от изчислителната работа на централния процесор, и вече се срещат т.нар. GPGPU (General Purpose GPU), които вършат работа и като централни процесори. Подобна технология намери широко приложение -- изследване за нефт, научни обработки на изображения, линейна алгебра, 3D реконструкции и дори за определяне на цените на борсата.

Компании, произвеждащи графични устройства[редактиране | редактиране на кода]

Много компании произвеждаха GPU устройства под редица търговски названия. През 2008, Intel, NVIDIA, и AMD/ATI бяха търговските лидери, с пазарен дял съответно 49,4%, 27,8%, и 20,6%. И все пак, в тези числа се включват изключително евтините, ниско-производителни вградени графични решения. Ако не ги броим, NVIDIA и AMD контролират почти 100% от пазара. Компаниите VIA Technologies/S3 Graphics и Matrox също произвеждат видеокарти.

Форми на устройството[редактиране | редактиране на кода]

Самостоятелни графични карти[редактиране | редактиране на кода]

Мощните видеокарти обикновено комуникират с дънната платка посредством разширителен слот, например чрез PCI Express (PCIe) или Accelerated Graphics Port (AGP), и могат да се подменят сравнително лесно, с уговорката, че дънната платка поддържа новата карта. Няколко видеокарти все още ползват PCI (Peripheral Component Interconnect) слотове, но нивото им на пренос на данни (bandwidth) е толкова ограничено, че обикновено се ползват само ако не е наличен друг слот. Самостоятелните видеокарти за лаптопи обикновено се свързват с дънната платка посредством нестандартен, и често – патентован – слот, поради тясното пространство в тях. Подобни слотове, все пак се определят като PCIe или AGP, в зависимост от логическия интерфейс.

Технологии като SLI от NVIDIA и CrossFire от ATI позволяват да се ползват няколко видеокарти за изчертаването на единствено изображение, което увеличава наличната графична мощ.

Вградени графични решения[редактиране | редактиране на кода]

Интегрираните графични решения представляват графични процесори, които ползват част от наличната системна RAM (Памет с Произволен Достъп) вместо специална видеопамет (предназначена за (и се намира във) видеокартата). Компютрите с вградени карти представляват 90% от всички новозакупени компютри. Подобни решения често се определяха като негодни за 3D игра, или за интензивни програми като Adobe Flash. И все пак, днешните вградени решения като например GMA X4500HD на Intel, Radeon HD 3200 на AMD, и GeForce 8200 на NVIDIA са мощни повече от достатъчно за 2D изображения от Adobe Flash или за 3D игри с не особено натоварваща графика. За високо-качествените игри обаче, все още е необходима самостоятелна графична карта. Някои съвременни дънни платки имат вградена видеокарта, но съдържат и разширителен слот за добавяне на самостоятелна карта.

Понеже GPU използва крайно интензивно паметта, може да се случи една вградена карта да се „съревновава“ с централния процесор за и без това бавната системна RAM. Обикновено, системната памет има ниво на пренос на данни в рамките на 2 – 12.8 Gbit/s, а в същото време самостоятелните карти се радват на информационен дебит между 10 и 100 Gbit/s в зависимост от модела.

Хибридни решения[редактиране | редактиране на кода]

Този нов клас графични устройства се съревновават с вградените карти на пазара за евтини, стационарни компютри, и лаптопи.

Видеокарта с отворен код[редактиране | редактиране на кода]

Видеокартата с отворен код е хардуерен проект, който дава възможност същата тази видеокарта да бъде препрограмирана според нуждите на потребителя.