Jūs sekėte gandus ir ignoravote ažiotažą; tu laukei komentarus ir pažvelgė į visas metrikas. Galiausiai, jūs paplekšnojote savo dolerius ir nuėjote su viena naujausių „AMD“ ar „Nvidia“ vaizdo plokščių. Tarp jų didelis grafinis procesorius, užpildytas milijardais tranzistorių, veikia prieš dešimtmetį neįsivaizduojamu laikrodžio greičiu.

Jūs tikrai patenkintas savo pirkiniu, o žaidimai atrodė ir nebuvo geresni. Tačiau jums gali kilti klausimas, kas tiksliai valdo jūsų naująjį „Radeon“. RX 5700 ir kaip skiriasi mikroschema „GeForce RTX“.

Sveiki atvykę į AMD ir „Nvidia“ architektūros ir funkcijų palyginimą: „Navi“ ir „Turing“ naujausius GPU.

Šiuolaikinė GPU anatomija

Prieš pradėdami skaidyti bendras lustų struktūras ir sistemas, pažvelkime į pagrindinę formą, kurios laikosi visi šiuolaikiniai GPU. Dažniausiai šie procesoriai yra tik slankiojo kablelio (FP) skaičiuoklės; kitaip tariant, jie atlieka matematines dešimtainių / dalinių reikšmių operacijas. Taigi bent jau GPU turi turėti loginį bloką, skirtą šioms užduotims atlikti, ir tai dažniausiai yra FP ALU (slankiojo kablelio aritmetinės logikos vienetai) arba trumpai - FPU. Ne visi skaičiavimai, kuriuos atlieka GPU, yra FP duomenų reikšmėse, todėl taip pat bus sveikasis skaičius (sveikasis skaičius) gali būti tas pats vienetas, kuris tvarko matematikos operacijas, arba abiejų tipų duomenys.




Dabar šiems logikos vienetams reikės ką nors organizuoti dekoduojant ir organizuojant, kad jie būtų užimti, ir tai bus bent vienos specialios loginių vienetų grupės forma. Skirtingai nuo ALU, jų negali užprogramuoti galutinis vartotojas; Vietoj to, aparatūros pardavėjas užtikrins, kad šį procesą visiškai valdytų GPU ir jo tvarkyklės.




Taip pat turi būti tam tikra atminties struktūra, skirta šioms instrukcijoms ir duomenims, kuriuos reikia apdoroti, saugoti. Paprasčiausiu lygiu jis bus dviejų formų: talpykla ir taškas vietinė atmintis. Pirmasis bus įterptas į GPU ir GĖDA. Šio tipo atmintis yra greita, tačiau ji užima palyginti daug procesoriaus išdėstymo. Vietinė atmintis DRAMAJis yra šiek tiek lėtesnis nei SRAM ir paprastai nededamas į GPU. Vietinė atmintis daugumoje vaizdo plokščių, kurias matome šiandien VDR DRAM moduliai.

Galiausiai, tai apima papildomas nustatymo užduotis, tokias kaip 3D grafikos kūrimas, trikampių kūrimas iš kampų, 3D rėmelio rastravimas, mėginių ėmimas ir tekstūrų maišymas. Kaip ir instrukcijų bei valdymo blokai, šie taip pat pastovi funkcija gamtoje. Tai, ką jie daro ir kaip jie veikia, yra visiškai skaidri vartotojams, kurie programuoja ir naudoja GPU.




Sudėsime tai ir sukursime GPU:




