ne oldukları ve NVIDIA’daki geçmişleri

RTX 40’ın gelmesiyle öne çıkan bu NVIDIA Streaming Multiprocessor’ların nasıl çalıştığını açıklayacağız. On yıldan beri varlar ve GPU’lardaki diğer çok benzer donanım parçalarıyla farkları belirleyeceğiz.

Mimariler ve belirli donanım parçalarının bütüne tutarlılık kazandırmak için önemi hakkında konuşmanın zamanı geldi. Akış İşlemcileri ve CUDA Çekirdekleri hakkında zaten konuştuk, ancak şimdi NVIDIA’nın grafik kartlarında kullandığı SM hakkında konuşmak için seviye atlama zamanı, hadi oraya gidelim!

NVIDIA Akış Çok İşlemcisi Nedir?

akış çok işlemcili

SM veya Streaming Multiprocessor, düşük frekanslı ve küçük bir önbelleğe sahip genel amaçlı bir işlemcidir. Görevi, birkaç iş parçacığı bloğunu paralel olarak yürütmektir; iş parçacığı bloklarından biri yürütmeyi tamamlar tamamlamaz serideki bir sonraki bloğa geçer.

Bir SM’de şunları buluruz:

  • CUDA çekirdekleri: Özel İşlev Birimleri (SFU), tek ve çift duyarlıklı kayan nokta birimleri.
  • Gizlenmiş:
      • Seviye 1, belleğe erişirken gecikmeyi azaltmak için.
      • İş parçacıkları arasında veri paylaşmak için kullanılan paylaşılan bellek.
      • Salt okunur bellekten okumaları iletmek için kullanılan sabit önbellek.
      • Doku önbelleği.
  • Warp planlayıcıları.
  • Bir sürü kayıt.

akış çok işlemcili

GPU, iş parçacığı bloklarını bir SM’ye programlar ve bir blok içindeki tüm iş parçacıkları tek bir SM’de bulunmalıdır. Her blok, çözgü adı verilen ardışık 32 iş parçacığına bölünmüştür.

Diyelim ki bir SM toplamda 8 iş parçacığı bloğuna sahip olabilir, bu nedenle bir SM bir iş parçacığı bloğunu her çalıştırdığında, o SM’deki her şey aynı anda yürütülecektir. Bir iş parçacığı bloğundan belleği boşaltmamız gerekirse, aynı bloktaki tüm iş parçacığı kümesinin yürütmeyi tamamlaması önemlidir.

Aşağıda, NVIDIA grafik kartlarının mimarileri ve nesilleri birbirini takip ettikçe Akış Çok İşlemcisinin geliştiğini göreceksiniz. Benzer şekilde, temel fikir aşağıdaki gibidir:

  • 1 SM, aynı anda çalışabilen 8 skaler çekirdek içerir.
  • Her bir çekirdek aynı komut dizisini yürütür veya boşta kalır.
  • SM, talimatları çekirdekler arasında programlar.
  • Aynı anda 32 iplik (çözgü) programlanabilir.
  • İş parçacığı düzeyinde, bellek, Paylaşılan Bellek aracılığıyla paylaşılır.
  • Kayıt belleği her iş parçacığı için yereldir ve bir SM’nin tüm bloklarına yayılır.

Çözgüler, onu anlamak için gerekli

Bir iş parçacığı bloğunun, çözgü adı verilen 32 iş parçacığının parçalarına bölündüğünü ve bu “çözgülerin” (İspanyolca’ya çevirisidir) aynı komutu yerine getirdiğini söylemiştik. Çarpıtmalar SM tarafından seri olarak seçilir ve her biri aynı komutu belirli bir zamanda (SIMD) yürütür.

Bloklar bir yana, her bir çarpıtma, Çarpıtma Zamanlayıcı adı verilen bir çarpıtma zamanlayıcısına sahiptir. Programcı eşzamanlı çarpıtmalar arasında geçiş yapabilmesine rağmen, her çarpıtma kendisine atanan çizelgede kalır.

