Ревю на Radeon HD  7970 - част първа
9 януари 2012 |
skill level 3/5:

Ревю на Radeon HD 7970 - част първа

Анализ на архитектурата и преглед на новите функции

10345 прочитания
15 одобрения
2 неодобрения

Анализ на архитектурата Graphics Core Next

Въпреки, че понякога проявявам уклон към натрупване на информация по напълно отвлечени и непрактични теми, които не могат да ми донесат никаква полза, освен неоправдано високо самочувствие, считам себе си по-скоро за практичен, отколкото за академичен типаж. Ето защо в контекста на тази статия считам, че за средноаритметичният мислещ индивид е идейно да знае защо се появи Graphics Core Next. Нещата там опират до генерална стратегия, до нова парадигма, която ще задвижва колелото на промените в  този пазарен сектор; за гората, а не за отделните дървета. Прагматизмът предполага  да се интересуваме главно каква ще е ползата за потребителя от новата  архитектура. На практика от геймърска гледна точка тези промени са напълно ирелевантни. Тъкмо затова се колебая дали изобщо да копна, ако ще и плитичко в особеностите на Graphics Core Next, и все пак ще го направя. Отново, съветвам практичните да прескочат следващите параграфи.

Необходимостта от Graphics Core Next започва с разбирането на архитектурите тип VLIW. Последните са се доказали като особено ефективни в графичните приложения и не чак дотам адекватни спрямо общоизчислителните задачи. Това е така, защото VLIW се справят толкова по-добре, колкото по-малка част от данните, над които се изпълняват операциите, зависят  една от друга.

Първата си архитектура с унифицирани шейдъри AMD/ATI представят през 2007-ма (това е времето на ядрото R600 и поколението HD 2000) и най-важните решения около продукта са правени поне година по-рано. По онова време игрите с поддръжка на DirectX 10 все още са малко и конструкторите на ATI изграждат устройство, което е максимално ефективно обработката на DirectX 9 игри. Това са времена, в които GPGPU са в прощъпулника си и парите, които се правят там са едва по няколко милиона долара годишно.

 

VLIW5: Шейдърният процесор съдържа пет шейдъра, само един от които може да извършва по-сложни трандцендентални операции. Тази организация най-ефективна при игрите използващи DirectX 9 e реализирана във всички видеокарти oт генерациите между HD 2000 и HD 5000.

При VLIW5 шейдърите са организирани на групички по пет и формират така наречените шейдърни процесори (Shader Processing Units, съкр. SPU). Всяка от тях разполага със собствен блок за предсказване на разклоненията; освен това последният, пети шейдър във всеки SPU е по-специален от другите. Това е така нареченият Т-unit и единствено той е способен да извършва по-сложните трансцендентални операции освен по-простите аритметично-логически операции над целочислени и данни с плаваща запетая, които могат да се извършват от всички пет шейдъра. Изцяло на базата на архитектурата VLIW5 са реализирани четири поредни поколения видеокарти – от HD 2000 до HD 5000 включително, а освен това тя се използва и в почти всички видеокарти от генерацията HD 6000 с изключение на семейството HD 6900.

 

VLIW4: Броят на шейдърите в състава на SPU е редуциран до четири като те са напълно еднакви. Тази организация е реализирана единствено в трите модела HD 6900, използващи ядрото Cayman.

През 2008-ма година се проектира ядротo Cayman, използвано в  томподелите на поколението HD 6000 (Northern Islands). Анализите на работата, проведени над видеокартите HD 5000 показват, че средното натоварване на в рамките на шейдърния процесор (SPU) е 3,4 от 5 - иначе казано единият от  шейдърите почти винаги остава „безработен”. Следователно е логично той да бъде премахнат и по такъв начин да се освободи място за повече изчислителни блокове в ядрото. Нещо повече, тази промяна е наложителна не само от гледна точка на оптимизация на хардуера.– първоначално е предвидено генерацията HD 6000 да използва 32-нанометров технологичен процес, който естествено би позволил пакетирането на повече транзистори в чип, който има същите или по-малки размери и електрическа консумация спрямо Cypress (базовото ядро в HD 5000). Тези планове претърпяват провал, когато производителите на чиповете от TSMC не успяват да постигнат достатъчно високи добиви на годни чипове и поради тази причина HD 6000 се изработват чрез същия 40-нанометров процес като предходната генерация.

