NVIDIA tarafından piyasaya sürülen Tesla V100'ün nerede olduğuna dair ayrıntılı bir açıklama?

Editörün notu: 11 Mayıs'ta California, San Jose'deki 2017 GPU Teknoloji Konferansı'nda NVIDIA, tarihteki en güçlü GPU hızlandırıcısı olarak bilinen Tesla V100'ü piyasaya sürdü. Sürümün ardından NVIDIA, Tesla V100, GV100 GPU, Tensor Core ve Volta mimarisi dahil olmak üzere çeşitli yeni özelliklerin / ürünlerin teknik çağrışımlarını ayrıntılı olarak analiz eden resmi geliştirici blogunda ilk kez bir blog yazısı yayınladı. Lei Feng.com Aşağıdaki gibi derleyin.

Hepimizin bildiği gibi şu anda ister konuşma tanıma, ister sanal kişisel asistan eğitimi, rota tespiti veya otonom sürüş sistemlerinin geliştirilmesi olsun, bu yapay zeka alanlarında, veri bilimcileri giderek daha karmaşık yapay zeka zorluklarıyla karşı karşıya. Bu güçlü ve fütüristik işlevleri daha iyi gerçekleştirmek için, bazı katlanarak daha karmaşık derin öğrenme modellerinin uygulamaya sokulması gerekir.

Öte yandan, HPC (Yüksek Performanslı Hesaplama) modern bilimsel araştırmalarda her zaman hayati bir rol oynamıştır. İster hava durumu tahmini, ister yeni ilaç araştırması veya gelecekteki enerjinin keşfi olsun, araştırmacıların her gün gerçek dünyanın çeşitli simülasyonlarını ve tahminlerini yapmak için büyük ölçekli hesaplama sistemleri kullanmaları gerekir. AI teknolojisinin tanıtılmasıyla, HPC, bilimsel araştırmacılar tarafından büyük veri analizinin verimliliğini önemli ölçüde artırabilir ve geleneksel simülasyon ve tahmin yöntemleriyle elde edilemeyen bazı yeni sonuçlar elde edebilir.

NVIDIA, HPC ve AI alanlarındaki ilgili gelişmeleri daha da teşvik etmek için yakın zamanda yeni nesil Tesla V100 GPU hızlandırıcılarını piyasaya sürdü. En son NVIDIA Volta GV100 GPU platformuna ve çeşitli çığır açan teknolojik yeniliklere dayanarak, ister ana yöntem olarak bilimsel simülasyon ile bilgi işlem bilimi alanında ister veri gizemi alanında olsun, çeşitli süper hesaplama sistemleri için güçlü bir hesaplama platformu sağlayabilir. Hedef veri bilimi alanı için Tesla V100, ilgili uygulamalar için güçlü bilgi işlem gücü desteği sağlayabilir.

Daha sonra, bu blogu Tesla V100: Volta mimarisinin çekirdeğinin derinlemesine bir analizini yapmak için kullanacağız ve aynı zamanda geliştiricilerin gerçek geliştirmede ne gibi avantajları sağladığını anlamalarına yardımcı olacağız.

Tesla V100: Yapay zeka hesaplama ve HPC'nin kaynağı

NVIDIA Tesla V100 şu anda dünyanın en yüksek performanslı paralel işlemcisidir ve özellikle güçlü bilgi işlem yetenekleri gerektiren yoğun HPC, AI ve grafik işleme görevlerini yerine getirmek için tasarlanmıştır.

Tesla V100 hızlandırıcının çekirdeği GV100 GPU işlemcisidir. TSMCnin NVIDIA için özel olarak tasarlanmış en yeni 12nm FFN yüksek hassasiyetli proses paketleme teknolojisine dayanan GV100, 815 milimetre karelik bir yonga boyutunda 21,1 milyara kadar transistör yapısını entegre eder. Önceki nesil ürünle, yani Pascal serisi GPU'larla karşılaştırıldığında, GV100 yalnızca hesaplama performansında önemli bir ilerleme kaydetmedi, aynı zamanda birçok yeni ve heyecan verici özellik ekledi. Daha da kolaylaştırılmış GPU programlama ve uygulama dağıtım süreçlerinin yanı sıra GPU kaynak kullanımı için derinlemesine optimizasyon içerir. Sonuç olarak GV100, güçlü bilgi işlem performansı sağlarken çok güç tasarrufu sağlar.Aşağıdaki şekil, ResNet-50 model eğitiminde ve çıkarımda Tesla V100 hızlandırıcı ile önceki nesil Tesla P100 hızlandırıcı arasındaki performans karşılaştırmasını göstermektedir.En son V100 gereksinimlerini görebilirsiniz. Önceki nesil P100'ü çok geride bırakıyor.