Bir sonraki komut sonraki döngüde yürütülemediğinde bir atlama durur, bu nedenle programlayıcı, talimatı uygulayabilecek bir çarpıtmaya geçmelidir.

Akışlı Çoklu İşlemcilerin evriminin tarihi

Normalde, donanım bir sorunu çözmek için icat edilir ve sorun NVIDIA’nın 2005’te ilk GeForce GTX ile, özellikle 7900 GTX ile olmasıydı. Bu model, yapısı 3 bölümde düzenlenen G71 GPU’dan güç aldı:

  • 8 köşe işleme birimi.
  • 24 parça üretim birimi.
  • 16 parça füzyon ünitesi.

Diyelim ki 3 katmanlı bir yapı ve bunu açıklamak için mükemmel bir şekilde açıklayan Fabien Sanglard’ın grafiğine güveneceğim.

akış çok işlemciliFabien Sanglard

Tasarımcıların bir sorunu vardı çünkü her katmanı dengelemek için darboğazı nasıl tespit edeceklerini bilmiyorlardı. Buna geometri gölgelendiricilerle DirectX 10’un çıktısını ekleyin, bu nedenle büyük bir mimari değişikliği yapılması gerekiyordu.

2006, Tesla sorunu çözdü

sm tesla

NVIDIA, katmanlar arasındaki farkı ortadan kaldırarak sorunu Tesla mimarisiyle çözmeye karar verdi: Akış Çok İşlemcisi (SM) doğdu. Bu, önceki tüm birimlerin (köşe işleme, parça oluşturma ve parça birleştirme) hepsini ayrım yapmadan yürüterek değiştirecektir.

Tabii ki, artık SIMD desteği olmayacaktı, ancak gölgelendirici birimleri, saat başına bir FP32 talimatı verebilen çekirdekler olacaktı. SM, çözgü adı verilen 32’lik gruplar halinde iplikleri alır ve bunların tümü aynı anda aynı komutu yürütür, yalnızca verileri değiştirir.

Bunun sonucunda, IP birleşirse veya bölünürse, görevi bir çözgüdeki iplikleri etkinleştirmek veya devre dışı bırakmak olan MT (Multi-threaded Instruction Unit) devreye girer. Şu anda FP64 için donanım desteği yoktu ama yazılım üzerinden yapılıyordu.

Streaming Multiprocessor, GeForce 8800 GTX serisinde ilk kez, işlemi 90 nm’den daha az olmayan G80 GPU aracılığıyla görülüyor. Bu GPU, bir Doku İşlemci Kümesi (TPC) içinde gruplandırılmış 2 SM’ye sahipti, GPU’nun 8 TPC’si olmasına rağmen: 128 CUDA çekirdeği.

NVIDIA, Compute Unified Device Architecture (CUDA) programlama dili ile bunu tamamladı. Buradan itibaren SM’lerde gördüğümüz iyileştirmeler şu şekilde oldu:

  • Fermi (2010):
      • Bir SM, 2 set 16 CUDA Çekirdeği aracılığıyla bir seferde 2 yarım çözgü programlayabilir.
      • Doku Birimlerinin artık SM’nin bir parçası olduğu ve TPC’nin ortadan kalktığı gerçeğine ek olarak Tesla’nın SM’sinin kapasitesi 4 ile çarpıldı.
      • SM, Polymorph Engines tarafından destekleniyordu.

akış çok işlemcili fermi

  • Kepler (2012):
      • SMX, geleneksel SM’yi üç katına çıkaran bir evrimle devreye girdi: 196 çekirdeğe sahipti.
      • Tüm bir arp’yi tek bir saatte işleyebilen 4 çözgü zamanlayıcısı vardı.
      • Fermi’nin performansını ikiye katladı ve GTX 680’in 8 SMX ve 1536 çekirdekle geldiğini görmelisiniz.

