7 години AMD Graphics Core Next

7 години AMD Graphics Core Next

В раздел: Ревюта, статии и ръководства, Статии от на 5.09.2018, 7,358 показвания
Страница от ревюто: 1 2 3 4 5 6 7 8


Късно през Декември 2011-та година, AMD ни изненадаха с внезапното обявяване на новите си графични карти от серията Radeon HD 7900. В основата им стоеше чипът с кодовото име Tahiti (It’s a magical place ;) ), който за първи път реализираше новата архитектура Graphics Core Next (GCN), която да скъса с използваната до момента структура VLIW. VLIW (TerraScale) се използваше от ATI/AMD от времето на не твърде успешния Radeon HD 2900. По това време тази архитектура (явно) е изглеждала особено подходяща за обработка на графиката в променящия се свят на компютърните игри, но през изминалите след това години нещата се промениха сериозно, като на общо насочените изчисления (general purpose GPU, GPGPU) започна да се обръща все по-голямо внимание. В интерес на истината за първи път погледа на потребителите бе насочен в тази посока именно от оригиналният производител на Radeon графиката, ATI Technologies, преди да бъдат закупени от AMD, с ускорителя за изчисления FireStream, базиран на чипа им R520 .

С развитието на изчисленията GPGPU, удобната за графика архитектура VLIW се оказа, че страда от проблеми с ефективното използване. За това конкурентите на ATI/AMD, NVidia, преминаха към често обявяваната за “скаларна” архитектура с използване на „ядра“ CUDA за изчисления още през 2006-та година. CUDA обаче не е по самото си същество „скаларна“, което означава обработката на единични данни от единични инструкции, а е SIMD или векторна архитектура – една инструкция се изпълнява върху масив от данни. Или според терминологията на Nvidia – SIMT, single instruction multiple threads (безсмислено само по себе си дефиниране). VLIW на AMD на свой ред пък изпълнява до 4 или 5 инструкции едновременно върху масив от данни. Така че появата на GCN беше очаквано развитие за видеоадаптерите Radeon от гледна точка както на GPGPU изчисленията, така и на новопоявилите се Compute Shaders в DX11.

First Generation GCN/GCN 1.0

GCN, също като CUDA, използва архитектура SIMD, като в един от т.нар. compute units (CU) или изчислителни модули, се съдържат 4 векторни блока, всеки които могат да обработва 16 елемента едновременно. По една инструкция на такт за всеки от блоковете. Заедно с това, обаче, в модула има и отделен единичен скаларен АЛУ, който може да изпълнява целочислени операции на единични данни, модул за обработка на разклонения, диспечер, 4 масива от регистри (по един за всеки SIMD блок), 64 КБ локална памет, 16 КБ L1 кеш и 4 текстуриращи блока. Сумарно Tahiti разполага с 32 CU, дяла 8 ROP с общо 32 елемента и 384-битова шина, които обаче са разделени в 2 графични клъстера, всеки от които има собствен геометричен енджин, растеризатор и теселатор. Заедно с това за първи път в архитектурата се появи и т.нар. Asynchronous Compute Engine (ACE), който позволява едновременното изпълнение на изцяло изчислителни алгоритми съвместно с обработката на графични данни. По същество може да мислите за този блок като позволяващ да се използва нещо подобно на Hyperthreading за графичният процесор. В добавка Tahiti за първи път “разбира” и адресното пространство x86.

 
Tahiti даде базата на цяла генерация от графични адаптери, основани на GCN, като смятам че тя спокойно може да претендира за едно от най-конкурентните поколения на компанията създавани някога, състезавайки се в това отношение с генерацията R300. В последствие GCN претърпя няколко поредни промени, в зависимост от конкурентната ситуация на пазара, като от AMD именуват различните инкарнации като “N”-th generation GCN (N-то поколение GCN), но аз предпочитам се придържам към по-популярното и по-просто GCN 1.х, като Tahiti се явява GCN 1.0.



Всички страници от статията:

  1. Tahiti и първата версия на GCN
  2. Hawaii, Tonga, Fiji: GCN 1.1 и 1.2
  3. Polaris и Vega: GCN 1.3 и 1.4
  4. Претендентите
  5. Тестова система
  6. Резултати
  7. Обобщения и разсъждения
  8. Консумация и заключение


Страница от ревюто: 1 2 3 4 5 6 7 8




Етикети: , , , , ,