Tesla V100'ün temel özellikleri şu şekilde özetlenmiştir:

Derin öğrenme için optimize edilmiş çoklu işlemci (SM) mimarisi. GPU işlemcisinin temel bileşeni olan NVIDIA, Volta mimarisinde SM'yi yeniden tasarladı.Önceki Pascal mimarisiyle karşılaştırıldığında, bu SM nesli enerji verimliliğini yaklaşık% 50 artırdı ve FP32'yi (tekli) aynı güç aralığında büyük ölçüde artırabilir. Hassas kayan noktanın aritmetik performansı) ve FP64 (çift hassasiyetli kayan nokta). Derin öğrenme için tasarlanan yepyeni Tensor Core, model eğitim senaryolarında TFLOP'un 12 katına kadar (saniyede trilyon kayan nokta işlemi) hız sağlayabilir. Ek olarak, yeni SM mimarisi, tamsayı ve kayan nokta verileri için bağımsız ve paralel veri yollarını benimsediğinden, genel hesaplama ve adresleme hesaplaması gibi karma senaryolarda iyi verimlilik sağlayabilir. Volta mimarisinin yeni bağımsız iş parçacığı programlama işlevi, paralel iş parçacıkları arasında ince taneli senkronizasyon ve işbirliği gerçekleştirebilir. Son olarak, L1 yüksek hızlı veri önbelleği ve paylaşılan bellek alt sisteminin yeni bir kombinasyonu, geliştiricinin programlama adımlarını büyük ölçüde basitleştirirken performansı da önemli ölçüde artırır.

İkinci nesil NVLink. İkinci nesil NVIDIA NVLink yüksek hızlı ara bağlantı teknolojisi, çoklu GPU ve çoklu GPU / CPU sistem yapılandırmaları için daha yüksek bant genişliği, daha fazla bağlantı ve daha fazla ölçeklenebilirlik sağlar. GV100 GPU, her biri 25 GB / sn olan 6 adede kadar NVLink bağlantısını toplam 300 GB / sn için destekler. NVLink ayrıca, IBM Power 9 CPU sunucusuna dayalı CPU kontrolü ve önbellek tutarlılığı işlevlerini de destekler. Ek olarak, yeni piyasaya sürülen NVIDIA DGX-1V süper AI bilgisayarı, ultra hızlı derin öğrenme modeli eğitimi için daha fazla ölçeklenebilirlik sağlamak için NVLink teknolojisini kullanır.

HBM2 bellek: daha hızlı ve daha verimli. Volta'nın yüksek düzeyde optimize edilmiş 16 GB HBM2 bellek alt sistemi, 900 GB / sn'ye kadar en yüksek bellek bant genişliği sağlayabilir. Önceki nesil Pascal GP100 ile karşılaştırıldığında, Samsung'un yeni nesil HBM2 belleği ve Volta'nın yeni nesil bellek denetleyicisinin kombinasyonu bant genişliğini 1,5 kat artırıyor ve performansı iş yükünün% 95'ini aşıyor.

Volta Çoklu İşlem Hizmeti (MPS) . Volta MPS, Volta GV100 mimarisinin yeni bir özelliğidir.CUDA MPS sunucusunun temel bileşenleri için donanım hızlandırma sağlayabilir, böylece paylaşılan GPU'larla çoklu hesaplama görev senaryolarında bilgi işlem performansını, izolasyonu ve hizmet kalitesini (QoS) önemli ölçüde iyileştirir. Volta MPS, MPS tarafından desteklenen maksimum istemci sayısını Pascal döneminde 16'dan 48'e çıkardı.

Gelişmiş birleşik bellek ve adres çeviri hizmetleri. Volta GV100'deki GV100 birleşik bellek teknolojisi, her işlemcinin erişim frekansına göre bellek sayfalarının adreslenmesini hassas bir şekilde ayarlayabilen yeni bir erişim sayacı uygular ve böylece işlemciler arasında paylaşılan bellek kullanımının verimliliğini büyük ölçüde artırır. Ayrıca, IBM Power platformunda, yeni Adres Çeviri Hizmetleri (ATS), GPU'nun doğrudan CPU'nun bellek sayfası tablosuna erişmesine de olanak tanır.

