Söylentileri takip ettin ve yutturmaca görmezden geldin; sen bekledin yorumlar ve tüm ölçütlere baktı. Sonunda, dolarlarınızı tokatladınız ve AMD veya Nvidia'nın en yeni ekran kartlarından biriyle uzaklaştınız. Bunların içinde, hepsi on yıl önce düşünülemez saat hızlarında çalışan milyarlarca transistörle dolu büyük bir grafik işlemcisi yatıyor.

Satın alma işleminizden gerçekten memnunsunuz ve oyunlar daha iyi görünmedi ve daha iyi oynamadı. Ancak yepyeni Radeon'unuzu tam olarak neyin güçlendirdiğini merak ediyor olabilirsiniz RX 5700 ve bir çipte ne kadar farklı GeForce RTX.

AMD ve Nvidia: Navi vs Turing'in en yeni GPU'larının mimari ve özellik karşılaştırmasına hoş geldiniz.

Modern GPU Anatomisi

Genel çip yapılarını ve sistemlerini parçalamaya başlamadan önce, tüm modern GPU'ların takip ettiği temel biçime bakalım. Çoğunlukla, bu işlemciler sadece kayan nokta (FP) hesaplayıcılarıdır; diğer bir deyişle, ondalık / kesirli değerlerde matematik işlemleri yaparlar. Yani en azından bir GPU'nun bu görevlere adanmış bir mantık birimi olması gerekir ve bunlar genellikle FP ALU'ları (kayan noktalı aritmetik mantık birimleri) veya kısaca FPU'lar. GPU'ların yaptığı tüm hesaplamalar FP veri değerlerinde değildir, bu nedenle tam sayı için bir ALU da olacaktır (tamsayı) veya her iki veri türünü de işleyen aynı birim olabilir.

Şimdi, bu mantık birimleri, onları meşgul etmek için kodları çözerek ve düzenleyerek onları organize etmek için bir şeye ihtiyaç duyacaklar ve bu en az bir özel mantık birimi grubu şeklinde olacaktır. ALU'ların aksine, son kullanıcı tarafından programlanamazlar; bunun yerine, donanım satıcısı bu işlemin tamamen GPU ve sürücüleri tarafından yönetilmesini sağlayacaktır.

Bu talimatları ve işlenmesi gereken verileri saklamak için bir tür bellek yapısının da olması gerekir. En basit düzeyinde, iki şekilde olacaktır: önbellek ve bir nokta yerel bellek. Birincisi GPU'nun içine gömülecek ve SRAM. Bu tür bir bellek hızlıdır, ancak işlemcinin düzeninin görece büyük bir kısmını kaplar. Yerel bellek DRAMSRAM'den biraz daha yavaştır ve normalde GPU'ya konulmaz. Bugün gördüğümüz grafik kartlarının çoğunda yerel bellek GDDR DRAM modülleri.

Son olarak, 3B grafik oluşturma, köşelerden üçgen oluşturma, 3B çerçeveyi rasterleştirme, dokuları örnekleme ve karıştırma gibi ek ayar görevleri içerir. Talimat ve kontrol üniteleri gibi bunlar da sabit fonksiyon doğada. Yaptıkları ve nasıl çalıştıkları GPU'yu programlayan ve kullanan kullanıcılar için tamamen şeffaftır.

Bunu bir araya getirelim ve bir GPU yapalım:

