Почетна » како да » Зашто још увек користимо ЦПУ уместо ГПУ-ова?

    Зашто још увек користимо ЦПУ уместо ГПУ-ова?

    ГПУ се све више користи за графичке задатке као што су израчунавање ризика, прорачун динамике флуида и сеизмичка анализа. Шта нас спречава да усвојимо ГПУ уређаје?

    Данашња сесија питања и одговора долази нам захваљујући СуперУсер-у - подели Стацк Екцханге-а, групне групације К&А веб сајтова у заједници.

    Питање

    Читач СуперУсер Елл држи корак са технолошким новостима и знатижељан је зашто не користимо више ГПУ-базираних система:

    Чини ми се да се ових дана много рачунања врши на ГПУ-у. Очигледно је да се ту ради графика, али користећи ЦУДА и слично, АИ, алгоритми за хеширање (мислим Битцоинс) и други се такође раде на ГПУ-у. Зашто се не можемо једноставно ослободити ЦПУ-а и користити властити ГПУ? Оно што чини ГПУ толико бржим од ЦПУ-а?

    Зашто заиста? Оно што чини ЦПУ јединственим?

    Одговор

    Доприносник СуперУсер-а ДрагонЛорд нуди добро подржан преглед разлика између ГПУ-а и ЦПУ-а:

    ТЛ; ДР одговор: ГПУ-ови имају далеко више процесорских језгара од ЦПУ-а, али пошто свака језгра ГПУ-а ради знатно спорије од ЦПУ језгре и немају значајке потребне за модерне оперативне системе, оне нису прикладне за обављање већине обраде у свакодневном рачунарству. Они су најпогоднији за интензивне операције као што су обрада видеа и симулације физике.

    Детаљан одговор: ГПГПУ је још увијек релативно нови концепт. ГПУ-ови су се првобитно користили само за приказивање графике; како је технологија напредовала, велики број језгара у графичким процесорима у односу на ЦПУ-ове је искориштен развојем рачунских могућности за ГПУ-е тако да могу истовремено обрадити многе паралелне токове података, без обзира на то који су подаци. Док ГПУ-ови могу имати стотине или чак хиљаде стреам процесора, сваки од њих ради спорије од ЦПУ језгре и има мање могућности (чак и ако су комплетне и могу бити програмиране да покрећу било који програм који ЦПУ може да покрене). Карактеристике које недостају у графичким процесорима укључују прекиде и виртуелну меморију, који су потребни за имплементацију модерног оперативног система.

    Другим речима, ЦПУ-ови и ГПУ-ови имају значајно различите архитектуре које их боље прилагођавају различитим задацима. ГПУ може да обради велике количине података у многим токовима, обављајући релативно једноставне операције на њима, али је лоше прилагођен за тешку или сложену обраду на једном или неколико токова података. ЦПУ је много бржи на бази језгра (у смислу инструкција у секунди) и може лакше да обавља сложене операције на једном или неколико токова података, али не може ефикасно да управља са више токова истовремено.

    Као резултат тога, ГПУ-ови нису погодни за руковање задацима који не доносе значајне користи или се не могу паралелизирати, укључујући многе уобичајене корисничке апликације као што су процесори ријечи. Осим тога, ГПУ-ови користе фундаментално различиту архитектуру; требало би програмирати апликацију посебно за ГПУ да би она функционисала, а за програмирање графичких процесора потребне су знатно различите технике. Ове различите технике укључују нове програмске језике, модификације постојећих језика и нове парадигме програмирања које су боље прилагођене за изражавање рачунања као паралелне операције коју ће изводити многи стреам процесори. За више информација о техникама које су потребне за програмирање графичких процесора, погледајте чланке Википедије о обради тока и паралелном рачунању.

    Модерни ГПУ-ови су способни за обављање векторских операција и аритметике с помичним зарезом, с најновијим картицама способним за манипулацију бројевима с помичним зарезом с двоструком прецизношћу. Оквири као што су ЦУДА и ОпенЦЛ омогућавају да се програми пишу за ГПУ-ове, а природа ГПУ-ова их чини најприкладнијим за врло паралелизирајуће операције, као што је у научном рачунању, гдје низ специјализованих ГПУ картица може бити замјена за малу цомпуте цлустер као у НВИДИА Тесла Персонал Суперцомпутерс. Потрошачи са модерним ГПУ-овима који имају искуства са Фолдинг @ хоме могу да их користе да допринесу са ГПУ клијентима, који могу изводити симулације преклапања протеина на веома великој брзини и допринети више рада пројекту (обавезно прво прочитајте ФАК, посебно оне које се односе на ГПУс). ГПУ-ови такође могу омогућити бољу физичку симулацију у видео играма помоћу ПхисКс-а, убрзати кодирање и декодирање видео записа и обављати друге рачунарске задатке. Управо су ти типови задатака који ГПУ највише одговарају за извођење.

    АМД је пионир у дизајну процесора званом Убрзана процесорска јединица (АПУ) која комбинује конвенционалне к86 процесорске језгре и ГПУ-ове. Ово би могло омогућити да ЦПУ и ГПУ компоненте раде заједно и побољшају перформансе на системима са ограниченим простором за одвојене компоненте. Како технологија наставља да напредује, видећемо све већи степен конвергенције ових некада раздвојених делова. Међутим, многи задаци које изводе оперативни системи и апликације на рачунару су још боље прилагођени процесорима, а потребно је много рада да се убрза програм помоћу ГПУ-а. Пошто толико постојећи софтвер користи к86 архитектуру, а због тога што ГПУ-ови захтевају различите технике програмирања и недостају им неке важне функције потребне за оперативне системе, општи прелаз са ЦПУ-а на ГПУ за свакодневно рачунање је изузетно тежак.


    Имате ли нешто да додате објашњењу? Звучи у коментарима. Желите ли прочитати више одговора од других технолошки паметних Стацк Екцханге корисника? Погледајте цео дискусију овде.