Cooperative Groups (kooperatif grupları) ve yeni Cooperative Launch API (Cooperative Launch API) . Cooperative Groups, iletişim dizisi gruplarını düzenlemek için CUDA 9'da tanıtılan yeni bir programlama modelidir. İşbirliği Grupları, geliştiricilerin iş parçacıkları arasındaki iletişimin ayrıntı düzeyini ifade etmelerine olanak vererek, paralel ayrıştırmaları (ayrıştırmaları) daha zengin ve daha verimli bir şekilde gerçekleştirmelerine yardımcı olur. Kepler serisinden bu yana, tüm NVIDIA GPU'lar temel Cooperative Groups özelliklerini destekler. Pascal ve Volta serileri, CUDA iş parçacığı blokları arasında senkronizasyonun sağlanabileceği yeni Cooperative Launch API'yi de destekler. Ek olarak, Volta ayrıca yeni senkronizasyon modları için destek ekledi.

Maksimum performans ve maksimum verimlilik için iki mod. Adından da anlaşılacağı gibi, en yüksek performans modunda, Tesla V100 hız yükseltici, sınırlama olmaksızın çalışacak ve en hızlı hesaplama hızı ve en yüksek veri çıkışı gerektiren uygulamaların ihtiyaçlarını karşılamak için 300W'lık bir TDP (termal tasarım gücü) seviyesine ulaşacaktır. En yüksek verimlilik modu, veri merkezi yöneticilerinin Tesla V100'ün güç tüketimi seviyesini, watt başına en iyi enerji tüketimiyle bilgi işlem gücü elde etmek için ayarlamasına olanak tanır. Ayrıca Tesla V100, rafın performans gereksinimlerini en üst düzeye çıkarırken güç tüketimini büyük ölçüde azaltan tüm GPU'larda üst sınır gücünün ayarlanmasını da destekler.

Volta için optimize edilmiş yazılım. Derin öğrenme çerçevelerinin çeşitli yeni sürümleri (Caffe2, MXNet, CNTK, TensorFlow vb. Dahil), model eğitim süresini büyük ölçüde azaltmak ve çok düğümlü eğitimin performansını iyileştirmek için Volta'yı kullanabilir. GPU hızlandırma kitaplıklarının (cuDNN, cuBLAS ve TensorRT vb. Dahil) Volta tarafından optimize edilmiş çeşitli sürümleri, Volta GV100'ün yeni özelliklerinin desteğiyle derin öğrenme ve HPC uygulamaları için daha iyi performans desteği sağlayabilir. Ayrıca, NVIDIA CUDA Toolkit sürüm 9.0, geliştiricilerin bu yeni özellikleri daha kolay programlamasına yardımcı olmak için yeni API'ler ve Volta'nın yeni özellikleri için destek ekledi.

GV100 GPU donanım mimarisi

Volta GV100 GPU ile donatılmış NVIDIA Tesla V100 hızlandırıcı, bugün dünyanın en güçlü paralel hesaplama işlemcisidir. Bunların arasında GV100 GPU, derin öğrenme algoritmaları ve çerçeveleri, HPC sistemleri ve uygulamaları için güçlü bilgi işlem gücü desteği sağlayan bir dizi donanım yeniliğine sahiptir. HPC alanındaki performans aşağıdaki şekilde gösterilmiştir: Çeşitli HPC görevlerinde Tesla V100, Tesla P100'den ortalama 1,5 kat daha hızlıdır (Tesla V100 prototip kartına göre).

Tesla V100, endüstri lideri kayan nokta ve tamsayı hesaplama performansına sahiptir.En yüksek bilgi işlem performansı aşağıdaki gibidir (GPU Boost saat frekansına göre):

Çift hassas kayan noktalı (FP64) işlem performansı: 7,5 TFLOP / s;

Tek duyarlıklı (FP32) bilgi işlem performansı: 15 TFLOP / s;

Karışık hassas matris çarpımı ve birikimi: 120 Tensör TFLOP / s.

Önceki Pascal GP100 gibi, GV100 de birçok grafik işleme kümesinden (GPC), doku işleme kümelerinden (Doku İşleme Kümesi, TPC), akışlı çoklu işlemcilerden (Akış Çok İşlemcili, SM) ve bellek denetleyicilerinden oluşur. Tam bir GV100 GPU, 6 GPC, 84 Volta SM, 42 TPC (her TPC 2 SM içerir) ve 8512-bit bellek denetleyicisinden (toplam 4096 bit) oluşur. Bunların arasında, her SM'nin 64 FP32 çekirdeği, 64 INT32 çekirdeği, 32 FP64 çekirdeği ve 8 yeni Tensor Çekirdeği vardır. Aynı zamanda, her bir SM ayrıca 4 doku birimi (doku birimi) içerir.

