2012-09-08 13 views
5

Bir döngüde birkaç engel içeren bir OpenCL çekirdeği yazıyorum. Çekirdeği CPU üzerinde test ettim (8 çekirdekli FX8150) ve sonuç bu bariyerlerin çalışma hızını 50 - 100 kat azalttığını gösteriyor (bunu daha sonra birden çok iş parçacığı + CyclicBarrier kullanarak Java'daki çekirdeği yeniden uygulayarak doğruladım) . Bariyerin asıl olarak CPU'nun sipariş dışı uygulamadan yararlanma nedenini durduğundan şüpheleniyorum, bu yüzden GPU'da aynı hızdaki düşüşü gözlemlerseniz biraz endişeliyim. Birkaç resmi belgeyi kontrol ettim ve biraz etrafta dolaştım ama bu konuda çok az bilgi var.Modern GPU (ör. Fermi/Evergreen) sipariş yürütmeyi desteklemiyor mu?

+0

Tabi ki vardır. Zaman-alma fpu hesaplarını kod aracılığıyla heterojen bir şekilde bölmelisiniz, böylece tamsayı calc yapabilir. aynı anda yüzer –

+0

@ tuğrulbüyükışık teşekkürler. Beni (referans amaçlı) onaylayan resmi bir belgeye yönlendirebilir misiniz? – aaronqli

cevap

7

Mevcut üzere işlemci ardışık sanat GPU'lar state-of-the. GPU'lar boru hattını farklı çözgülerden (dalga cepheleri) gelen talimatları birleştirerek etkin bir şekilde doldururlar. Karşılaştırmalarda, CPU'lar boru hattını doldurmak için sıra dışı spekülatif yürütme kullanır. Ayrı boru hatlarına sahip olan ALU'lar ve SFU'lar gibi farklı işlevsel birimler vardır. Ancak talimat bağımlılığının warp'i durduğuna dikkat edin. GPU'larda çözme talimatı hakkında daha fazla bilgi için this NVIDIA patent'a bakın.

2

NVIDIA'nın Yeni Nesil
CUDA hesaplayın ve Grafik Mimarlık, “Fermi” Kod-Adlandırılan:

Nvidia GigaThread Engine anahtarlama (sayfa 5 de)

  • 10x daha hızlı uygulama bağlamının yeteneklere sahiptir
  • Eşzamanlı çekirdek yürütme
  • İşlenecek konu blok yürütme :)
  • çift üst üste bellek aktarımı motorları

Evergreen has SIMD capabilities and has a chance outperform some fermi but i dont know about oooe of it. There is also "local atomic add" upper hand of HD 7000 series compared to GTX 600 series (nearly 10x faster)

İlgili konular