Тъй като t-unit шейдърите са с най-големи физически размери, а и наличието на два типа шейдъри усложнява ефективното диспечериране на задачите – AMD/ATI премахват именно тях. Негативите са се изразяват в това, че редуцираният шейдърен процесор може да изпълнява 4 вместо пет операции върху целочислени или данни с плаваща запетая на такт. Ако в рамките на такта трябва да се извърши и трансцендентална операция, с нея се заемат 3 от четирите шейдъра в процесора и на разположение е само един свободен шейдър, който да извърши операция над INT/FP.

Явно архитектите на Cayman намират прехода от VLIW5 към VLIW4 за рискован, ето защо промяната засяга само трите модела от семейството HD 6900. Въпреки, че би могла да повлияе негативно на производителността на отделния шейдърен процесор, AMD разчитат този ефект ще бъде заличен от по-големият брой SIMD мултипроцесори. При VLIW5/4 това са организационни единици, изградени от 16 шейдърни процесора, текстурници и L1 кеш.

SIMD мултипроцесорите при архитектурите VLIW са изградени от по 16 броя SPU. Мултрипроцесорите в ядрото Cypress (вляво) са с по-голяма площ то съдържа 20 от тях. При Cayman (вдясно) площта на мултрипроцесорите е по-малка и ядрото събиря 24 броя за сметка на незначително увеличаване на общата площ.

Архитектурите тип VLIW са въплъщение на философията „Колкото повече, толкова по-добре”. При тях целенасочено се използват голямо количество прости аритметично-логически устройства (отделните шейдъри), докато при Fermi на Nvidia например залагат на по-малък брой по-сложни изчислителни блокове (това е и причината, поради която опитите за прогнозиране на производителността на видеокарта на AMD спрямо такава на Nvidia съдейки единствено по честотите, широчината на каналите за достъп и броя на шейдърите са обречени на провал).

 

Броят на шейдърите в Tahiti не само е по-голям от този в Cayman, организацият им е различна.

Graphics Core Next: SIMD мултипроцесорите в ядрото Tahiti съдържат по 16 шейдъра.

На  фундаментално ниво шедърите, изграждащи Tahiti също са прости аритметично-логически устройства. Шейдърите разделени на групи по 16 броя и всяка такава група заедно със собствения си 64-килобайтов регистър се нарича SIMD блок.

 

GCN: Compute Units (CU) са ново йерархично ниво. Всеки от тях е самостоятелна изчислителна единица, която съдържа 4 SIMD и разполага със собствен диспечер.

Следващото йерархично ниво е това  на изчислителните блокове (Compute Units, съкр. CU). Ядрото на Tahiti се състои от 32 изчислителни блока  като  този, илюстриран на горната схема. Всеки CU e самостоятелна изчислителна единица, която разполага със собствен диспечер (дългият оранжев правоъгълник). В състава й влизат още четири SIMD блока (червените) с прилежащите им регистри (лилавите правоъгълници), блок за скаларни операции (червеното квадратче в средата) с прилежащите му регистри (синятя чертичка под квадратчето), четири текстурника (оранжевите стуктури вдясно), L1 кеш, блок за предсказване на разклонения, както и малка област пряко адресируема памет - Local Data Share (лилавото  квадратче). Блокът за скаларни операции има роля подобна на тази при на t-unit шейдърите VLIW5 - използва се за изпълнение на трансцендентални операции и условни преходи, с които обикновените шейдъри не се справят ефективно.

Защо GCN е по-ефективна от VLIW?

Паралелното изпълнение на множество операции от в рамките на една и съща задача се извършва след разпределянето им в по-малки формирования, които AMD наричат вълнови фронтове (wavefronts). Вълновият фронт е група от 64 пиксела/стойности и списък на инструкциите, които ще се изпълняват над тях.

 

GCN: В един такт SIMD изпълняват една и съща операция над 4 вълнови фронта едновременно.

Всеки изчислителен блок (CU) съдържа по 4 SIMD мултипроцесора, които работят паралелно по четири вълнови фронта. От своя  страна един SIMD съдържа 16 шейдъра и с оглед размера на фронта в рамките на един такт SIMD-a изпълнява една четвърт от операциите за текущия вълнов фронт. След четири такта изчислителния блок ще е изпълнил дадена инструкция над четири вълнови фронта.

 