Daha spesifik olarak, Volta GV100'ün tam sürümü toplam 5376 FP32 çekirdeği, 5376 INT32 çekirdeği, 2688 FP64 çekirdeği, 672 Tensor Çekirdeği ve 336 doku birimi içerir. Her bellek denetleyicisi 768 KB düzey 2 önbelleğe bağlanır ve her HBM2 DRAM yığını bir çift bellek denetleyicisi tarafından kontrol edilir. Genel olarak, GV100 toplam 6144KB ikincil önbellek içerir. Aşağıdaki şekil 84 SM ünitesi ile Volta GV100'ün eksiksiz bir versiyonunu göstermektedir.Farklı ürünlerin farklı konfigürasyonlara sahip olabileceği unutulmamalıdır.Örneğin, Tesla V100'de sadece 80 SM vardır.

Aşağıdaki tablo, Tesla V100 ile önceki Tesla serisi hızlandırıcıların son beş yıldaki parametre karşılaştırmasını göstermektedir.

Volta SM (Akış Çok İşlemcili)

Daha yüksek performans sağlamak için Volta SM, önceki SM sürümüne göre daha düşük talimat ve önbellek gecikmesine sahiptir ve özellikle derin öğrenme uygulamaları için optimize edilmiştir. Ana özellikleri aşağıdaki gibidir:

Derin öğrenme matrisi hesaplaması için yeni karışık hassasiyetli FP16 / FP32 Tensor Core kuruldu;

Daha yüksek performans ve daha düşük gecikme için geliştirilmiş L1 yüksek hızlı veri önbelleği;

Kod çözmeyi basitleştirmek ve talimat gecikmesini kısaltmak için geliştirilmiş komut seti;

Daha yüksek saat frekansı ve enerji verimliliği.

Aşağıdaki şekil Volta GV100 SM ünitesinin temel yapısını göstermektedir.

Tensor Core: hem aritmetik talimatlar hem de veri formatı

Yepyeni Tensor Core, Volta GV100 mimarisindeki en önemli yeni özelliktir.Süper büyük sinir ağı modellerini eğitirken sisteme güçlü hesaplama performansı sağlayabilir. Tesla V100'ün Tensor Core'u, derin öğrenme ile ilgili model eğitimi ve çıkarım uygulamaları için 120 TFLOPS'a kadar kayan nokta tensör hesaplamaları sağlayabilir. Özellikle, derin öğrenme modeli eğitimi açısından, P100'deki FP32 işlemiyle karşılaştırıldığında, yeni Tensor Core, Tesla V100'deki hızın 12 katına kadar en yüksek TFLOPS hızına ulaşabilir. Derin öğrenme çıkarımı açısından, P100'deki FP16 işlemiyle karşılaştırıldığında, hızın 6 katına kadar en yüksek TFLOPS elde edebilir. Tesla V100 GPU, toplam 640 Tensor Çekirdeği içerir ve her akış çoklu işlemcisi (SM), 8 Tensor Çekirdeği içerir.

Hepimizin bildiği gibi, matris çarpımı sinir ağı eğitiminin özüdür.Derin bir sinir ağının her bağlantı katmanında, bir sonraki katmanın girdisini elde etmek için girdi matrisi bir ağırlıkla çarpılmalıdır. Aşağıdaki şekilde gösterildiği gibi, Tesla V100'deki Tensor Core, önceki nesil Pascal mimarisi GP100 ile karşılaştırıldığında matris çarpma performansını en az 9 kat artırır.

Bu bölümün alt başlığında belirtildiği gibi, Tensor Core sadece yepyeni bir verimli komut seti değil, aynı zamanda bir veri işlem formatıdır.

Henüz piyasaya sürülen Volta mimarisinde, her Tensor Core, sinir ağı yapısında en yaygın D = AxB + C işlemini tamamlamak için 4x4x4 matris işleme kuyruğu içerir. Bunların arasında, A, B, C ve D dört adet 4 × 4 matristir, bu nedenle bunlara 4x4x4 denir. Aşağıdaki şekilde gösterildiği gibi, A ve B girişleri FP16 matrisine karşılık gelir ve C ve D matrisleri FP16 veya FP32 olabilir.