Turuncu blok, denileni kullanarak dokuları işleyen birimdir doku haritalama üniteleri (TMU'lar) - TA doku adresleme birim - önbellek ve kullanılacak yerel bellek için bellek konumları oluşturur - ve TF doku getirme doku değerlerini bellekten toplar ve bunları bir araya getirir. Günümüzde TMU'lar tüm satıcılarda hemen hemen aynıdır, çünkü GPU saat döngüsü başına birden çok doku değerini ele alabilir, örnekleyebilir ve karıştırabilirler.

Altındaki blok, çerçevedeki piksellerin renk değerlerini yazar, bunları geri örnek alır (PO) ve karıştırır (PB); bu blok ayrıca kenar yumuşatma uygulandığında kullanılan işlemleri gerçekleştirir. Bu bloğun adı: render çıktı birimi or arka ucu oluştur (Kısaca ROP / RB). TMU gibi, artık her biri saat döngüsü başına birkaç pikseli rahat bir şekilde işleyen oldukça standart hale geliyorlar.

Bununla birlikte, temel GPU'muz 13 yıl önceki standartlara göre bile korkunç olurdu. Neden?

Sadece bir FPU, TMU ve ROP var. 2006 yılında Nvidia'nın GeForce 8800 GTX gibi grafik işlemcileri sırasıyla 128, 32 ve 24'e sahipti. Öyleyse bunun hakkında bir şeyler yapmaya başlayalım ....

İyi bir işlemci üreticisi gibi, GPU'yu biraz daha birim ekleyerek güncelledik. Bu, çipin aynı anda daha fazla talimat işleyebileceği anlamına gelir. Buna yardımcı olmak için, biraz daha önbellek ekledik, ancak bu sefer mantık birimlerinin hemen yanına. Önbellek bir hesap makinesi yapısına ne kadar yakınsa, kendisine verilen işlemlerde o kadar hızlı başlayabilir.

Yeni tasarımımızdaki sorun, ekstra ALU'larımızı idare eden tek bir kontrol ünitesinin hala mevcut olmasıdır. Hepsi kendi ayrı denetleyicileri tarafından yönetilen daha fazla birim bloğumuz olsaydı daha iyi olurdu, çünkü bu aynı anda çok farklı operasyonlar gerçekleştirebileceğimiz anlamına gelir.

Şimdi bu daha çok benziyor! Kendi TMU'ları ve ROP'ları ile paketlenmiş ve lezzetli lezzetli, hızlı önbellek dilimleriyle desteklenen ayrı ALU blokları. Hala her şeyden sadece biri var, ancak temel yapı bugün bilgisayarlarda ve konsollarda gördüğümüz grafik işlemcisinden bir milyon mil uzakta değil.

Navi ve Turing: Godzilla GPU'lar

Şimdi bir grafik yongasının temel düzenini tanımladığımıza göre, çeşitli yapıları vurgulamak için biraz büyütülmüş ve işlenmiş olsa da, gerçek yongaların bazı görüntüleri ile Navi ve Turing karşılaştırmamıza başlayalım.

Sol tarafta AMD'nin en yeni işlemcisi var. Genel çip tasarımına Navi (bazılarına Navi 10 denir) ve grafik mimarisine RDNA denir. Yanında, sağda, en yeni Turing mimarisine sahip Nvidia'nın tam boyutlu TU102 işlemcisi var. Bu görüntülerin ölçeklendirilmediğine dikkat etmek önemlidir: Navi kalıbının alanı 251 mm2, TU102 ise 752 mm2'dir. Nvidia işlemci büyük, ancak AMD teklifinden 8 kat daha büyük değil!

İkisi de devasa transistör sayısı (10.3'e karşı 18.6 milyar), ancak TU102'nin kare mm başına ~ 25 milyon transistörü vardır ve Navi'nin kare mm başına 41 milyonuna kıyasla.

Bunun nedeni, her iki yonga TSMC tarafından üretilirken, farklı işlem düğümlerinde üretilir: Nvidia'nın Turing olgun 12 nm üretim hattındayken, AMD Navi daha yeni 7 nm düğümde üretilir.

Sadece kalıpların görüntülerine bakmak bize mimariler hakkında çok şey anlatmaz, bu yüzden her iki şirket tarafından üretilen GPU blok şemalarına bir göz atalım.

Diyagramlar, gerçek mizanpajların% 100 gerçekçi bir temsili değildir, ancak 90 dereceye kadar döndürürseniz, her ikisinde de görünen çeşitli bloklar ve merkezi şerit tanımlanabilir. Başlangıç ​​olarak, iki GPU'nun bizimki gibi genel bir yapıya sahip olduğunu görebiliriz (her şeyden daha fazla da olsa!).

Her iki tasarım da her şeyin nasıl düzenlendiğine ve gruplandığına dair katmanlı bir yaklaşım izliyor - Navi'yi kullanmaya başlamak için GPU, AMD'nin aradığı 2 bloktan oluşturuldu Gölgelendirici Motorları (SE), bunların her biri 2 blok olarak adlandırılır eşzamanlı olmayan Hesaplama Motorları (ACE). Bunların her biri başlıkta 5 blok içerir. Çalışma Grubu İşlemcileri (WGP'ler), bu da 2'den oluşur Bilgi İşlem Birimleri (Öze).

Turing tasarımı için adlar ve sayılar farklıdır, ancak hiyerarşi çok benzer: 6 Grafik İşleme Kümeleri (GPC), her biri 6 Doku İşleme Kümeleri (TPC), her biri 2 Akış Çok İşlemcili (SM) blokları.

Bir grafik işlemcisini, farklı bölümlerin aynı hammaddeleri kullanarak farklı ürünler ürettiği büyük bir fabrika olarak görüyorsanız, bu organizasyon mantıklı olmaya başlar. Fabrikanın CEO'su tüm operasyonel detayları işletmeye gönderir ve burada çeşitli görevlere ve iş yüklerine ayrılır. Birden fazla olması, bağımsız fabrikada iş gücünün verimliliği artırıldı. GPU'lar için farklı değil ve buradaki sihirli anahtar kelime zamanlama.

Ön ve Merkez, Asker - Zamanlama ve Sevk

Nasıl olduğuna bir baktığımızda 3D oyun oluşturma çalışmaları, grafik işlemcinin milyonlarca veri parçası üzerinde bir dizi matematik işlemi gerçekleştirerek süper hızlı bir hesap makinesinden başka bir şey olmadığını gördük. Navi ve Turing şu şekilde sınıflandırılır: Tek Komutlu Çoklu Veri (SIMD) işlemciler, ancak daha iyi bir açıklama Tek Yönlü Çoklu İş Parçacığı (His).

Modern bir 3D oyunu, işlenecek köşe ve piksel sayısı çok büyük olduğundan, bazen binlerce olan yüzlerce iş parçacığı üretir. Hepsinin sadece birkaç mikrosaniye içinde yapılmasını sağlamak için, her şey durmadan mümkün olduğunca çok sayıda mantık birimine sahip olmak önemlidir, çünkü gerekli veriler doğru yerde değildir veya çalışmak için yeterli kaynak alanı yoktur içinde.

3D oyun oluşturmanın nasıl çalıştığına bir baktığımızda, bir grafik işlemcisinin gerçekten hızlı bir hesap makinesinden başka bir şey olmadığını gördük ve milyonlarca veri üzerinde çeşitli matematik işlemleri gerçekleştirdik. Navi ve Turing, Tek Komutlu Çoklu Veri (SIMD) işlemcileri olarak sınıflandırılır, ancak daha iyi bir açıklama Tek Komutlu Çoklu Dişler (SIMT) olacaktır.

Navi ve Turing benzer şekilde çalışır, böylece merkezi bir ünite tüm iplikleri alır ve daha sonra bunları programlamaya ve yayınlamaya başlar. AMD çipinde bu rol, Grafik Komut İşlemcisi; Nvidia'da, GigaThread Motoru. İplikler, aynı talimatlara sahip olanlar birlikte 32 gruptan oluşan bir koleksiyon halinde gruplanacak şekilde düzenlenir.

AMD bu koleksiyonu dalgaoysa Nvidia buna eğrilik. Navi için, bir Bilgi İşlem Birimi 2 dalgayı (veya bir 64 iş parçacığını çalıştırabilir, ancak bu işlem iki kat daha uzun sürer) ve Turing'de bir Akış Çok İşlemcili 4 çözgü ile çalışır. Her iki tasarımda da dalga / çözgü bağımsızdır, yani başlamadan önce diğerlerinin bitirmesine gerek yoktur.

O zamana kadar, Navi ve Turing arasında çok farklı değil - ikisi de iş yüklerini oluşturmak ve hesaplamak için çok sayıda iş parçacığını işlemek üzere tasarlandı. İki GPU devinin tasarımda nerede ayrıldığını görmek için bu iş parçacıklarını hangi işlemleri işlediğine bakmamız gerekir.

İcra Farkı - RDNA ve CUDA

Kullanılan terminolojinin çoğu aynı gibi görünse de AMD ve Nvidia, birleşik gölgelendirici birimlerine oldukça farklı bir yaklaşım benimsiyor. Nvidia'nın yürütme birimleri (CUDA çekirdekler) sayısal doğada - bu, bir birimin bir veri bileşeni üzerinde bir matematik işlemi gerçekleştirdiği anlamına gelir; aksine AMD üniteleri (Akış İşlemcileri) üzerinde çalışmak vektörler - birden fazla veri bileşeni üzerinde bir işlem. Skaler operasyonlar için tek bir özel üniteleri vardır.

Yürütme birimlerine daha yakından bakmadan önce, AMD'nin kendi değişikliklerini inceleyelim. 7 yıl boyunca Radeon grafik kartları, Grafik Çekirdeği Sonraki (GCN) adlı bir mimariyi takip etti. Her yeni çip, tasarımın çeşitli yönlerini revize etti, ancak hepsi temelde aynı oldu.

AMD, GPU mimarisinin kısa bir tarihçesini sundu:

GCN, büyük dalgaların aynı anda işlenmesine izin veren bir tasarım olan TeraScale'in bir evrimiydi. TeraScale ile ilgili asıl mesele, programcılara karşı çok kolay olmadığı ve en iyisini elde etmek için çok özel rutinlere ihtiyaç duyduğuydı. GCN bunu düzeltti ve çok daha erişilebilir bir platform sağladı.

Navi'deki CU'lar AMD'nin iyileştirme sürecinin bir parçası olarak GCN'den önemli ölçüde revize edildi. Her CU iki set içerir:

  • 32 SP (IEE754 FP32 ve INT32 vektör ALU'ları)
  • 1 SFU
  • 1 INT32 skaler ALU
  • 1 zamanlama ve sevk ünitesi

Bunların yanı sıra, her CU 4 doku birimi içerir. Önbellekten veri okuma / yazma işlemlerini gerçekleştirecek başka birimler de var, ancak aşağıdaki resimde gösterilmiyorlar:

GCN ile karşılaştırıldığında, bir RDNA CU'nun kurulumu çok farklı görünmeyebilir, ancak burada önemli olan her şey bu şekilde organize edildi ve düzenlendi. Başlangıç ​​olarak, her 32 SP setinin kendi özel talimat birimi vardır, GCN'nin 4 set 16 SP için sadece bir programı vardı.

Bu, her SP setine saat döngüsü başına bir 32 iplik dalgasının verilebileceği anlamına gelen önemli bir değişikliktir. RDNA mimarisi ayrıca vektör birimlerinin 16 iş parçacığının dalgalarını iki kat hızda ve 64 iş parçacığının dalgalarını yarı yarıya işlemesine izin verir, bu nedenle önceki Radeon grafik kartlarının tümü için yazılan kod hala desteklenir.

Oyun geliştiricileri için bu değişiklikler çok popüler olacak.

Skaler operasyonlar için, şimdi bunları idare edebilecek iki ünite vardır; bileşen sayısındaki tek azalma SFU'lar şeklindedir - bunlar özel fonksiyon birimler, çok spesifik matematik işlemleri gerçekleştiren, ör. trigonometrik (sinüs, tanjant), karşılıklı (1'e bir sayıya bölünür) ve kare kökler. RDNA'da GCN'ye kıyasla bunlardan daha azı var, ancak artık eskisi gibi iki kat daha büyük veri kümelerinde çalışabiliyorlar.

Oyun geliştiricileri için bu değişiklikler çok popüler olacak. Eski Radeon grafik kartlarında çok fazla potansiyel performans vardı, ancak bunu yapmak çok zordu. Şimdi AMD, işleme talimatlarındaki gecikmeyi azaltmak için büyük bir adım attı ve ayrıca GCN mimarisi için tasarlanan tüm programlar için geriye dönük uyumluluk sağlamak için özellikleri korudu.

Peki ya profesyonel grafikler veya bilgi işlem piyasası? Bu değişiklikler onlar için de faydalı mı?

Kısa cevap, evet (muhtemelen). Navi çipinin Radeon RX 5700 XT'nin benzerlerinde bulunan mevcut sürümü, önceki Vega tasarımından daha az Akış İşlemcisine sahipken, daha iyi performans gösterdik önceki nesil Radeon RX Vega 56 oldukça kolay:

Bu performans kazancının bir kısmı, RX Vega 56'dan RX 5700 XT daha yüksek saat hızından gelecek (böylece yerel belleğe saniyede daha fazla piksel yazabilir), ancak en yüksek tamsayı ve kayan nokta performansında% 15'e kadar düşüyor ; yine de Navi çipinin Vega'dan% 18 daha iyi performans gösterdiğini gördük.

Profesyonel render programları ve karmaşık algoritmalar çalıştıran bilim adamları, işlerinde birkaç Battlefield V turuyla patlamıyor (yani, olabilir...) ancak bir oyun motorunda yapılan skaler, vektör ve matris işlemleri daha hızlı işleniyorsa, bu meli bilgi işlem pazarına çevirmek. Şu anda, AMD'nin profesyonel pazarla ilgili planlarının ne olduğunu bilmiyoruz - Vega mimarisine iyi devam edebilirler ve tasarımı geliştirmeye, üretime yardımcı olabilirler, ancak Navi'deki gelişmeler göz önüne alındığında, şirketin her şeyi yeni mimariye taşıyın.

Nvidia'nın GPU tasarımı, AMD'den daha az radikal değişiklik olsa da, GeForce 8 serisini piyasaya sürdükleri 2006 yılından bu yana benzer bir evrim geçirdi. Bu GPU, yürütme mimarisinde ilk bir gölgelendirici yaklaşımı kullanan ilk Tesla mimarisini oluşturdu. Aşağıda SM bloklarında haleften Tesla'ya (Fermi), Turing'in selefine (Volta) kadar olan değişiklikleri görebiliriz:

Bu makalede daha önce bahsedildiği gibi, CUDA çekirdekleri sayısal. Bir veri bileşeninde saat döngüsü başına bir şamandıra ve bir tamsayı talimatı yürütebilirler (ancak, talimatın kendisinin işlenmek için birden fazla saat döngüsü alabileceğini unutmayın), ancak zamanlama birimleri bunları gruplar halinde düzenleyecek şekilde düzenler, bir programcıya vektör işlemleri yapabilirler. Yıllar boyunca en önemli değişiklik, sadece daha fazla birim olmaktan başka, bunların nasıl düzenlendiğini ve bölümlendiğini içerir.

Kepler tasarımında, tam çipin her biri üç SM bloğunu barındıran 5 GPC vardı; Pascal ortaya çıktığı zaman, GPC'ler TPC başına iki SM ile ayrı bölümlere (TPC) ayrıldı. Navi tasarımında olduğu gibi. bu parçalanma, genel GPU'nun mümkün olduğunca tam olarak kullanılmasına izin verdiği için önemlidir; birden fazla bağımsız komut grubu paralel olarak işlenebilir, böylece işlemcinin gölgeleme ve hesaplama performansı artar.

RDNA Hesaplama Birimi ile eşdeğer Turing'e bir göz atalım:

Bir SM, her biri aşağıdakileri içeren 4 işlem bloğu içerir:

  • 1 talimat çizelgeleme ve sevk ünitesi
  • 16 IEE754 FP32 skaler ALU
  • 16 INT32 skaler ALU
  • 2 Tensör renkleri
  • 4 SFU
  • 4 Yükleme / Depolama birimi (önbellek okuma / yazma işlemlerini gerçekleştiren)

Ayrıca SM başına 2 FP64 birimi vardır, ancak Nvidia bunları artık blok şemalarında göstermez ve her SM, 4 doku birimi (doku adresleme ve doku filtreleme sistemleri içerir) ve 1 RT (Ray Tracing) çekirdeğine sahiptir.

FP32 ve INT32 ALU'lar aynı anda ve paralel olarak çalışabilir. Bu önemli bir özelliktir, çünkü 3B oluşturma motorları çoğunlukla kayan nokta hesaplamaları gerektirse de, yapılması gereken makul sayıda basit tamsayı işlemi (örn. Veri adresi hesaplamaları) vardır.

Tensör Çekirdekleri, matris işlemlerini gerçekleştiren özel ALU'lardır. Matrisler 'kare' veri dizileridir ve Tensor çekirdekleri 4 x 4 matris üzerinde çalışır. FP16, INT8 veya INT4 veri bileşenlerini, bir saat döngüsünde 64 FMA'ya (sigortalı çarp-sonra-ekle-ekleyerek) kayan işlem gerçekleşecek şekilde işleyecek şekilde tasarlanmıştır. Bu hesaplama türü, sözde nöral ağlar ve çıkarım - 3D oyunlarda tam olarak yaygın değildir, ancak Facebook'un beğenileri tarafından sosyal medya analiz algoritmaları veya kendi kendine sürüş sistemleri olan araçlarda yoğun olarak kullanılır. Navi de matris hesaplamaları yapabilir, ancak bunun için çok sayıda SP'ye ihtiyaç duyar; Turing sisteminde, CUDA çekirdekleri başka matematik yaparken matris işlemleri yapılabilir.

RT Core, Nvidia'nın ışın izleme sistemi için kullanılan çok spesifik matematik algoritmaları gerçekleştiren Turing mimarisine özgü başka bir özel birimdir. Bunun tam bir analizi bu makalenin kapsamı dışındadır, ancak RT Core, SM'nin geri kalanına ayrı ayrı çalışan iki sistemdir, bu nedenle RT Core hesaplamalar yapmakla meşgulken, tepe veya piksel gölgelendiricileri üzerinde de çalışabilir. ışın izleme için.

Temel düzeyde, Navi ve Turing'in oldukça benzer bir özellik kümesi (Direct3D, OpenGL, vb. Gereksinimlerine uymaktan doğan bir gereklilik) sunan yürütme birimleri var ...

Temel düzeyde, Navi ve Turing'in oldukça benzer bir özellik kümesi (Direct3D, OpenGL, vb. Gereksinimlerine uymaktan doğan bir gereklilik) sunan yürütme birimleri var, ancak bu özelliklerin nasıl olduğuna çok farklı bir yaklaşım getiriyorlar. işlenmiş. Hangi tasarımın daha iyi olduğuna gelince, nasıl kullanıldıklarına gelir: FP32 vektör hesaplamaları ve çok az şey gerçekleştiren çok sayıda iş parçacığı üreten bir program Navi'yi tercih ediyor gibi görünürken, çeşitli tamsayı, kayan nokta, skaler ve vektör hesaplamaları olan bir program Turing'in esnekliğini tercih eder, vb.

Bellek Hiyerarşisi

Modern GPU'lar akış işlemcileridir, yani bir veri akışındaki her öğe üzerinde bir dizi işlem gerçekleştirmek üzere tasarlanmıştır. Bu, onları genel amaçlı bir CPU'dan daha az esnek hale getirir ve ayrıca ALU'lara mümkün olduğunca hızlı ve mümkün olduğunca çok akışta veri ve talimat almak için çipin bellek hiyerarşisinin optimize edilmesini gerektirir. Bu, GPU'ların CPU'dan daha az önbelleğe sahip olacağı anlamına gelir, çünkü yonganın çoğunun önbellek erişimine değil, önbellek miktarına adanması gerekir.

Hem AMD hem de Nvidia, çiplerde birden fazla önbellek kullanımına başvuruyor, bu yüzden Navi'nin ilk paketlediğine bir göz atalım.

Hiyerarşideki en düşük düzeyden başlayarak, Akış İşlemcilerinin iki bloğunda toplam 256 kilo vektör genel amaçlı kayıt kullanılır (genellikle kayıt dosyası), Vega ile aynı miktarda ancak 4 SP bloğu arasındaydı; Çok sayıda iş parçacığını işlemeye çalışırken kayıtların tükenmesi gerçekten performansa zarar verir, bu yüzden bu kesinlikle "iyi bir şey" dir. AMD, skaler kayıt dosyasını da büyük ölçüde artırdı. Daha önce sadece 4 kiB olduğu zaman, şimdi skaler birim başına 32 kilo.

İki Hesaplama Birimi daha sonra 32 kiloluk bir L0 önbelleğini ve 16 kiloluk bir skaler veri önbelleğini paylaşır, ancak her CU kendi 32 kiloluk vektör L0 önbelleğini alır; tüm bu belleğin ALU'lara bağlanması 128 kiloluk bir Yerel Veri Paylaşımıdır.

Navi'de, iki Hesaplama Motoru bir Çalışma Grubu İşlemcisi oluşturur ve bunlardan beşi bir Asenkron Hesaplama Motoru (ACE) oluşturur. Her ACE'nin kendi 128 kiloluk L1 önbelleğine erişimi vardır ve tüm GPU, L1 önbelleklerine ve işlemcinin diğer bölümlerine bağlanan 4 MiB L2 önbellek tarafından daha da desteklenir.

Sistem kesinlikle 16 GDDR6 bellek denetleyicisini işlemek için kullanıldığından, AMD'nin tescilli Infinity Fabric bağlantı mimarisinin bir şeklidir. Bellek bant genişliğini en üst düzeye çıkarmak için Navi ayrıca L1, L2 ve yerel GDDR6 bellek arasında kayıpsız renk sıkıştırması kullanır.

Yine, tüm bunlar, özellikle içerdikleri gölgeleme birimi sayısı için yeterli düşük düzey önbelleğe sahip olmayan önceki AMD yongalarına kıyasla memnuniyetle karşılanmaktadır. Kısacası, daha fazla önbellek daha fazla dahili bant genişliğine, daha az durgun talimatlara eşittir (çünkü bellekten daha fazla veri almak zorunda oldukları için) vb. Ve bu sadece daha iyi performansa eşittir.

Turing'in hiyerarşisi üzerine, bu alanda derinlemesine bilgi sağlama söz konusu olduğunda Nvidia'nın utangaç tarafta olduğu söylenmelidir. Bu makalenin başlarında, her SM'nin 4 işlem bloğuna bölündüğünü gördük - her birinde Navi'de bulunandan daha küçük bir 64 kiB kayıt dosyası var, ancak Turing'in ALU'larının vektör değil skaler olduğunu unutmayın. , birimler.

Sırada, her SM için 96 kiB paylaşılan bellek, 64 kiB L1 veri önbelleği ve 32 kiB doku önbelleği veya ekstra kayıt alanı olarak kullanılabilir. 'Bilgi işlem modunda', paylaşılan bellek 32 kiB paylaşılan bellek ve 64 kiB L1 önbellek gibi farklı bölümlere ayrılabilir, ancak her zaman 64 + 32 bölünme olarak yapılır.

Torna bellek sistemi hakkında verilen ayrıntı eksikliği bizi daha fazla istememize neden oldu, bu yüzden Citadel Enterprise Americas'ta çalışan bir GPU araştırma ekibine döndük. Son zamanlarda, iki makaleyi yayınladılar. zaman ve Turing mimarileri; yukarıdaki görüntü TU104 çipindeki bellek hiyerarşisinin parçalanmasıdır (tam TU102 spor 6144 kiB L2 önbelleği).

Ekip, L1 önbellek iş hacminin döngü başına 64 bit olduğunu doğruladı ve test altında Turing'in L1 önbelleğinin verimliliğinin tüm Nvidia'nın GPU'larının en iyisi olduğunu belirtti. AMD'nin çipi Yerel Veri Deposu için daha yüksek bir okuma oranına, ancak talimat / sabit önbellekler için daha düşük bir orana sahip olmasına rağmen, bu Navi ile eşittir.

Her iki GPU da yerel bellek için GDDR6 kullanır - bu, Grafik DDR SDRAM'ın en son sürümüdür - ve her ikisi de bellek modüllerine 32 bit bağlantılar kullanır, bu nedenle Radeon RX 5700 XT 256 GiB / s'lik bir tepe bant genişliği ve 8 GiB alan sağlayan 8 bellek yongasına sahiptir. bir GeForce RTX 2080 Ti TU102 yongasıyla, 352 GiB / s bant genişliği ve 11 GiB depolama için bu tür 11 modülle çalışır.

AMD'nin belgeleri bazen kafa karıştırıcı görünebilir: Navi'yi gördüğümüz ilk blok şemasında dört 64 bit bellek denetleyicisi gösterirken, daha sonraki bir görüntü 16 denetleyici olduğunu gösteriyor. Göz önüne alındığında Samsung sadece 32 bit GDDR6 sunuyor ikinci görüntünün Infinity Fabric sistemi ile bellek denetleyicileri arasında kaç bağlantı olduğunu gösterdiği anlaşılıyor. Muhtemelen sadece 4 bellek denetleyicisi vardır ve her biri iki modül kullanır.

Genel olarak, önbellekleri ve yerel belleği söz konusu olduğunda Navi ve Turing arasında çok büyük bir fark yok gibi görünüyor. Navi'nin daha büyük talimat / sabit ve L1 önbellekleri ile şeylerin yürütme tarafına yaklaşmasından biraz daha fazlası var, ancak her ikisi de her şeyle dolu, her ikisi de mümkün olan yerlerde renk sıkıştırması kullanıyor ve her ikisinde de çok sayıda özel GPU kalıbı var Bellek erişimini ve bant genişliğini en üst düzeye çıkarmak için alan

Üçgenler, Dokular ve Piksel

On beş yıl önce, GPU üreticileri yongalarının kaç tane üçgeni işleyebileceği, her döngüde filtrelenebilecek doku elemanlarının sayısı ve render çıktı birimlerinin (ROP'ler) yeteneği hakkında büyük bir anlaşma yaptılar. Bu yönler bugün hala önemlidir, ancak 3D render teknolojileri her zamankinden daha fazla bilgi işlem performansı gerektirdiğinden, odak noktaların yürütme tarafında çok daha fazladır.

Bununla birlikte, sadece bu bölgelerde Navi ve Turing arasında hemen fark edilebilir bir fark olmadığını belirtmek gerekirse, doku birimleri ve ROP'lar hala araştırılmaya değer. Her iki mimaride, doku birimleri 4 doku elemanını ele alıp getirebilir, bunları tek bir elemanda bilinearly filtreleyebilir ve hepsini bir saat döngüsünde önbelleğe yazabilir (verileri yerel bellekten almak için alınan ek saat döngülerini göz ardı ederek).

ROP / RB'lerin düzenlenmesi Navi ve Turing arasında biraz farklıdır, ancak çok fazla değil: AMD yongasında ACE başına 4 RB vardır ve her biri saat döngüsü başına 4 harmanlanmış piksel çıkışı yapabilir; Turing'de, her GPC iki RB'ye sahip ve her biri saatte 8 piksel veriyor. GPU'nun ROP sayısı gerçekten bu piksel çıkış hızının bir ölçümüdür, bu nedenle tam bir Navi çipi saat başına 64 piksel verir ve tam TU102 96 verir (ancak bunun daha büyük bir çip olduğunu unutmayın).

Şeylerin üçgen tarafında daha az bilgi var. Bildiğimiz şey, Navi'nin hala saat döngüsü başına maksimum 4 ilkel (ACE başına 1) vermesidir, ancak AMD'nin bu sorunla ilgili sorunu çözüp çözmediği hakkında henüz bir şey yoktur. İlkel Gölgelendiriciler. Bu, Vega'nın çok tartışmalı bir özelliğiydi ve programcıların ilkeller üzerinde çok daha fazla kontrole sahip olmalarına izin verdi, böylece ilkel verimi 4 faktör artırabilir. işlevsellik sürücülerden kaldırıldı Ürün piyasaya sürülmesinden kısa bir süre sonra ve o zamandan beri uykuda kaldı.

Hala Navi hakkında daha fazla bilgi beklerken, daha fazla spekülasyon yapmak akıllıca olmaz. Turing ayrıca Raster Motorlarında her GPC için saatte 1 ilkel işler (tam TU102 GPU için 6'ya kadar), ancak aynı zamanda Mesh GölgelendiricileriAMD'nin İlkel Gölgelendiricileri ile aynı işlevselliği sunar; Direct3D, OpenGL veya Vulkan'ın bir özellik kümesi değildir, ancak API uzantıları aracılığıyla kullanılabilir.

Bu, Turing'e üçgenleri ve ilkelleri ele alma açısından Navi'ye üstünlük katıyor gibi gözüküyor, ancak şu anda kamu alanında yeterince kesin bilgi yok.

Hepsi İcra Birimleri Hakkında Değil

Navi ve Turing'in karşılaştırmaya değer başka yönleri de var. Başlangıç ​​olarak, her iki GPU da oldukça gelişmiş ekran ve medya motorlarına sahiptir. Birincisi çıkışı monitöre işler, ikincisi video akışlarını kodlar ve kodunu çözer.

Yeni bir 2019 GPU tasarımından beklediğiniz gibi, Navi'nin ekran motoru yüksek yenileme hızlarında çok yüksek çözünürlükler sunuyor ve HDR desteği sunuyor. Akış Sıkıştırmasını Görüntüle (DSC), 60 Hz'den daha yüksek yenileme hızlarında 4K + çözünürlüklerin beğenilerinin bir DisplayPort 1.4 bağlantısı üzerinden iletilmesine izin veren hızlı bir kayıplı sıkıştırma algoritmasıdır; Neyse ki, DSC'yi neredeyse kayıpsız olarak değerlendireceğiniz noktaya kadar, görüntü kalitesinde bozulma çok küçüktür.

Turing ayrıca DSC bağlantılarıyla DisplayPort'u da destekliyor, ancak desteklenen yüksek çözünürlük ve yenileme hızı kombinasyonu Navi'den biraz daha iyi: 4K HDR 144 Hz'de - gerisi aynı.

Navi'nin medya motoru, ekran motoru kadar modern ve Gelişmiş Video Kodlama (H.264) ve Yüksek Verimli Video Kodlama (H.265), yine yüksek çözünürlüklerde ve yüksek bit hızlarında.

Turing'in video motoru kabaca Navi'ninkiyle aynı, ancak 8K30 HDR kodlama desteği bazı insanlar için Turing lehine dengeyi bozabilir.

Karşılaştırılacak başka yönler de var (örneğin, Navi'nin PCI Express 4.0 arayüzü veya Turing'in NV Link'i), ancak ne kadar giyindikleri ve pazarlandıklarına bakılmaksızın, genel mimarinin gerçekten çok küçük parçaları. Bunun nedeni, potansiyel kullanıcıların büyük çoğunluğu için bu benzersiz özelliklerin önemli olmayacağıdır.

Like-for-Like karşılaştırması

Bu makale mimari tasarım, özellikler ve işlevselliğin bir gözlemidir, ancak doğrudan performans karşılaştırmasına sahip olmak, böyle bir analizi tamamlamanın iyi bir yolu olacaktır. Bununla birlikte, bir GeForce RTX 2080 Ti'de bir Radeon RX 5700 XT'deki Navi çipinin bir GeForce RTX 2080 Ti'de Turing TU102 işlemcisiyle eşleştirilmesi, ikincisinin birleştirilmiş shader ünitelerinin sayısının neredeyse iki katı olduğu göz önüne alındığında belirgin bir şekilde haksız olacaktır. Ancak, Turing çipinin bir karşılaştırma için kullanılabilecek bir sürümü var ve bu GeForce RTX 2070 Super'deki versiyon.

  Radeon RX 5700 XT GeForce RTX 2070 Süper
GPU | Mimari Navi 10 | rDNA TU104 | Turing
süreç 7 nm TSMC 12 nm TSMC
Kalıp alanı (mm2) 251 545
Transistörler (milyarlarca) 10.3 13.6
Profili engelle 2 SE | 4 ACE | 40 PB 5 GPC | 20 TPC | 40 SM
Birleşik gölgelendirici çekirdekleri 2560 SP 2560 MUCİZELER
TMUs 160 160
ROPS 64 64
Temel saat 1605 MHz 1605 MHz
Oyun saati 1755 MHz N / A
Takviye saati 1905 MHz 1770 MHz
Hafıza 8 GB 256 bit GDDR6 8 GB 256 bit GDDR6
Bellek bant genişliği 448 GBps 448 GBps
Termal Tasarım Gücü (TDP) 225 watt 215 watt

RTX 2070 Super'in 'tam' bir TU104 çipi (GPC'lerden biri devre dışı) olmadığını belirtmek gerekir, bu nedenle bu 13.6 transistörlerin hepsi aktif değildir, bu da yongaların transistör sayısı açısından kabaca aynı olduğu anlamına gelir. Nominal değerde, özellikle sadece gölgelendirici birimlerini, TMU'ları, ROP'ları ve ana bellek sistemlerini düşünürseniz, iki GPU çok benzer görünmektedir.

Nvida işlemcide, bir SM 32 eşzamanlı çözgü işleyebilir ve 32 iplikten oluşan her çözgü ile, tam yüklü bir GeForce RTX 2070 Super tüm çip boyunca 40.960 diş üzerinde çalışabilir; Navi için, bir CU SIMD32 ALU başına 16 dalga alabilir, her dalga 32 ipliktir. Böylece Radeon RX 5700 XT ayrıca 40.960 dişe kadar paketlenebilir. Bu, onları tam olarak burada bile yapıyor gibi görünebilir, ancak CU / SM'lerin ne kadar farklı düzenlendiği ve Nvidia'nın eşzamanlı INT ve FP işleme ile avantajı göz önüne alındığında, sonuç büyük ölçüde çalıştırılan koda bağlı olacaktır.

Bu, çeşitli oyun performanslarının nasıl bir etkisi olacaktır, çünkü bir 3D motorun kodu, GPU'ya rutin olarak hangi tür talimatların gönderildiğine bağlı olarak bir yapıyı diğerinden daha iyi tercih edecektir. Bu, iki grafik kartını test etti:

Testte kullanılan tüm oyunlar, doğrudan Radeon donanımlı PC'ler için veya PlayStation 4 veya Xbox One'da bulunan GCN GPU'lar üzerinden AMD'nin GCN mimarisi için programlandı. Yakın zamanda piyasaya sürülenlerin bazılarının RDNA'nın değişikliklerine hazırlıklı olması mümkündür, ancak karşılaştırma sonuçlarında görülen farklılıkların, oluşturma motorları ve talimatların ve verilerin işlenme şekli nedeniyle daha olası olması muhtemeldir.

Peki tüm bunlar ne anlama geliyor? Bir mimari gerçekten diğerinden daha mı iyi? Turing, Tensor ve RT Cores sayesinde Navi'den kesinlikle daha fazla kapasite sunuyor, ancak ikincisi kesinlikle 3D render performansı açısından rekabet ediyor. 12 oyun örneğinde görülen farklar kesin bir yargıya varacak kadar kesin değildir.

Ve bu bizim için iyi bir haber.

Son sözler

AMD'nin Navi planları ilan edildi 2016'da ve çok fazla şey söylememelerine rağmen, 2018 lansmanını hedefliyorlardı. O tarih gelip gittiğinde, yol haritası değişmiş ancak Navi'nin 7nm işlem düğümünde üretileceği ve tasarımın performansı geliştirmeye odaklanacağı açıktı.

Kesinlikle durum böyleydi ve bu makalede gördüğümüz gibi AMD, Nvidia'nın eşdeğer teklifleriyle birlikte rekabet etmesini sağlamak için mimari değişiklikler yaptı. Yeni tasarım, sadece PC kullanıcılarından daha fazla fayda sağlıyor, çünkü Sony ve Microsoft'un önümüzdeki dönemde çipin bir varyantını kullanacağını biliyoruz Playstation 5 ve sonraki Xbox.

Bu makalenin başlangıcına dönüp tekrar Shader Engine'lerin yapısal tasarımına, toplam kalıp boyutuna ve transistör sayısına bakarsanız, bir 'büyük Navi' çipinin zirveye çıkması için açıkça bir kapsam vardır. son grafik kartı; AMD hemen hemen onayladı bunun mevcut planlarının bir parçası olması ve gelecek iki yıl içinde mimari ve imalat sürecinin iyileştirilmesini hedeflemesi.

Peki ya Nvidia, Turing ve halefi için planları neler? Şaşırtıcı bir şekilde, şirket tarafından çok az şey doğrulandı. 2014 yılında, Nvidia GPU yol haritasını güncelledi Pascal mimarisini 2016 lansmanı için planlamak (ve bu hedefe ulaşmak). 2017 yılında, Tesla V100'ü duyurduVolta mimarisini kullanarak, 2018'de Turing'i ortaya çıkaran bu tasarımdı.

O zamandan beri, işler oldukça sessizdi ve söylentilere ve haber snippet'lerine güvenmek zorunda kaldık, bunların hepsi aynı şeyi söylüyor: Nvidia'nın bir sonraki mimarisi Ampere olarak adlandırılacak, Samsung tarafından üretildi 7nm işlem düğümünü kullanıyor ve 2020 için planlanıyor. Bunun dışında devam edecek başka bir şey yok. Yeni çipin skaler yürütme birimlerine odaklanarak geleneği kırması pek olası değildir, ya da Tensor Çekirdekleri gibi yönleri düşürmesi olası değildir, çünkü bu önemli ölçüde geriye dönük uyumluluk sorunlarına neden olacaktır.

Yine de bir sonraki Nvidia GPU'nun nasıl olacağı hakkında bazı makul tahminler yapabiliriz. Şirket önemli miktarda zaman ve para yatırdı. Işın izlemeve oyunlarda bunun desteği sadece artırmak; bu nedenle RT çekirdeğinde, yetenekleri veya SM başına sayı bakımından bir iyileşme görmeyi bekleyebiliriz. Eğer bir 7 nm işlem düğümü doğruysa, Nvidia muhtemelen GPC'lerin sayısını artırabilmeleri için doğrudan saat hızı artışından ziyade güç azaltmayı hedefleyecektir. Ayrıca 7 nm'nin atlanması ve Nvidia'nın başlaması da mümkündür. 5 nm için düz AMD karşısında avantaj sağlamak.

Görünüşe göre AMD ve Nvidia, ayrık grafik kartı Intel'den pazar, bu sektöre yeniden girmeyi planladıklarını bildiğimiz için, 20 yıl ara. Bu yeni ürünün (şu anda Xe adlı) Navi ve Turing ile aynı seviyede rekabet edebilecek.

Bu arada Intel, CPU'ları için entegre grafikler yaparak bu yirmi yıl boyunca GPU pazarında hayatta kaldı. Intel'in en yeni GPU'su Gen 11, FP32 ve INT32 verilerini işleyebilen vektör ALU'larını kullandığı için AMD'nin mimarisine Nvidia'dan daha çok benziyor, ancak yeni grafik kartlarının bu tasarımın doğrudan bir evrimi olup olmayacağını bilmiyoruz.

Kesin olan, silikon yapıların üç devi cüzdanlarımız için savaşmaya devam ettiği sürece önümüzdeki birkaç yılın çok ilginç olacağı. Yeni GPU tasarımları ve mimarileri, transistör sayılarını, önbellek boyutlarını ve gölgelendirici özelliklerini zorlayacak; Navi ve RDNA bunların en yenisidir ve ileriye doğru atılan her adımın küçük bir fark yaratabileceğini göstermiştir.

Alışveriş Kısayolları:
  • GeForce RTX 2070 Süper açık Amazon
  • GeForce RTX 2080 Süper açık Amazon
  • GeForce RTX 2080 Ti açık Amazon
  • Radeon RX 5700 XT açık Amazon
  • Radeon RX 5700 açık Amazon
  • GeForce RTX 2060 Süper açık Amazon
  • GeForce GTX 1660 Süper açık Amazon

Bu makale ilk olarak 7 Ağustos 2019'da yayınlanmıştır. #ThrowbackThursday girişimimizin bir parçası olarak biraz revize ettik ve çarptık.