Mike Pound neden bilgisayarının hesaplama yeteneğini işlemcileri tarafından değil, grafik kartlarıyla ölçüyor?


17

Geçenlerde Mike Pound'un şirketinin 4 grafik kartına (Titan X'ler, tam olarak) sahip olduğu süper bilgisayarının palavraları olduğu harika bir Computerphile videosu izliyordum .

Sayısal bir simülasyon meraklısı olarak, yalnızca simülasyon çalışması için bir masaüstü oluşturmayı hayal ediyorum. Mike Pound neden bilgisayarının hesaplama yeteneğini işlemcileri tarafından değil, grafik kartlarıyla ölçüyor? Bir bilgisayar inşa ediyor olsaydım, hangi öğeye daha fazla önem vermeliyim?


11
Bunun mutlaka bir Gorilla vs. Shark sorusu olduğunu düşünmüyorum ... Basit bir soru var: "Mike Pound neden bilgisayarlarının işlem yeteneğini grafik kartlarıyla değil, işlemcileriyle ölçüyor?" cevaplanabilir ve cevabı gelecekteki okuyucular için yapıcı bir değere sahiptir.
Mayıs

6
@gnat: yakın bile değil. Tabii ki, soru şu anki haliyle, yazılım mühendisliği ile ilgili değil. Ama sanırım sistem = "donanım + yazılım kombinasyonu" sistem mühendisliği hakkında bir soru olarak yorumlanabilir.
Doc Brown

10
4 grafik kartı olan bir bilgisayar bir süper bilgisayar anlamına gelmez (ve bu konu için 10 Raspberry Pis kümesi de değildir).
Matti Virkkunen

10
Bu sadece çok pahalı bir bilgisayar kurulumu, süper bir bilgisayar değil ...
Bakuriu

3
Bağlam parola kırıldığı için "Mike Pound neden bilgisayarının grafik kartlarıyla hesaplama yeteneğini ölçüyor?" Sorusunun basit cevabı değil mi? Eğer problem alanınız başka bir şeyse, önemsemeniz gereken şey tamamen başka bir şey olabilir.
JimmyJames

Yanıtlar:


32

Mike Pound, grafik kartlarının hesaplama yeteneğine CPU'ların hesaplama yeteneğinden daha fazla değer veriyor.

Neden? Bir grafik kartı temelde hepsi paralel çalışan MANY basitleştirilmiş işlemcilerden oluşur. Bazı simülasyon çalışmaları için, hesaplamanın bir kısmı grafik kartlarında bulunan binlerce çekirdeğe paralel olarak kolayca paralelleştirilebilir ve işlenebilir, bu da toplam işlem süresini azaltır.

daha fazla hangi öğeyi önemsemeliyim? Gerçekten önem verdiğiniz iş yüküne ve bu iş yükünün bir grafik kartında kullanım için nasıl paralelleştirilebileceğine / paralelleştirildiğine bağlıdır. İş yükünüz utanç verici bir şekilde paralel basit hesaplama kümesiyse ve mevcut grafik kartlarından yararlanmak için yazılım yazılırsa, daha fazla grafik kartının daha fazla CPU'dan (dolar için dolar) çok daha büyük bir performans etkisi olacaktır.


5
Bazı numaralar ekleme. Diyelim ki ana bilgisayarınız Hyperthreading özellikli bir AMD Epyc Server, 64 çekirdekli, 128 olacak. Diyelim ki bir grafik kartı "çekirdeği" sadece% 10 kadar hızlı. Bir TitanX hala kurulum için yaklaşık 12000, 3072 cuda çekirdeğine sahiptir. Fikir al? Sorunu grafik kartında çalıştırabiliyorsanız, bu "daha hızlı" değildir - at arabasının hızını bir formül 1 araba ile karşılaştırmak gibidir.
TomTom

3
+1 'utanç verici bir şekilde paralel basit hesaplamalar' için, Çok iyi yazılmış. Kısa ve öz.
Michael Viktor Starberg