Tasarıma göre, Tensor Core, iki FP16 girişinin ve bir FP32'nin ürünü olan her bir saat frekansında 64'e kadar FMA karışık hassasiyetli kayan nokta işlemi gerçekleştirebilir. Ve her SM birimi 8 Tensor Çekirdeği içerdiğinden, genel olarak her saat 1024 kayan nokta işlemi gerçekleştirebilir. Bu, Volta mimarisinde, her SM ünitesinin derin öğrenme uygulama veriminin, Pascal GP100'ün standart FP32 işlemine kıyasla 8 kat artmasını sağlar.Pascal P100 GPU ile karşılaştırıldığında, Volta V100 GPU'nun verimi toplam 12 kat artar. Aşağıdaki şekil standart bir Volta GV100 Tensor Core işlemini göstermektedir.

Programın yürütülmesi sırasında, birden fazla Tensör Çekirdeği, çarpıtma birimleri aracılığıyla birlikte çalışır. Çözgüdeki iplikler ayrıca Tensor Çekirdekleri tarafından işlenebilen daha büyük 16x16x16 matris işlemleri sağlar. CUDA, bu işlemleri CUDA C ++ API'sinde Çözgü Seviyesi matris işlemleri olarak ortaya koymaktadır. Geliştiriciler, CUDA C ++ programlama yoluyla, çarpma, toplama ve depolama gibi Tensor Çekirdeği tabanlı matris işlemlerini uygulamak için bu açık API'leri esnek bir şekilde kullanabilir.

Gelişmiş L1 yüksek hızlı veri önbelleği ve paylaşılan bellek

Volta SM'nin L1 yüksek hızlı veri önbelleği ve paylaşılan bellek alt sistemi, performansı önemli ölçüde artırmak için birbiriyle birleştirilirken, aynı zamanda geliştiricilerin programlama adımlarını ve optimum sistem performansına ulaşan veya yaklaşan sistem hata ayıklama maliyetlerini büyük ölçüde basitleştirir.

Volta mimarisinin veri önbelleğini ve paylaşılan bellek işlevlerini tek bir bellek bloğunda birleştirdiğini vurgulamakta fayda var, bu da her iki tür bellek erişimi için bir bütün olarak en iyi performansı sağlıyor. Birleşik bellek kapasitesi, eski GP100 önbelleğinden 7 kat daha büyük olan 128 KB / SM'ye ulaştı ve bunların tümü paylaşılmayan özel önbellek blokları olarak yapılandırılabilir. Ek olarak, doku işleme birimi de bu önbellekleri kullanabilir. Örneğin, paylaşılan bellek 64KB olarak ayarlanmışsa, doku ve yükleme / depolama işlemleri L1'de kalan 64 KB kapasiteyi kullanabilir.

Genel olarak, paylaşılan bellekle orijinal birleştirme yöntemiyle, Volta GV100 L1 önbelleği, NVIDIA GPU'ların önceki L1 önbelleğinden daha düşük gecikme süresine ve daha yüksek bant genişliğine sahiptir. Bir yandan veri akışı için yüksek verimli bir ardışık düzen olarak işlev görürken, diğer yandan verilere yüksek düzeyde yeniden kullanımla yüksek bant genişliği ve düşük gecikmeli hassas erişim sağlayabilir.

Aşağıdaki şekil Volta ve Pascal'ın L1 önbellek performansının bir karşılaştırmasını göstermektedir.

Yeteneği hesapla

GV100 GPU, NVIDIA'nın yeni Hesaplama Yeteneği 7.0'ı destekler. Aşağıdaki tablo, NVIDIA GPU'nun farklı mimarileri arasındaki bilgi işlem gücünün karşılaştırmasını gösterir.

Bağımsız iş parçacığı planlama

Önceki NVIDIA GPU ile karşılaştırıldığında, Volta mimarisi programlama zorluğunu önemli ölçüde azaltır ve kullanıcılar çeşitli uygulamaları üretmeye daha fazla odaklanabilir. Volta GV100, bağımsız iş parçacığı planlamasını destekleyen ilk GPU'dur, bu da programdaki farklı iş parçacıklarının daha hassas bir şekilde senkronize edilip koordine edilebileceği anlamına gelir. Volta'nın ana tasarım hedeflerinden biri, programları GPU'da çalıştırmak için gereken geliştirme maliyetini ve iş parçacıkları arasında esnek bir paylaşım mekanizmasını azaltmaktır, bu da sonuçta paralel hesaplamayı daha verimli hale getirir.