Oranžinis blokas yra vienetas, kuris apdoroja tekstūras naudodamas tai, kas vadinama tekstūros atvaizdavimo vienetai (TMU'lar) - TA tekstūros adresavimas tūris - sukuria atminties vietas talpyklai ir vietinei atmintis naudoti - ir TF neatneškite tekstūros surenka tekstūros vertes iš atminties ir jas sujungia. Šiandien TMU visi pardavėjai yra beveik vienodi, nes jie gali tvarkyti, atrinkti ir sumaišyti kelias tekstūros vertes per GPU laikrodžio ciklą.




Žemiau pateiktame bloke užrašomos rėmelio pikselių spalvų vertės, atrenkamos atgal (PO) ir maišomos (PB); šis blokas taip pat atlieka operacijas, naudojamas, kai taikomas anti-aliasing. Šio bloko pavadinimas: perteikti išvesties vienetą or sukurti backend (Trumpai ROP / RB). Kaip ir TMU, jie dabar tampa gana standartiniai, kiekvienas patogiai valdo kelis taškus per laikrodžio ciklą.

Tačiau mūsų pagrindinis GPU būtų buvęs baisus net pagal standartus prieš 13 metų. Kodėl?

Yra tik vienas FPU, TMU ir ROP. 2006 m. „Nvidia“ grafikos procesoriai, tokie kaip „GeForce 8800 GTX“, turėjo atitinkamai 128, 32 ir 24. Taigi pradėkime ką nors daryti dėl to ....




Kaip ir bet kuris geras procesoriaus gamintojas, mes atnaujinome GPU, pridėdami dar keletą vienetų. Tai reiškia, kad lustas vienu metu gali apdoroti daugiau instrukcijų. Norėdami padėti tai padaryti, pridėjome dar keletą talpyklų, tačiau šį kartą šalia loginių vienetų. Kuo arčiau talpykla yra skaičiuoklės struktūra, tuo greičiau ją galima inicijuoti atliekant jai priskirtas operacijas.

Mūsų naujojo dizaino problema yra ta, kad vis dar yra tik vienas valdiklis, skirtas tvarkyti mūsų papildomus ALU. Būtų geriau, jei turėtume daugiau vienetų blokų, kuriuos visus valdytų atskiri valdikliai, nes tai reiškia, kad vienu metu galime atlikti labai skirtingas operacijas.

Dabar tai daugiau! Atskiri ALU blokai, supakuoti su savo TMU ir ROP ir pritvirtinti skaniai skaniais, greitais talpyklos gabalėliais. Tai vis dar yra vienas iš visko, tačiau pagrindinė struktūra nėra už milijono mylių nuo grafinio procesoriaus, kurį šiandien matome kompiuteriuose ir konsolėse.

Navi ve Turingas: „Godzilla GPU'ları“

Dabar, kai mes apibrėžėme pagrindinį grafikos lusto išdėstymą, nors šiek tiek padidintas ir apdorotas, kad būtų galima pabrėžti įvairias struktūras, „Navi vs. Pradėkime savo Tiuringo palyginimą.

Kairėje pusėje yra naujausias AMD procesorius. Bendras lusto dizainas vadinamas „Navi“ (kai kurie - „Navi 10“), o grafikos architektūra - „RDNA“. Šalia, dešinėje, yra pilno dydžio „Nvidia“ procesorius su naujausia Tiuringo architektūra. Svarbu pažymėti, kad šie vaizdai nėra keičiami: „Navi die“ plotas yra 251 mm2, o TU102 - 752 mm2. „Nvidia“ procesorius yra didelis, bet ne 8 kartus didesnis už AMD pasiūlymą!

Tiek kolosalus tranzistorių skaičius (10,3, palyginti su 18,6 milijardo), tačiau TU102 vidutiniškai ~ 25 milijonai tranzistorių viename kvadratiniame mm, palyginti su Navi 41 milijonu kvadratinių mm.

Taip yra todėl, kad nors abu lustus gamina TSMC, jie gaminami skirtinguose proceso mazguose: „Nvidia“ „Turing“ yra brandžioje 12 nm gamybos linijoje, o „AMD“ „Navi“ - naujesniame 7 nm mazge.

Vien žiūrėjimas į liejimo formų vaizdus mums daug nepasako apie architektūras, todėl pažvelkime į abiejų kompanijų pateiktas GPU blokines diagramas.

Diagramos nėra 100% realus faktinių maketų atvaizdavimas, tačiau pasukus 90 laipsnių kampu, galima apibrėžti įvairius blokus ir centrinę juostelę, rodomą ant abiejų. Pirmiausia galime pastebėti, kad du GPU turi tokią bendrą struktūrą, kaip ir mes (nors labiau nei visa kita!).

Abu dizainai laikosi daugiasluoksnio požiūrio į tai, kaip viskas išdėstyta ir sugrupuota - norint pradėti naudoti „Navi“, GPU susideda iš 2 blokų, kurių ieško AMD. „Shader Motors“ (SE), kiekvienas iš jų vadinamas 2 blokais asinchroninis Skaičiavimo varikliai (AKF). Kiekviename iš jų yra 5 blokai pavadinime. Darbo grupės procesoriai (WGP), kurį sudaro 2 Informacijos apdorojimo padaliniai (Öze).

Turingo dizaino pavadinimai ir numeriai skiriasi, tačiau hierarchija labai panaši: 6 Grafikos apdorojimo grupės (GPC), po 6 Tekstūros apdorojimo grupės (TPC), po 2 Srautas „Multiprocessor“ (SM) blokai.

Jei grafikos procesorių matote kaip didelę gamyklą, kurioje skirtingi skyriai gamina skirtingus produktus, naudodami tas pačias žaliavas, ši organizacija pradeda prasmingai. Gamyklos generalinis direktorius išsiunčia verslui visą operatyvinę informaciją ir paskui ją suskirsto į įvairias užduotis ir darbo krūvius. Turintys daugiau nei vieną, nepriklausomas Gamykloje buvo padidintas darbo jėgos produktyvumas. GPU nesiskiria ir čia yra stebuklingas raktinis žodis laikas.

Priekis ir centras, kareivis - laikas ir išsiuntimas

Kaip mes žiūrime 3D žaidimų kūrimo pratimaiMatėme, kad grafikos procesorius yra ne kas kita, kaip itin greitas skaičiuotuvas, atliekant daugybę matematinių operacijų su milijonais duomenų. Navi ir Turingas skirstomi taip: Vienos komandos keli duomenys (SIMD) procesorius, tačiau geriau paaiškinti „Single Way Multi“ Siūlas (Jausmas).

Šiuolaikinis 3D žaidimas sukuria šimtus gijų, kartais tūkstančius, nes pateikiamų taškų ir taškų skaičius yra didžiulis. Norint užtikrinti, kad visa tai būtų atlikta vos per kelias mikrosekundes, svarbu turėti kuo daugiau loginių vienetų nestabdant visko, nes reikalingi duomenys nėra tinkamoje vietoje arba nėra pakankamai vietos darbui viduje.

Pažvelgę ​​į tai, kaip veikia 3D žaidimų kūrimas, pamatėme, kad grafikos procesorius yra ne kas kita, kaip tikrai greitas skaičiuotuvas, ir atlikome įvairias matematines operacijas, naudodami milijonus duomenų. „Navi“ ir „Turing“ yra klasifikuojami kaip „Single Command Multiple Data“ (SIMD) procesoriai, tačiau geresnis paaiškinimas būtų „Single Command Multiple Threads“ (SIMT).

„Navi“ ir „Turing“ veikia panašiai, todėl centrinis padalinys perima visas gijas, tada pradeda jas programuoti ir transliuoti. AMD luste šis vaidmuo Grafikos komandų procesorius; Nvidia'da, „GigaThread Motoru“. Siūlai išdėstyti taip, kad tie, kurie turi tas pačias instrukcijas, būtų sugrupuoti į 32 grupių rinkinį.

AMD šią kolekciją bangakadangi Nvidia tai kreivumas. „Navi“ atveju skaičiavimo įrenginys gali valdyti 2 bangas (arba 64 gijų bangą, tačiau šis procesas trunka dvigubai ilgiau), o „Turing“ sraute daugiaprocesorius veikia su 4 metmenimis. Abiejuose projektuose banga / metmenys yra nepriklausomi, tai reiškia, kad kitiems nereikia jų užbaigti prieš pradedant.

Iki tol „Navi“ ir „Turing“ nedaug skiriasi - abu jie buvo skirti tvarkyti daugybę gijų, kad būtų galima sukurti ir apskaičiuoti darbo krūvius. Turime pasidomėti, kurie procesoriai yra šios gijos, kad suprastume, kur du GPU milžinai skiriasi savo dizainu.

Vadovų skirtumas - RDNA ir CUDA

Nors dauguma vartojamos terminologijos atrodo ta pati, AMD ir „Nvidia“ gana skirtingai žiūri į kombinuotus „shader“ vienetus. „Nvidia“ vykdymo vienetai (Stebuklai sėklos) skaitmeninis gamtoje - tai reiškia, kad vienetas atlieka matematinę duomenų komponento operaciją; Skirtingai nuo AMD įrenginių (Srauto procesoriai) darbas vektoriai - kelių duomenų komponentų operacija. Skaliarinėms operacijoms yra tik vienas konkretus vienetas.

Prieš atidžiau pažvelgdami į vykdymo vienetus, panagrinėkime pačios AMD modifikacijas. 7 metus „Radeon“ vaizdo plokštės laikėsi architektūros, vadinamos „Graphics Core Next“ (GCN). Kiekviena nauja mikroschema peržiūrėjo įvairius dizaino aspektus, tačiau visi jie iš esmės buvo vienodi.

AMD pristatė trumpą GPU architektūros istoriją:

GCN buvo „TeraScale“, dizaino, leidžiančio vienu metu apdoroti dideles bangas, evoliucija. Pagrindinis „TeraScale“ dalykas buvo tas, kad tai nebuvo labai lengva prieš programuotojus ir norint gauti geriausią rezultatą, reikėjo labai specifinių rutinų. GCN tai ištaisė ir suteikė daug prieinamesnę platformą.

AMD tobulinimo proceso metu „Navi“ esančios CU buvo gerokai pakeistos iš GCN. Kiekviename CU yra du rinkiniai:

  • 32 SP (IEE754 FP32 ir INT32 vektoriniai ALU)
  • 1 SFU
  • 1 INT32 svarstyklės ALU
  • 1 laiko ir pristatymo vienetas

Be šių, kiekvienoje PV yra 4 audinių vienetai. Yra ir kitų vienetų, kurie atlieka duomenų skaitymo / rašymo operacijas iš talpyklos, tačiau nerodomi toliau pateiktame paveikslėlyje:

Lyginant su GCN, RDNA CU sąranka gali atrodyti ne visai kitaip, tačiau viskas, kas čia svarbu, yra organizuota ir organizuota tokiu būdu. Visų pirma, kiekvienas 32 SP rinkinys turi savo specialų instrukcijų bloką, GCN turėjo tik vieną programą 4 rinkiniams po 16 SP.

Tai yra svarbus pakeitimas, reiškiantis, kad kiekvienam SP rinkiniui gali būti suteikta viena 32 gijų banga per laikrodžio ciklą. RDNA architektūra taip pat leidžia vektoriniams vienetams apdoroti 16 gijų bangas dvigubai didesniu greičiu ir 64 gijų bangas per pusę, todėl visoms ankstesnėms „Radeon“ vaizdo plokštėms parašytas kodas vis tiek palaikomas.

Šie pakeitimai bus labai populiarūs žaidimų kūrėjams.

Skaliarinėms operacijoms dabar yra du vienetai, kurie gali juos tvarkyti; vienintelis komponentų skaičiaus sumažėjimas yra SFU pavidalu - tai yra speciali funkcija vienetųatlieka labai specifines matematines operacijas, pvz. trigonometrinis (sinusinis, liestinis), abipusis (1 padalytas iš skaičiaus) ir kvadratinės šaknys. RDNA turi mažiau tokių nei GCN, tačiau dabar jie gali valdyti dvigubai didesnius duomenų rinkinius nei anksčiau.

Šie pakeitimai bus labai populiarūs žaidimų kūrėjams. Senesnėse „Radeon“ vaizdo plokštėse buvo daug potencialių rezultatų, tačiau tai padaryti buvo labai sunku. Dabar AMD žengė didelį žingsnį mažindamas instrukcijų apdorojimo vėlavimą ir išlaikydamas funkcijas, kad būtų užtikrintas atgalinis visų programų, sukurtų GCN architektūrai, suderinamumas.

O profesionali grafika ar skaičiavimo rinka? Ar šie pokyčiai naudingi ir jiems?

Trumpas atsakymas yra taip (tikriausiai). Dabartinė „Navi“ lusto versija, randama panašiame „Radeon RX 5700 XT“, turi mažiau „Stream“ procesorių nei ankstesnis „Vega“ dizainas, tuo tarpu mes pasirodėme geriau ankstesnės kartos „Radeon RX Vega 56“ yra gana lengva:

Dalis šio našumo padidėjimo atsiras dėl didesnio „RX 5700 XT“ nei „RX Vega 56“ laikrodžio greičio (taigi jis gali įrašyti daugiau taškų per sekundę į vietinę atmintį), tačiau esant didžiausiam sveikojo skaičiaus ir slankiojo kablelio rodikliui, jis sumažėja net 15%; nepaisant to, mes nustatėme, kad „Navi“ lustas veikė 18% geriau nei „Vega“.

Mokslininkai, vykdantys profesionalias atvaizdavimo programas ir sudėtingus algoritmus, savo darbe netrūksta keliais „Battlefield V“ etapais (t. gali būti...) tik tuo atveju, jei žaidimo variklyje atliekamos skaliarinės, vektorinės ir matricos operacijos apdorojamos greičiau laivas paverskite ją skaičiavimo rinka. Šiuo metu mes nežinome, kokie yra AMD profesionalios rinkos planai - jie gali puikiai derėti su „Vega“ architektūra ir padėti tobulinti dizainą, gamybą, tačiau, atsižvelgiant į „Navi“ pažangą, įmonė viską perkelia į naują architektūrą.

„Nvidia“ GPU dizainas išgyveno panašią raidą nuo 2006 m., Kai jie išleido „GeForce 8“ seriją, nors ir ne tokius radikalius pokyčius nei AMD. Šis GPU sukūrė pirmąją „Tesla“ architektūrą, kuri vykdymo architektūroje naudojo pirmojo šešėlio metodą. Žemiau galime pamatyti SM blokų pokyčius iš „Tesla“ („Fermi“) įpėdinio į „Turing“ pirmtaką („Volta“):

Kaip minėta anksčiau šiame straipsnyje, CUDA branduoliai skaitmeninis. Jie gali atlikti vieną plūduriuojantį ir vieną sveiko skaičiaus nurodymą per laiko komponento ciklą duomenų komponente (tačiau atkreipkite dėmesį, kad pati instrukcija gali užtrukti kelis laikrodžio ciklus apdoroti), tačiau laiko vienetai juos sutvarko į grupes, jie gali atlikti vektorines operacijas programuotojui. Svarbiausias pokytis per metus apima ne tik tai, kad yra daugiau vienetų, bet ir tai, kaip jie yra organizuoti ir segmentuoti.

Pagal „Kepler“ dizainą visas lustas turėjo 5 GPC, kiekviename iš jų buvo trys SM blokai; Kai atsirado „Pascal“, GPC buvo suskirstyti į atskiras skaidinius (TPC) su dviem SM kiekvienoje TPC. Kaip ir su „Navi“ dizainu. šis suskaidymas yra svarbus, nes jis leidžia kuo išsamiau naudoti bendrą GPU; Keli nepriklausomi instrukcijų rinkiniai gali būti apdorojami lygiagrečiai, padidinant procesoriaus šešėlinį ir skaičiavimo našumą.

Pažvelkime į Turingo ekvivalentą RDNA skaičiavimo įrenginiui:

SM yra 4 operacijų blokai, kurių kiekviename yra:

  • 1 komandų planavimo ir išsiuntimo padalinys
  • 16 IEE754 FP32 svarstyklių ALU
  • 16 INT32 svarstyklių ALU
  • 2 „Tensor“ spalvos
  • 4 SFU
  • 4 Įkelti / saugoti (atliekant talpyklos skaitymo / rašymo operacijas)

Viename SM taip pat yra 2 FP64 vienetai, tačiau „Nvidia“ jų neberodo blokinėse diagramose, o kiekvienas SM turi 4 tekstūros vienetus (įskaitant tekstūros adresavimo ir tekstūros filtravimo sistemas) ir 1 RT (spindulių sekimo) šerdį.

FP32 ir INT32 ALU gali veikti vienu metu ir lygiagrečiai. Tai yra svarbi savybė, nes 3D atvaizdavimo varikliams dažnai reikia slankiojo kablelio skaičiavimų, tačiau reikia atlikti pagrįstą skaičių paprastų sveikojo skaičiaus operacijų (pvz., Duomenų adresų skaičiavimų).

„Tensor Core“ yra specialūs ALU, atliekantys matricos operacijas. Matricos yra „kvadratinės“ duomenų masyvos, o „Tensor“ šerdys veikia 4 x 4 matricoje. FP16 yra skirtas apdoroti INT8 arba INT4 duomenų komponentus, kad 64 FMA (sulietas dauginimas po pridėjimo) veiktų vienu metu. Šis skaičiavimo tipas vadinamas neuroniniai tinklai ir išvada - nėra tiksliai paplitusi 3D žaidimuose, tačiau „Facebook“ mėgėjams tai labai naudojama automobiliuose, kuriuose yra socialinės žiniasklaidos analizės algoritmai ar savaiminio vairavimo sistemos. „Navi“ taip pat gali atlikti matricos skaičiavimus, tačiau tam reikia daug SP; Tiuringo sistemoje matricos operacijos gali būti atliekamos, o CUDA šerdys atlieka kitą matematiką.

„RT Core“ yra dar vienas specialus Tiuringo architektūrai skirtas įrenginys, kuris atlieka labai specifinius matematinius algoritmus, naudojamus „Nvidia“ spindulių sekimo sistemai. Išsami to analizė nepatenka į šio straipsnio taikymo sritį, tačiau „RT Core“ yra dvi sistemos, kurios veikia atskirai su likusiu SM, taigi, nors „RT Core“ yra užsiėmusi skaičiavimais, ji gali veikti su piko arba pikselio šešėliais. spindulių sekimui.

Pagrindiniame lygmenyje „Navi“ ir „Turing“ turi vykdymo vienetus, kurie siūlo gana panašų funkcijų rinkinį (reikalavimas, kylantis laikantis „Direct3D“, „OpenGL“ ir kt. Reikalavimų).

Pagrindiniame lygmenyje „Navi“ ir „Turing“ turi vykdymo vienetus, kurie siūlo gana panašų funkcijų rinkinį (reikalavimą, susijusį su „Direct3D“, „OpenGL“ ir kt. Reikalavimų laikymusi), tačiau jie taiko labai skirtingai, kaip tos funkcijos yra. baigtas. Kalbant apie tai, koks dizainas yra geresnis, kalbama apie tai, kaip jie naudojami: FP32 programa, kurianti vektorinius skaičiavimus ir daugybę gijų, atliekančių mažai, pirmenybę teiktų „Navi“, o programa, turinti įvairius sveikojo skaičiaus, slankiojo kablelio, skaliaro ir vektorinius skaičiavimus, suteiks Turingo lankstumą. teikia pirmenybę ir kt.

Atminties hierarchija

Šiuolaikiniai GPU yra skirti atlikti daugybę operacijų su srauto procesoriais, tai yra su kiekvienu duomenų srauto elementu. Tai daro juos mažiau lankstus nei bendrosios paskirties procesorius, taip pat reikia optimizuoti lusto atminties hierarchiją, kad duomenys ir nurodymai ALU gautų kuo greičiau ir kuo daugiau srautų. Tai reiškia, kad GPU turės mažiau talpyklos nei procesorius, nes didžiąją dalį lusto reikia skirti talpyklos kiekiui, o ne prieigai prie talpyklos.

Tiek AMD, tiek „Nvidia“ naudoja kelias lustų talpyklas, todėl pirmiausia pažiūrėkime, ką „Navi“ pakuoja.

Pradedant nuo žemiausio hierarchijos lygio, du srauto procesorių blokai iš viso naudoja 256 svarų vektorių bendrosios paskirties registrą (paprastai žurnalo failas) Buvo tokia pati suma kaip „Vega“, bet tarp 4 SP blokų; Registrų trūkumas bandant apdoroti daug temų tikrai kenkia našumui, todėl tai tikrai yra „geras dalykas“. AMD taip pat labai padidino skaliarinio įrašymo failą. Kai anksčiau tai buvo tik 4 kiB, dabar tai yra 32 kilogramai už skaliarinį vienetą.

Tada du skaičiavimo vienetai naudoja 32 svarų L0 talpyklą ir 16 svarų skaliarinę duomenų talpyklą, tačiau kiekvienas centrinis kompiuteris gauna savo 32 svarų vektorinę L0 talpyklą; Visą šią atmintį prijungus prie ALU yra 128 svarų vietinis duomenų bendrinimas.

„Navi“ programoje du skaičiavimo varikliai sukuria darbo grupės procesorių, o penki iš jų - asinchroninį skaičiavimo variklį (ACE). Kiekviena ACE turi prieigą prie savo 128 svarų L1 talpyklos, o visą GPU toliau palaiko 4 „MiB L2“ talpyklos, kurios jungiasi prie L1 talpyklų ir kitų procesoriaus dalių.

Kadangi sistema yra griežtai naudojama tvarkant 16 GDDR6 atminties valdiklių, tai yra viena iš AMD patentuotos „Infinity Fabric“ ryšio architektūros formų. Norėdami padidinti atminties pralaidumą, „Navi“ taip pat naudoja spalvų praradimą be nuostolių tarp L1, L2 ir vietinės GDDR6 atminties.

Vėlgi, visa tai yra ypač sveikintina, palyginti su ankstesniais AMD lustais, kurie neturėjo pakankamai žemo lygio talpyklos pagal juose esančių šešėlinių vienetų skaičių. Trumpai tariant, daugiau talpyklos yra lygus daugiau vidinio pralaidumo, mažiau vangios instrukcijos (nes jie turi gauti daugiau duomenų iš atminties) ir kt. Ir tai tiesiog prilygsta geresniems rezultatams.

Kalbant apie Turingo hierarchiją, reikia pasakyti, kad „Nvidia“ yra drovioji pusė, kai reikia pateikti išsamių žinių šioje srityje. Anksčiau šiame straipsnyje matėme, kaip kiekvienas SM padalytas į 4 operacijų blokus - kiekvienas turi mažesnį 64 svarų žurnalo failą nei tas, kuris randamas „Navi“, tačiau nepamirškite, kad Turingo ALU yra skaliarai, o ne vektoriai. , vienetai.

Tada 96 kb bendros atminties kiekvienai VM galima naudoti kaip 64 kb L1 duomenų talpyklą ir 32 kb audinių talpyklą arba papildomą įrašo vietą. „Skaičiavimo režimu“ bendrą atmintį galima suskirstyti į skirtingas skaidinius, pvz., 32 kb bendrosios atminties ir 64 kiB L1 talpyklos, tačiau visada tai daroma kaip 64 + 32 padalijimai.

Dėl išsamios informacijos apie „Turning“ atminties sistemą privertėme norėti daugiau, todėl kreipėmės į „Citadel Enterprise Americas“ dirbančią GPU tyrimų grupę. Neseniai jie paskelbė du straipsnius. Laikas ve Tiuringas architektūros; Aukščiau pateiktas vaizdas yra atminties hierarchijos fragmentas TU104 luste (visa TU102 sport 6144 kiB L2 talpykla).

Komanda patvirtino, kad L1 talpyklos pralaidumas buvo 64 bitai per ciklą, ir teigė, kad bandant Turingo L1 talpyklos efektyvumą buvo geriausia iš visų „Nvidia“ GPU. Tai prilygsta „Navi“, nors „AMD“ lustas turi didesnę „Local Data Store“ skaitymo spartą, bet mažesnį nurodymą / fiksuotas talpyklas.

Abu GPU vietinei atminčiai naudoja GDDR6 - tai naujausia „Graphics DDR SDRAM“ versija - ir abu naudoja 32 bitų jungtis prie atminties modulių, taigi „Radeon RX 5700 XT“ Jis turi 256 atminties mikroschemas ir užtikrina didžiausią pralaidumą - 256 GiB / s ir 8 GiB vietos. vienas „GeForce RTX 2080 Ti“ Su „TU102“ lustu jis veikia su 11 tokių modulių, skirtų 352 GiB / s pralaidumui, ir 11 „GiB“ atminties.

Kartais AMD dokumentai gali atrodyti painūs: Pirmojoje bloko schemoje matome, kad „Navi“ rodo keturis 64 bitų atminties valdiklius, o vėlesniame paveikslėlyje - 16 valdiklių. Svarstydamas „Samsung“ siūlo tik 32 bitų GDDR6 Panašu, kad antrame paveikslėlyje parodyta, kiek yra ryšių tarp „Infinity Fabric“ sistemos ir atminties valdiklių. Tikriausiai yra tik 4 atminties valdikliai ir kiekvienas naudoja du modulius.

Apskritai atrodo, kad tarp „Navi“ ir „Turing“ nėra didžiulio skirtumo kalbant apie jų talpyklas ir vietinę atmintį. Yra dar šiek tiek daugiau, kad „Navi“ priartėtų prie daiktų vykdymo pusės su didesnėmis instrukcijomis / konstanta ir L1 talpyklomis, tačiau abu yra supakuoti, abu, jei įmanoma, naudoja spalvų glaudinimą ir abu turi daug pasirinktinių GPU šablonų prieigoje prie atminties ir naudojamas pralaidumui maksimaliai padidinti.

Trikampiai, tekstūros ir pikseliai

Prieš penkiolika metų GPU gamintojai daug nuveikė, kiek trikampių gali apdoroti jų lustai, tekstūros elementų, kuriuos galima filtruoti per ciklą, skaičių ir vaizdavimo išvesties vienetų (ROP) galimybę. Šie aspektai vis dar svarbūs ir šiandien, tačiau daugiausiai dėmesio skiriama vykdymo pusei, nes 3D atvaizdavimo technologijoms reikia daugiau kompiuterinių rezultatų nei bet kada anksčiau.

Tačiau norint tik pabrėžti, kad šiose srityse nėra iškart pastebimo skirtumo tarp „Navi“ ir „Turing“, tekstūros vienetus ir ROP vis tiek verta ištirti. Abiejose architektūrose tekstūros vienetai gali tvarkyti ir gauti 4 tekstūros elementus, filtruoti juos nežinomus viename elemente ir talpinti juos visus per vieną laikrodžio ciklą (nepaisydami papildomų laikrodžio kilpų, paimtų norint gauti duomenis iš vietinės atminties).

ROP / RB išdėstymas šiek tiek skiriasi tarp „Navi“ ir „Turing“, bet ne per daug: AMD mikroschemoje yra 4 RB kiekvienam AKF ir kiekvienas gali išleisti 4 sumaišytus taškus per laikrodžio ciklą; Tiuringe kiekvienas GPC turi po du RB, kiekvienas duodamas po 8 taškus per valandą. GPU ROP skaičius iš tikrųjų yra šio taško išvesties greičio matas, todėl visas „Navi“ lustas duoda 64 taškus per valandą ir visas TU102 96 (tačiau atminkite, kad tai yra didesnis lustas).

Trikampio pusėje yra mažiau informacijos. Tai, ką mes žinome, yra tai, kad „Navi“ vis tiek suteikia ne daugiau kaip 4 primityvius laikrodžio ciklus (po 1 per ACE), tačiau nebėra nieko, ar AMD išspręs šią problemą. Pirmykščiai šešėliai. Tai buvo labai reklamuojama „Vega“ savybė ir leido programuotojams žymiai labiau kontroliuoti primityvius, kad primityvų derlių būtų galima padidinti 4 veiksniais. iš tvarkyklių pašalinta funkcija Produktas buvo neveikiantis netrukus po jo pristatymo ir nuo to laiko.

Vis dar laukiant daugiau informacijos apie „Navi“, būtų neprotinga spėlioti toliau. Tiuringas taip pat valdo 1 primityvų per valandą per GPC (t. Y. Iki 6 už visą TU102 GPU) „Raster“ varikliuose, bet taip pat Tinklo šešėliaiSiūlo tą pačią funkciją kaip ir AMD „Primitive Shaders“; „Direct3D“ nėra „OpenGL“ ar „Vulkan“ funkcijų rinkinys, tačiau jį galima naudoti per API plėtinius.

Atrodo, kad tai suteikia Turingui pranašumą prieš „Navi“ kalbant apie trikampių ir primityvų tvarkymą, tačiau šiuo metu viešojoje erdvėje nėra pakankamai tikslios informacijos.

Ne viskas apie vykdymo vienetus

Verta palyginti ir kitus „Navi“ ir „Turing“ aspektus. Pirmiausia, abu GPU turi labai pažangius ekraninius ir medijos variklius. Pirmasis apdoroja išvestį į monitorių, antrasis koduoja ir dekoduoja vaizdo srautus.

Kaip ir tikėjotės iš naujo 2019 m. GPU dizaino, „Navi“ ekrano variklis siūlo labai didelę skiriamąją gebą esant dideliems atnaujinimo dažniams ir HDR palaikymą. Peržiūrėti srauto suspaudimą (DSC) yra greitas, nuostolingas glaudinimo algoritmas, leidžiantis „DisplayPort 1.4“ ryšiu perduoti panašias 4K + skiriamąsias gebas, kai atnaujinimo dažnis yra didesnis nei 60 Hz; Laimei, vaizdo kokybės pablogėjimas yra labai mažas iki taško, kuriame, jūsų manymu, DSC beveik nėra nuostolių.

Turingas taip pat palaiko „DisplayPort“ su DSC jungtimis, tačiau palaikomas didelės skiriamosios gebos ir atnaujinimo dažnio derinys yra šiek tiek geresnis nei „Navi“: 4K HDR esant 144 Hz dažniui - visa kita.

„Navi“ žiniasklaidos variklis yra toks pat modernus, kaip ir ekranas Pažangus vaizdo įrašų kodavimas (H.264) ir Didelio efektyvumo vaizdo įrašų kodavimas (H.265), vėlgi esant aukštai skiriamajai gebai ir dideliam bitų greičiui.

„Turing“ vaizdo variklis yra maždaug toks pat kaip „Navi“, tačiau palaikymas 8K30 HDR kodavimui gali pakeisti pusiausvyrą Turingo naudai kai kuriems žmonėms.

Yra ir kitų aspektų, kuriuos reikia palyginti (pavyzdžiui, „Navi“ „PCI Express 4.0“ sąsaja arba „Turing“ NV nuoroda), tačiau, nepaisant aprangos ir pardavimo, jie yra tikrai nedideli visos architektūros elementai. Taip yra todėl, kad daugumai potencialių vartotojų šios unikalios savybės nebus svarbios.

„Patinka-patinka“ palyginimas

Šis straipsnis yra architektūrinio dizaino, ypatybių ir funkcionalumo stebėjimas, tačiau tiesioginis atlikimo palyginimas būtų geras būdas užbaigti tokią analizę. Tačiau „Navi“ lusto sujungimas „Radeon RX 5700 XT“ su „GeForce RTX 2080 Ti“ su „Turing TU102“ procesoriumi „GeForce RTX 2080 Ti“ nebūtų aiškiai teisingas, nes pastarasis yra beveik dvigubai didesnis nei kombinuotų šešėlių vienetų skaičius. Tačiau yra „Turing“ lusto versija, kurią galima palyginti, ir tai yra „GeForce RTX 2070 Super“.

  „Radeon RX 5700 XT“ „GeForce RTX 2070 Super“
GPU | Architektūrinis Navi 10 | rDNR TU104 | Tiuringas
procesą 7 nm TSMC 12 nm TSMC
Pelėsio plotas (mm2) 251 545
Tranzistoriai (milijardai) 10.3 13.6
Blokuoti profilį 2 SE | 4 AKF | 40 PB 5 GPC | 20 TPC | 40 SM
Kombinuoti šešėlių šerdys 2560 SP 2560 STABDŽIAI
TMU 160 160
ROPS 64 64
Pagrindinis laikas 1605 MHz 1605 MHz
Žaidimo laikrodis 1755 MHz Nėra
Boost hour 1905 MHz 1770 MHz
Atmintis 8 GB 256 bitų GDDR6 8 GB 256 bitų GDDR6
Atminties pralaidumas 448 GBps 448 GBps
Šiluminė projektavimo galia (TDP) 225 vatų 215 W.

Verta paminėti, kad „RTX 2070 Super“ nėra „pilnas“ TU104 lustas (vienas iš GPC yra išjungtas), todėl visi šie 13,6 tranzistoriai yra neaktyvūs, vadinasi, lustai yra maždaug vienodi pagal tranzistorių skaičių. Pagal nominalią vertę šie du GPU atrodo labai panašūs, ypač jei atsižvelgsite tik į „shader“ vienetus, TMU, ROP ir pagrindines atminties sistemas.

„Nvida“ procesoriuje SM gali apdoroti 32 tuo pačiu metu veikiančius metmenis, o su kiekvienu 32 gijų metmenimis visiškai pakrautas „GeForce RTX 2070 Super“ gali veikti 40 960 gijų visame luste; „Navi“ atveju viena CU SIMD32 gali priimti 16 bangų vienam ALU ir kiekviena banga yra 32 sruogos. Taigi, „Radeon RX 5700 XT“ taip pat galima supakuoti iki 40 960 siūlų. Gali atrodyti, kad tai daro juos būtent čia, tačiau atsižvelgiant į tai, kaip skirtingai išdėstyti CU / SM ir Nvidia pranašumas tuo pačiu metu apdorojant INT ir FP, rezultatas labai priklausys nuo vykdomo kodo.

Kokį poveikį tai turės įvairiems žaidimų pasirodymams, nes 3D variklio kodas pirmenybę teikia vienai konstrukcijai, o ne atsižvelgiant į tai, kokios instrukcijos įprastai siunčiamos į GPU. Tai, išbandė dvi vaizdo plokštes:

Visi bandyme naudoti žaidimai buvo užprogramuoti AMD GCN architektūrai tiesiogiai „Radeon“ turintiems kompiuteriams arba per „GCN“ GPU, esančius „PlayStation 4“ ar „Xbox One“. Gali būti, kad kai kurie iš neseniai paleistų yra pasirengę RDNA pokyčiams, tačiau palyginamųjų rezultatų skirtumai labiau tikėtini dėl atvaizdavimo variklių ir instrukcijų bei duomenų apdorojimo būdo.

Taigi, ką visa tai reiškia? Ar tikrai viena architektūra yra geresnė už kitą? Turingas tikrai siūlo daugiau talpos nei „Navi“ dėka „Tensor“ ir „RT Cores“, tačiau pastarieji neabejotinai konkuruoja dėl 3D perteikimo. 12 žaidimo pavyzdžių skirtumai nėra pakankamai tikslūs, kad galėtume priimti galutinį sprendimą.

Tai mums gera žinia.

Paskutiniai žodžiai

AMD „Navi“ planai buvo paskelbta Jie siekė 2018 m. Pradėti 2016 m. Ir, nors jie nedaugžodžiavo. Kai ateis ir praeis ta data kelių žemėlapis pasikeitė tačiau buvo aišku, kad „Navi“ bus pastatytas 7 nm procesų mazge, o dizainas bus sutelktas į našumo gerinimą.

Tai neabejotinai buvo tas atvejis, ir, kaip matėme šiame straipsnyje, AMD padarė architektūrinių pakeitimų, kad „Nvidia“ galėtų konkuruoti su lygiaverčiais pasiūlymais. Naujas dizainas yra naudingas ne tik kompiuterių vartotojams, nes žinome, kad „Sony“ ir „Microsoft“ artėjančiu laikotarpiu naudos lusto variantą. „Playstation 5“ ve sonraki xbox.

Jei grįšite į šio straipsnio pradžią ir dar kartą pažvelgsite į „Shader Motors“ konstrukcinį dizainą, bendrą matmenų dydį ir tranzistorių skaičių, akivaizdu, kad „didžioji„ Navi “mikroschema gali pasiekti aukščiausią tašką. naujausia vaizdo plokštė; AMD beveik patvirtino, kad tai turėtų būti dabartinių jos planų dalis ir per ateinančius dvejus metus turėtų būti siekiama pagerinti architektūrą ir gamybos procesą.

Bet kokie yra „Nvidia“, „Turing“ ir jo įpėdinio planai? Keista, kad įmonė patvirtino nedaug. 2014 metais „Nvidia“ Atnaujintas GPU planas „Pascal“ architektūros planavimas 2016 m. Paleidimui (ir šio tikslo pasiekimas). 2017 m. „Tesla“ paskelbė „V100“Būtent šis dizainas išleido Turingą 2018 m., Naudojant „Volta“ architektūrą.

Nuo to laiko viskas buvo gana ramu, ir mes turėjome pasikliauti gandais ir naujienų fragmentais, kurie dažnai sako tą patį: kita „Nvidia“ architektūra vadinsis „Ampere“, Pagaminta „Samsung“ Jis naudoja 7 nm proceso mazgą ir planuojamas 2020 m. Be to, nėra nieko kito tęsti. Naujoji mikroschema vargu ar sulaužys tradicijas, sutelkdama dėmesį į skaliarinius vykdymo vienetus, arba vargu ar atsisakys tokių aspektų kaip „Tensor Core“, nes tai sukels didelių atgalinių suderinamumo problemų.

Vis dėlto galime pateikti pagrįstų prognozių, kaip atrodys kitas „Nvidia“ GPU. Bendrovė investavo daug laiko ir pinigų. Spindulių atsekimasir jo palaikymas tik žaidimuose padidinti; Todėl galime tikėtis, kad pagerės „RT“ pagrindas, kalbant apie galimybes ar skaičių SM. Jei vienas 7 nm proceso mazgas Jei tai tiesa, „Nvidia“ greičiausiai sieks sumažinti galingumą, o ne tiesiogiai padidinti laikrodžio greitį, kad jie galėtų padidinti GPC skaičių. Taip pat galima praleisti 7 nm ir paleisti „Nvidia“. Tiesiai 5 nm Norėdami įgyti pranašumą prieš AMD.

Matyt, AMD ir „Nvidia“, diskretiška vaizdo plokštė „Intel“ rinka, nes žinome, kad jie ketina vėl patekti į šią pramonę, Skambinkite 20 metų. Šis naujas produktas (šiuo metu Xe's) Galės varžytis tokiu pat lygiu kaip Navi ir Turingas.

Tuo tarpu „Intel“ per šiuos du dešimtmečius išgyveno GPU rinką kurdama integruotą grafiką savo procesoriams. Naujausias „Intel“ GPU 11 genTai panašu į AMD architektūrą, nes ji naudoja vektorinius ALU, kurie gali apdoroti FP32 ir INT32 duomenis, tačiau mes nežinome, ar naujos grafikos plokštės bus tiesioginė šio dizaino raida.

Aišku yra tai, kad ateinantys keleri metai bus labai įdomūs, nes trys silicio konstrukcijų milžinai toliau kovoja dėl mūsų piniginių. Nauji GPU dizainai ir architektūros sukels iššūkį tranzistorių skaičiams, talpyklos dydžiams ir šešėlių savybėms; „Navi“ ir RDNA yra naujausios iš jų ir parodė, kad kiekvienas žingsnis į priekį gali šiek tiek pakeisti.

Apsipirkimo spartieji klavišai:

Šis straipsnis iš pradžių buvo paskelbtas 2019 m. Rugpjūčio 7 d. Vykdydami iniciatyvą „#ThrowbackThursday“, mes šiek tiek pataisėme ir sugedome.