VLIW:  В рамките на един такт при Cayman SIMD мултипроцесорът изпълнява различни инструкции върху един и същи вълнови фронт.

За разлика от него, SIMD мултипроцесорите в Cayman ще се опитат да изпълнят в рамките на такт четири различни инструкции и всичките те са върху един и същи вълнови фронт. Ако се окаже, че инструкциите са зависими помежду си – т.е.  някоя от тях трябва да се изпълни над данни, които се получават като резултат от изпълнението на друга инструкция, в някои от тактовете част от шейдърите ще остават „безработни”. В контраст при Graphics Core Next в рамките на такта шейдърите работят над същата инструкция, ето защо те ще бъдат постоянно натоварени, а от това следва, че архитектурата ще има устойчива във времето производителност. Тъкмо тази стабилност търси професионалния потребител.

Фронтенд

Останалите компоненти на ядрото Tahiti са традиционни. Предната (front-end) част на видеопроцесора традиционно е изградена от командния процесор и графичния енджин.

 

Теселаторите са с по-висока производителност спрямо тези в HD 6900.

Като наследство от Cayman във фронтенда непосредствено свързани с командния процесор са два АCE (Asynchronous Command Engines) модула, както и два геометрични енджина. Във всеки от тях се намира по един теселатор, които са претърпели достатъчно значими промени спрямо тези в HD 6000, така че AMD ги означават като девето поколение (Gen[eration] 9).

Според данните от вътрешните тестове на компанията производителността на новите теселатори е между 1,7 и 4 пъти по-висока спрямо тази в Cayman. Дори тези стойности да са отчасти преувеличени, резултатите от изключително красивия синтетичен бенчмарк Unigine Heaven, които силно зависят от производителността на теселаторите дават на HD 7970 убедителна преднина от над 20% спрямо GTX 580,  а прирастът спрямо HD 6970 е около 55%. Други игри, където ще блеснат теселаторите от девето поколение са Total War: Shogun 2, Crysis 2 и Lost Planet 2.

Бекенд

Както и при Cayman, два DMA енджина осъществяват бърза комуникация с компютърната система като в конкретния случай интерфейсът е новият PCIe 3.0; както споменахме и по-нагоре, бързото ядро може да развие потенциала си само при наличието на интерфейси с висока пропускателна способност. Аналогично на HD 600 и тук скоростта на изчисленията с двойна точност е една четвърт от максималната и достига почти 1 TFLOPs.

Задната част на процесора също е претърпяла любопитна промяна и тя касае съотношението между конвейрите за растерни операции (ROPs) и броят на контролерите към паметта. Групите ROP са осем на брой като всяка от тях има по 4 конвейра и общият им брой се запазва на 32 (той e непроменен от HD 5800 насам). Интерфейсът към паметта с обща ширина от 384-бита всъщност е съставен от 6 броя 64-битови контролери. Тъй като производителността на ROP модулите много силно зависи от пропускателната способност на паметта, всяка промяна тук има потенциала да се отрази на цялостната производителност на видеокартата. При предишните поколения AMD се опитваха да захранят оптимално ефективно конвейрите за растерни операции като обвържат конвейрите с конкретен контролер към паметта (на всеки контролер се падаха по 2 ROP) и въпреки това не успяваха да се доближат до теоретичния максимум на ROP производителността дори в синтетични приложения. Решението на проблема, до което са стигнали конструкторите в Tahiti противоречи на праволинейното мислене – премахнали са зависимостите между ROP и контролерите към паметта и използват комутируема матрица (crossbar switch); при увеличената с 50% ширина на канала за достъп до  паметта, всеки от ROP модул би могъл да се възполза от разширената й пропускателна способност при нужда.

Освен това в бекенда се намират контролерите за дисплея, UVD (Universal Video Decoder) блокът и VCE (Video Codecs Engine).

 

Сглобеният пъзел: Ядрото Tahiti (HD 7900) е първото апаратно превъплъщение на GCN


15 одобрения
2 неодобрения
Етикети:
Radeon HD 7970 HD 7000 Tahiti Southern Islands HD 6970 HD 6000 Cayman Northern Islands Graphics Core Next GCN VLIW5 VLIW4 SPU SIMD Partially Resident Textures PRT ZeroCore Power DDMA спецификации цена