Önceki tek talimat çok iş parçacıklı mod (SIMT MODELS)

Pascal ve önceki GPU'larda, SIMT terminolojisinde çözgü olarak da adlandırılan 32 iş parçacığından oluşan bir grup yürütülebilir. Pascal çözgüde, bu 32 iş parçacığı aynı program sayacını kullanır ve sonra çözgüdeki hangi evrelerin geçerli olduğunu belirtmek için aktif bir maske kullanılır. Bu, farklı yürütme yollarındaki bazı iş parçacıklarının "pasif" olduğu anlamına gelir Aşağıdaki şekil, bir çözgüdeki farklı dalların sıralı yürütme sürecini gösterir. Programda, orijinal maske çözgü işleminin sonuna kadar kaydedilecek, iplik tekrar birleşecek, maske geri yüklenecek ve program çalışmaya devam edecek.

Esasen, Pascal'ın SIMT modu, iş parçacıklarının durumunu izlemek için gereken kaynakları azaltarak ve iş parçacıklarını aktif olarak kurtararak paralel verimliliği en üst düzeye çıkarır. Tüm çözgülerin iplik durumunu izleme modu, aslında program paralel dallara sahip olduğunda, çözgülerin aslında sırayla çalıştırıldığı ve paralellik anlamının burada paralel dalın sonuna kadar kaybolduğu anlamına gelir. Diğer bir deyişle, Farklı çarpıtmalardaki iplikler gerçekten paralel olarak yürütülür, ancak aynı çözgüdeki dallanma iplikleri, geri yüklenmeden önce sırayla yürütülür ve bilgi alışverişi yapamaz ve veri paylaşamazlar.

Örneğin, hassas veri paylaşımı gerektiren algoritmalar, farklı iş parçacıkları kilitler ve karşılıklı dışlama mekanizmalarıyla korunan veri bloklarına eriştiğinde, karşılaşılan iş parçacığının hangi çarpıklıktan geldiğinden emin olmadıklarından, kilitlenmeye neden olmak kolaydır. Bu nedenle, Pascal ve önceki GPU'larda, geliştiricilerin ince taneli senkronizasyondan kaçınması veya kilitlere dayanmayan veya çarpıklıkları açıkça ayırt eden algoritmalar kullanması gerekir.

Volta mimarisinin tek komutlu çok iş parçacıklı modu

Volta, tüm iş parçacıkları arasında aynı eşzamanlılık düzeyini uygulayarak bu sorunu çözer (çözgü ne olursa olsun) Program sayacı ve çağrı yığını dahil her iş parçacığı için, Volta aşağıdaki şekilde gösterildiği gibi aynı yürütme durumunu korur.

Volta'nın bağımsız iş parçacığı dağıtım mekanizması, GPU'nun herhangi bir iş parçacığı için yürütme hakları vermesini sağlar.Bu, iş parçacıklarının daha verimli yürütülmesini sağlar ve ayrıca iş parçacıkları arasında veri paylaşımını daha makul hale getirir. Paralel verimliliği en üst düzeye çıkarmak için Volta, aynı çözgüdeki etkili ipliklerin nasıl gruplandırılacağını ve bunları SIMT birimine nasıl gönderileceğini belirleyebilen bir zamanlama iyileştiricisine sahiptir. Bu sadece önceki NVIDIA GPU'larda daha yüksek SIMT verimini korumakla kalmaz, aynı zamanda daha fazla esnekliğe sahiptir: Artık iş parçacıkları alt çözgü düzeyinde dallanıp devam edebilir ve Volta yine de aynı kodu birlikte yürüten iş parçacıkları gruplandırır ve paralel olarak çalışmasına izin verir.

Aşağıdaki şekil Volta'nın çoklu okuma modunun bir örneğini göstermektedir. Bu programdaki if / else dalları artık Şekil 12'de gösterildiği gibi sırayla aralıklarla yerleştirilebilir. Yürütme işleminin hala SIMT olduğu görülebilmektedir Herhangi bir saat döngüsünde, daha önce olduğu gibi, aynı çözgü içindeki tüm geçerli evreler, CUDA çekirdeği aynı komutları yürütür, böylece önceki mimarideki yürütme verimliliği hala korunabilir. Mesele şu ki, Volta'nın bu bağımsız çizelgeleme yeteneği, programcılara karmaşık ve sofistike algoritmalar ve veri yapılarını daha doğal bir şekilde geliştirme fırsatı veriyor. Programlayıcı, iş parçacığı yürütmenin bağımsızlığını desteklese de, iş parçacığı yakınsamasını sağlarken SIMT'nin verimliliğini en üst düzeye çıkarmak için bu senkronize olmayan kod bölümlerini yine de optimize edecektir.