kepler akış çok işlemcili

  • Maxwell (2014):
      • CUDA çekirdekleri önceki nesle kıyasla azaltıldı: 128 çekirdek, ancak kalıp yüzeyi ve enerji tasarrufu sağlandı.
      • SMM’ler olarak yeniden adlandırıldılar ve kalıp başına daha fazla SMM paketlenebilir: Yüzey alanında %25’lik bir artışla Kepler’in iki katı.
      • Çarpıtma yerleşimini iyileştirmek için gereksiz yeniden hesaplamayı ve hesaplama gecikmesini azaltmak için programlama mantığı basitleştirildi.
      • Amiral gemisi, 24 SMM taşıyan ve 3072 çekirdeğe sahip bir GM200 GPU’lu NVIDIA GeForce GTX 980 Ti idi.

akış çok işlemcili

  • Pascal (2016):
      • A priori, Maxwell SMM’ye benziyordu ve SM tasarımında hiçbir değişiklik yoktu.
      • Geliştirilen şey, GPU’ların üretim süreciydi: 16nm, bu da daha fazla SM ve çift Gflop eklemeye izin verdi.

pascal sm

  • Turing-Volta (2018):
      • Turing SM, Tensör Çekirdekleri ve RT Çekirdeklerinin görünümüyle mimarinin acımasız yeniden tasarımı.
      • Şemaya bakarsanız Tesla’da görülen katman sistemine benzediğini göreceksiniz.
      • Volta, iplikler ve çözgülerde bir yenilik getirdi: bağımsız iplik zamanlaması, yani her ipliğin kendi IP’si olduğu anlamına gelir.
      • SM’ler, iplikleri yakınsamadan bir çözgüde programlamakta özgürdür.
      • 68 TSM veya Turing SM’ye kadar gördük.

dönüş sm

  • Amper (2020):
      • SM başına 64 eşzamanlı warp korunur, ancak warp işgalinde çok sayıda değişiklik yapılır, ancak aşağıdakileri vurgularız:
          • Günlük dosyasının boyutu, SM başına 64.000 32 bit’e yükseltildi.
          • Artık iş parçacığı başına maksimum kayıt sayısı 255’tir.
      • Verileri globalden paylaşılan belleğe kopyalamak için donanım hızlandırma eklenir.
      • Daha büyük bir kalıp boyutu kullanan ve güçlü yeni matematik modları alan Yeni Tensör Çekirdekleri.
      • Daha iyi FP32 performansı: SM başına döngü başına iki kat daha fazla FP32 işlemi.

amper akışlı çok işlemcili

Akış İşlemcisi ve Akış Çok İşlemcisi aynı değil

akış işlemcileri

AMD çekirdeklerini Akış İşlemcileri olarak adlandırdığı için isimlendirmenin isteyerek seçilmediğini biliyoruz. Bunlar, Akış Çok İşlemcisine değil, SM’nin içindeki CUDA Çekirdeklerine eşdeğerdir.

AMD’de buna benzer bir şey var mı? AMD Radeon RX 7000’de tartıştığımız gibi, RX 7900 XT MCM mimarisine sahip olacak ve GCD ve MCM adında 2 modüle sahip olacak. Her birinin özellikle ne yaptığı hakkında bilgimiz yok, ancak bir sızıntı, GCD içinde hala gölgelendirici olan gölgelendirici motorları olduğunu gösterdi.

GCD veya MCM, bir Akış İşlemcisine eşdeğer olabilir, ancak öyle olduğunu söylemeye cüret edemeyiz.

Bu bilgilerin size yardımcı olduğunu umuyoruz ve herhangi bir sorunuz varsa, size cevap verebilmemiz için aşağıya yorum yapabilirsiniz.

Piyasadaki en iyi grafik kartlarını öneriyoruz

Bu blokları biliyor muydunuz?

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *