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.