Ek olarak, yukarıdaki şekilde ilginç bir fenomen var: Z tüm iş parçacıklarında aynı anda çalıştırılmaz. Bunun nedeni, Z'nin diğer dal işlemlerinin ihtiyaç duyduğu verileri çıkarabilmesidir.Bu durumda yakınsamayı zorlamak güvenli değildir. Bununla birlikte, önceki mimaride, genellikle A, B, X ve Y'nin senkronizasyon işlemleri içermediğine inanılmaktadır, bu nedenle programlayıcı, Z üzerinde yakınsamanın güvenli olduğunu belirleyecektir.

bu şartlar altında, Program, iplik yakınsamasını zorlamak için yeni CUDA 9 çözgü senkronizasyon fonksiyonunu __syncwarp çağırabilir ,Aşağıda gösterildiği gibi. Şu anda, dal evresi Z'yi eşzamanlı olarak çalıştırmayabilir, ancak __syncwarp işlevini çağırarak, bu evrelerin aynı çözgü içindeki tüm yürütme yolları Z ifadesi çalıştırılmadan önce tamamlanacaktır. Benzer şekilde, Z'yi çalıştırmadan önce __syncwarp işlevini çağırırsanız, program Z'yi çalıştırmadan önce yakınsamayı zorlayacaktır. Geliştirici, bu işlemin güvenliğini önceden sağlayabilirse, şüphesiz SIMT uygulamasının verimliliğini bir dereceye kadar artıracaktır.

Açlıksız algoritma

Starvation-free algoritması, bağımsız iş parçacığı planlama mekanizmasının önemli bir modudur ve özellikle aşağıdakilere atıfta bulunur: Eşzamanlı hesaplamada, sistem tüm iş parçacıklarının rekabet eden kaynaklara uygun erişime sahip olmasını sağladığı sürece, doğru yürütülmesini garanti edebilir. Örneğin, muteksi elde etmeye çalışan iş parçacığı nihayet başarılı bir şekilde kilidi elde ederse, muteks (veya sıradan kilit) açlıktan arındırılmış algoritmada kullanılabilir. Açlıktan arındırılmış algoritmayı desteklemeyen bir sistemde, bir veya daha fazla evre muteksi tekrar tekrar elde edebilir ve serbest bırakabilir, bu da diğer evrelerin muteksi başarılı bir şekilde elde edememesine neden olabilir.

Volta'nın bağımsız iş parçacığı zamanlamasının bir örneğine bakalım: çok iş parçacıklı bir uygulamada çift bağlantılı listeye bir düğüm ekleyin.

__device__ void insert_after (Düğüm * a, Düğüm * b)

{

Düğüm * c;

kilit (a); kilit (a- > Sonraki);

c = a- > Sonraki;

a- > sonraki = b;

b- > prev = a;

b- > sonraki = c;

c- > prev = b;

kilidini açmak (c); kilidini açmak (a);

}

Bu örnekte, çift bağlantılı listenin her bir öğesi en az 3 parça içerir: bir geri işaretçi, bir ileri işaretçi ve bir kilit (yalnızca sahibin düğümü güncelleme yetkisi vardır). Aşağıdaki şekil, B düğümünü A ve C arasına ekleme işlemini göstermektedir.

Volta'nın bağımsız iş parçacığı zamanlama mekanizması, iş parçacığı T0 şu anda düğüm A'yı kilitlese bile, aynı çözgüdeki başka bir T1 iş parçacığının, T0'ın yürütülmesini etkilemeden kilidi açılıncaya kadar başarılı bir şekilde beklemesini sağlayabilir. Bununla birlikte, aynı çözgü altındaki etkili iplikler birlikte yürütüldüğünden, kilidin açılmasını beklemenin kilitli ipliğin performansını düşürebileceğini belirtmek gerekir.