10 коментара

  1. 1 craghack // 06.09.2018 в 08:30

    Таитито го пропуснах. Хавая и вегата ги видях ;)

  2. 2 Mustaka // 07.09.2018 в 18:04

    Аз сега и сега си ползвам 7970-ката на 1600 х 1200 играя си танковете и нямам грижи :-)
    Имах 7990, ама за съжаление нещо се прецака, иначе беше супер карта.

  3. 3 Комаро // 10.09.2018 в 14:50

    Еми колега така е 7970 си е супер карта, ама хора като мен видяха възможност, продадох си вярната ми R9 280X (на проклет копач) която също беше купена от копач ама малко ползвана за 400 лева в бума последния път, а я бях купил за 200 лева предните години, и малко след това изчаках промото на Emag черен петък и отнесох една RX580 8GB за малко над 500 лева, за какво да се занимавам със старата ми акрта, като мога да взема по нова.

  4. 4 Сашо // 10.09.2018 в 18:11

    единно адресиране на паметта, така и не стана реалност доколкото знам

    > безсмислено само по себе си дефиниране (SIMT)

    защо да е безсмислено?

  5. 5 Димитър Чизмаров (DeepBlue) // 10.09.2018 в 19:26

    @Сашо – единнота адресиране на паметта е факт отдавна в архитектурите на АМД, Мисля че от Hawaii нататък и от Kaveri се поддръжа на хардуерно ниво.
    А SIMT е безмислица, просто защото е. Нвидия са натворили купища маркетингови безмислици и това е една от тях. Както и желанието да дефинират отделните АЛУ елементи във SIMD блока като “ядра”, само за да се покажат колко по-напред са от Интел. При положение че ядро в най-дбория слyчай е SM-a.

  6. 6 Сашо // 11.09.2018 в 15:12

    Ако имаш предвид HBCC не мисля, че това може да се брои за единно адресиране. Единно адресиране би значило, че цялата памет на картата е достъпна като RAM за процесора, а аз такова нещо не съм видял (освен може би при някои интегрирани решения /GPU в CPU-то/).
    Имаш ли някаква друга информация?

  7. 7 Димитър Чизмаров (DeepBlue) // 11.09.2018 в 22:58

    Не изобщо нямам предвид HBCC, той е нещо съвсем друго. И изобщо не значи че цялата рам на графиката ще е достъпна за процесора. Между другото по начало има мапинг на видеопаметта към адресното пространво на процесора. Единното адресиране значи че видеокартата “вижда” директно цялото х86 адресно пространство без нужда от транслация, както в предходните модели и което е част от HSA. И да това го имат от доста време. Мисля че това е едно от нещата, които им помага да пускат ония безумни профи модели които имат по 2 ТБ памет (SSD).

  8. 8 Ico // 22.09.2018 в 21:29

    Никъде не пише при каква резолюция са направени тестовете!!!

  9. 9 Сашо // 27.09.2018 в 13:50

    Димитър, достъпът до оперативната памет не може да зависи само от видео картата, а и от останалия хардуер. Доколкото си спомням първоначалната идея на AMD е да има наистина единно адресно пространство, което доколкото знам не се реализира. Мапинг на паметта на картата в адресното пространство на процесора е друго нещо.
    Новите карти ползват PCIe atomic операции с оперативната памет, което е много добро, но според мен не е същото като първоначалната идея. Ето малко информация, как се ползват в момента:
    https://rocm.github.io/ROCmPCIeFeatures.html

  10. 10 Димитър Чизмаров (DeepBlue) // 28.09.2018 в 21:17

    Къде видя да обяснявам, че оперативната памет зависи само от видео картата?! И атомарните операции са нещо отделно, това са просто независими операции.

    Идеята по принцип е, че преди HSA видеокартата си оперира в нейно си адресно пространство (оперативната й памет), процесора си оперира в неговото си адресно пространство. Ако се наложи някаква междупроцесна комуникация, това означва че всеки път трябва да се “превежда” от едното пространство в другото, което отнема време и ако има някакви данни, които се намират примерно в GPU-то, а трябват на процесора, то те трябва да се копират в системната памет.

    Модерните адаптери обаче “разбират” Х86 адресациията и могат да работят с адресното пространство на х86 модела, а паметта на графичният адаптер влиза в общото адресно пространство. По този начин няма нужда от транслация и при нужда както процесора може да чете директно в паметта на картата, така и картата може да чете директно от паметта на процесора, без да се налага преди това да се копират данните локално. Отделно това позволява да се поддържа и кеш кохерентност. Именно това позволява на HBCC да работи (по същество използва оперативната памет, а локалната памет работи като кеш, което няма как да стане с различни адресни пространства) и разни други шукаритети. Нвидия вече също поддържат общо адресно пространство с процесора.

    Ако все още не разбираш какво имам предвид – https://en.wikipedia.org/wiki/Heterogeneous_System_Architecture , http://www.mpsoc-forum.org/previous/2013/slides/8-Hegde.pdf