11
@TomTom: Aslında benim tercih ettiğim karşılaştırma, bir formül 1 arabasını (CPU'nuzu) bir mermi treniyle karşılaştırmak. Elbette, tren ve araba yaklaşık aynı hızda. Ama tren 1000 kişiyi A'dan B'ye formül 1 otomobilinden daha hızlı hareket ettirebilir.
slebetman

2
@slebetman, CPU'nun tek çekirdekli performansta tipik olarak çok daha hızlı olmasıdır (yaklaşık olarak aynı hızda değil). Belki süpersonik bir jet uçağını bir buharlı lokomotifle tehlikeye atabilir ve karşılaştırabiliriz.
Darren Ringer

2
Araca dayalı bir benzetme seçmem gerekirse, CPU'nun bir savaş uçağı gibi olduğunu söyleyebilirim (noktadan noktaya taşıma için çok daha hızlı ve diğer araçların yapamayacağı birçok hile var ama sadece GPU bir kargo gemisi gibidir (paralel olarak çok daha fazla yük taşıyabilir, ancak çok daha yavaş geri dönüşe sahip olabilir).
Yalan Ryan

5

Https://developer.nvidia.com/cuda-zone (ve daha fazla bilgi için google cuda nvidia) sayfasına göz atın . Cuda mimarisi ve üst düzey grafik kartları, masaüstü süper bilgisayarlar için oldukça yaygın olarak kullanılmaktadır. Hazır beyaz kutu bileşenlerini kullanarak genellikle 10.000 doların (usd) altında birkaç Tflop kutusu bir araya getirebilirsiniz.

Yani...

Sayısal bir simülasyon meraklısı olarak, yalnızca simülasyon çalışmaları için bir masaüstü oluşturmayı hayal ediyorum

... cuda sizin için şehirdeki en iyi oyun. Belki /scicomp// veya bu tür bir şeyle daha doğrudan ilgili olan başka bir stackexchange web sitesinde tekrar sormayı deneyin .

(Bu arada, burada büyük ölçüde paralel programlama hakkında konuştuğumuz fikrinden memnun olduğunuzu varsayıyorum, bu nedenle algoritma tasarımı için bu paradigmaya aşina olmanız gerekebilir.)


Ve her zamanki gibi Ordos'a geri döndük.
Michael Viktor Starberg

2
@MichaelViktorStarberg Ordos referansını anlamayan tek kişi ben miyim?
MarnixKlooster ReinstateMonica

Korkarým sen ...: /
Ismael Miguel

4
@MarnixKlooster: Google'a "Ordos" la gitmeliydim. Çin'de bir "hayalet şehir" süper bilgisayarlar veya terafloplar ile ne ilgisi olduğundan emin değilim.
Robert Harvey

@MarnixKlooster Gerçekten değilsiniz.
jpmc26

2

Bir bilgisayar inşa ediyor olsaydım, hangi öğeye daha fazla önem vermeliyim?

Pratik bir bakış açısından , GPU'ya kıyasla yükseltmenin göreceli zorluğu göz önüne alındığında, muhtemelen anakart ve CPU'ya biraz dikkat etmelisiniz. Satın aldıktan sonra, dört GPU için yeriniz veya hepsini meşgul edecek kadar hızlı bir işlemciniz olmadığını keşfetmek çok korkunç bir zamandır.

Ayrıca, GPU performansının çoğunlukla tek duyarlıklı FLOP'larda rapor edildiğini ve çift hassasiyet için biraz düştüğünü de bilmelisiniz. Simülasyonlarınızda ekstra hassasiyete ihtiyacınız varsa, reklamı yapılan hızın çok altında olacaksınız.

Yazılım mühendisliği yarışlarına

Yazılım açısından iki temel endişe var: Von Neumann darboğaz ve programlama modeli. CPU ana belleğe oldukça iyi erişime sahiptir, GPU'da çok daha hızlı bellek vardır. GPU içine ve dışına veri aktarma zamanının herhangi bir hız kazancını tamamen reddettiği bilinmemektedir. Genel olarak CPU, büyük miktarlarda veri üzerinde orta derecede hesaplama kazanırken, GPU daha küçük miktarlarda ağır hesaplamada mükemmeldir. Bunların hepsi bizi programlama modeline getiriyor.

Yüksek düzeyde sorun eski ve onurlu MIMD / SIMD tartışmasıdır. Çoklu-Öğretim / Çoklu-Veri sistemleri genel ve ticari bilgi işlemde büyük kazananlar olmuştur. SMP'yi içeren bu modelde, her biri kendi bireysel talimat akışını yürüten birden fazla işlemci var. Fransız mutfağının bilgisayar eşdeğeri, burada az sayıda yetenekli aşçı nispeten karmaşık görevleri tamamlamak için yönlendiriyorsunuz.

Tek Yönlü / Çoklu Veri sistemleri ise, bir ana denetleyiciden gelen talimatları izleyerek masalarına zincirlenmiş katiplerle dolu büyük bir odaya daha çok benzemektedir. "Herkes 3. ve 5. satırları EKLE!" ILLIAC ve bazı "mini-süper" sistemlerde saf haliyle kullanılmış ancak pazarda kaybedilmiştir. Mevcut GPU'lar yakın bir kuzen, daha esnektirler ama aynı genel felsefeyi paylaşırlar.

Kısaca özetlemek:

  • Herhangi bir işlem için CPU daha hızlı olurken, GPU aynı anda birçok işlemi gerçekleştirebilir. Aradaki fark en çok 64-bit şamandıralarla belirgindir.
  • CPU çekirdekleri herhangi bir bellek adresinde çalışabilir, GPU verileri daha küçük bir alana paketlenmelidir. Yalnızca transfer süresini dengelemek için yeterli hesaplamalar yaparsanız kazanırsınız.
  • Şartlı koşullardaki ağır kodlar genellikle CPU'da daha mutlu olur.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.