Bu örnekte her düğüm için kilitleme kullanımının GPU'nun performansı için kritik önem taşıdığına dikkat etmek de önemlidir. Geleneksel olarak, çift bağlantılı bir tablonun oluşturulması, her düğümü ayrı ayrı korumak yerine tüm yapıyı (tüm kilitler) tekelleştirecek olan kaba taneli bir kilit (yukarıda bahsedilen ince taneli kilide karşılık gelir) kullanabilir. İş parçacıkları arasındaki kilit çekişmesi nedeniyle, bu yöntem çok iş parçacıklı kodda performans düşüşüne neden olabilir (Volta mimarisi 163.840'a kadar eşzamanlı iş parçacığına izin verir). Şu anda, her düğümde ince taneli kilitler kullanmayı deneyebilirsiniz, böylece belirli belirli düğümlerde işlem eklemeye ek olarak, büyük bir listedeki her düğümün ortalama kilit rekabet etkisi büyük ölçüde azaltılacaktır.

İnce taneli kilitli yukarıdaki iki yönlü bağlantılı tablo sadece çok basit bir örnektir.Bu örnek aracılığıyla iletmek istediğimiz bilgiler: Bağımsız bir iş parçacığı planlama mekanizması sayesinde, geliştiriciler tanıdık algoritmaları ve veri yapılarını NVIDIA GPU'larda en doğal şekilde uygulayabilir.

sonuç olarak

NVIDIA Tesla V100, şüphesiz dünyanın en gelişmiş veri merkezi GPU'sudur ve özellikle güçlü bilgi işlem yetenekleri gerektiren yoğun HPC, AI ve grafik işleme görevlerini yerine getirmek için tasarlanmıştır. En gelişmiş NVIDIA Volta mimari desteği ile Tesla V100, tek bir GPU'da 100 CPU hesaplama performansı sağlayabilir ve bu da veri bilimcilerinin, araştırmacıların ve mühendislerin bir zamanlar imkansız olduğu düşünülen zorluklarla başa çıkmalarına olanak tanır.

640 Tensor çekirdeği ile donatılmış Tesla V100, 100 TFLOPS hash oranını aşan dünyanın ilk derin öğrenme GPU ürünü oldu. 300 GB / sn'ye kadar bağlantı kapasitesine sahip yeni nesil NVIDIA NVLink teknolojisi ile birleştiğinde, kullanıcılar gerçek hayat senaryolarında güçlü bir derin öğrenme bilgi işlem merkezi oluşturmak için birden fazla V100 GPU'yu birleştirebilir. Bu şekilde, eskiden haftalar süren yapay zeka modelleri artık birkaç günde eğitilebiliyor. Eğitim süresinin büyük ölçüde azaltılmasıyla, gelecekteki tüm pratik sorunlar AI ile çözülebilir.

Kaynak: NVIDIA Geliştirici Blogu

Leifeng.com (genel hesap: Leifeng.com) ile ilgili okuma:

İki saat, beş yeni AI ürünü ve Nvidia'nın hisse fiyatı% 17 arttı GTC konferansında Huang Renxun ne hakkında konuştu? (PPT dahil) | GTC 2017

GTC konferansının ikinci gününden önemli noktalar: NVIDIA çok kullanıcılı bir VR sistemi başlatacak ve 100.000 geliştiriciyi eğitmeyi planlıyor | GTC 2017

Yu Guangzhongun Şiir, Hat ve Kaligrafi Anma Sergisi bugün açılıyor
önceki
Sualtı kablosuz sensör ağlarında coğrafi fırsat hibrit yönlendirme
Sonraki
Örümcek Adam Shaolin'den mi öğreniyor? Ana yaratıcı özellik önemli noktaları ortaya çıkarır
Temmuz ayının en çok beklenen Hollywood gişe rekorları kıran filmi işte bu
O Hawking'in kızı ve merakı 49 yaşını aşıyor. "Çocuklara" hikayeler yazmak hayatının temelini oluşturuyor.
Çin'in SDN / NFV'si yeni bir pragmatik gelişme aşamasına girdi
VR dünyasında, "Sound of Light" da Wuxiang ile bir toplantı yapın
Ali'nin işletme karı, Amazon'un üç katı, ancak piyasa değeri neden Amazon'un yarısı kadar?
Etki zorlayıcı, bkz Zhihui video konferans sistemi değerlendirmesi
OnePlus 6'nın satış efsanesini aşmak zor mu? OnePlus 6T bir sonraki efsaneyi yaratabilir
Sizin için tek tek 10 favori Hong Kong filmi
"Dragon Quest Builder 2" nin hikayesini "Dragon Quest 2" takip ediyor
Bahar Şenliği'nde bilet kapmanın evrimsel tarihi: Bahar Şenliği'nin bilet alımını hızlandırmak ve hızlandırmak
Zhang Xin'in konuşulmayan aktörü? ! Yıldızlar neden birbirlerine zarar veriyor
To Top