Hiçbir şey bedava değil. GPGPUs vardır SIMD. GPGPU'lardaki SIMD talimatları CPU'lardaki SIMD talimatlarından daha geniş olma eğilimindedir. GPGPU'lar ince taneli çok iş parçacıklı olma eğilimindedir (ve CPU'lardan çok daha fazla donanım içeriğine sahiptir). GPGPU'lar akış için optimize edilmiştir . Kayan nokta birimlerine daha büyük bir alan yüzdesi, önbelleğe alınacak alanın daha düşük bir yüzdesi ve tamsayı performansına daha düşük bir alan yüzdesi ayırma eğilimindedir.
Bir karşılaştırma yapalım. Intel'in çekirdek i7-5960x modelinde, her biri 4 GHz (3,5 GHz turbo), 20M L3 önbellekte çalışan 8 çekirdekli 8 çekirdeği var ve 356mm ^ 2 ve 140W tüketiyor ve maliyeti 1000 $. * 3 * 4 = 384 çift hassasiyetli GFloplar. (Ek 4x, döngü başına vektör şeridi başına iki kaynaşmış-çarpma eklentisi yapabilmenizdir.) 768 tek duyarlıklı GFlop yapabilirsiniz. Bu yaklaşık 1.08 DP GFlop / mm ^ 2 ve 2.75 DP GFlop / Watt'tır. Ayrıca yaklaşık 57.5 KB / mm ^ 2 çip üzerinde önbellek var.
NVidia'nın GeForce GTX Titan Black'i, her biri 32 genişliğinde çift hassasiyetli SIMD'ye sahip, 890MHz (980MHz turbo), 3.5M L1 + L2 önbellekte çalışan 15 SMX'e sahiptir ve maliyeti 561mm ^ 2, 250W'dir ve maliyeti 1000 $ ' dır. .89 * 4 = 1709 çift kesinlikli GFloplar. (Çevrim başına vektör şeridi başına iki kaynaşmış çarpma eklentisinden aynı 4x.) 5126 tek duyarlıklı GFlop yapabilirsiniz. Bu yaklaşık 3.05 DP GFlop / mm ^ 2 ve 6.8 DP GFlop / Watt'tır. Yani birim alan başına DP kayan nokta yoğunluğunun 3 katı ve DP kayan nokta güç verimliliğinin 3 katı. Peki ya çıkış? 6,4 KB / mm ^ 2 yonga üzerinde önbellek. CPU'dan yaklaşık 9 kat daha az yoğundur.
Yani ana fark, GPU'nun önbellek üzerinde kayan noktayı (ve özellikle tek duyarlıklı kayan noktayı) güçlü bir şekilde destekleyen bir alan dengesi seçmesidir. I / O yapmak için CPU ve GPU arasında bir şeyler kopyalamanız gerektiğini göz ardı etseniz bile, GPU'nun CPU'ya kıyasla ne kadar iyi çalışacağı, çalıştırdığınız programa bağlıdır.
Çok az kontrol sapması olan bir veri paralel kayan nokta programınız varsa (tüm vektör şeritleri aynı anda aynı şeyi yapıyorsa) ve programınız akış yapıyor (önbellekten faydalanamıyor), GPU yaklaşık Birim alan veya Watt başına 3 kat daha verimli. Ancak, önemli miktarda ıraksak kontrolünüz varsa, veriye paralel olmayan bir işiniz varsa veya çok kez okunan büyük veri yapılarından yararlanabiliyorsanız, CPU muhtemelen daha iyisini yapacaktır.