2011-12-07 14 views
5

Matlab paralel işleme araç kutusuyla bilgi işlem yapmak için patronuma iyi bir GPU sormayı düşünüyorum. Ancak, bir meslektaşımın bilgisayarındaki bazı basit testlerden sonra, bir NVidia Quadro 600'de. Çok düşük bir performans artışı elde ediyorum (1x ve 2x arasında).GPU'dan matlab ile elde edilen performans artışı nedir?

Özellikle n-d dizileri üzerinde konvolüsyon yapmakla ilgileniyorum.

Birisi benzer bir deneyime sahip, gpuArray ile bilgi işlem yapıyor mu?

Hangi performans kazancını bekleyebilirim?

Hangi GPU modelini satın almalıyım (1000 $ 'dan az, umarım 400 $' dan az)?

+2

Matlab'dan hangi işlevleri kullanacağınızı gösterir misiniz? – osgx

+2

Burada birkaç soru var gibi görünüyor. Onlardan "Ne GPU almalıyım?" Benim görüşüme göre konu dışı ve çok yerelleştirildi. "Hangi tecrüben var?" çok konuşkan ve açık uçlu gibi görünüyor. – Flexo

+0

Sorumu söylediğim gibi, özellikle konvolüsyonlar, especiallay 'convn' ve' conv2' – Oli

cevap

2

MATLAB'da gpuArray performansı çeşitli faktörler tarafından tahrik edilmektedir: Sorununuz iyi

  • cihazınızda var kaç CUDA çekirdeği ilk etapta GPU üzerinde çalışan

    • olsun, genel olarak daha iyi daha iyi
    • Geliştirilmiş çift duyarlıklı performansa sahip bir aygıt kullanmanız (örneğin, en son Quadro/Tesla işlem kapasitesi aygıtları> = 2 gibi)
    • Hangi MATLAB sürümü - R2011b kullanımı sig R2010b'den daha iyi performans.

    İşte rastgele Walking 'mükemmel blogda bazı kriterler bir örnek: http://www.walkingrandomly.com/?p=3634. Bunlar, makul uygulamalarda beklenebilecek hızlanma türlerini gösterir - yani 5x ila 10x, makul olandan çok daha fazladır.

  • 1

    A Quadro 400, 480 çekirdeğe sahip GeForce 480'e ve 512 çekirdeğe sahip GeForce 580'e kıyasla yalnızca 48 çekirdeğe sahiptir. Bunlar her ikisi de daha yüksek saatlerde de çalışır, böylece bellek erişimi sınırlayıcı faktör olmadığında 10 katından fazla performans kazancı elde edebilirsiniz.

    MATLAB'ı hızlandırmak için GPU kullanmıyorum ancak her gün GPU (CUDA) devresi için kullandığım bilgisayarlarım var. Biri bir Quadro FX5800 + GeForce 480, diğeri GeForce 580'i içeriyor. Bilgimin en iyisi olarak, bir iş istasyonu kartından GeForce'e karşı hiçbir avantaj elde edemeyeceksiniz. Yani bazı $$$ kaydedin ve bir GF480 veya GF580 olsun. http://www.mathworks.com/matlabcentral/fileexchange/20220 Ben MATLAB dışı-box bugünlerde neler emin değilim:

    Bu iş parçacığı bir CUDA hızlı görünüşe 50x olan dönüşüm fonksiyonunu hızlandırılmış gibi görünüyor.

    Bu yardımcı olur umarım! GPU'lar birçok görevi hızlandırmak için harika olabilir. Ancak, performans kazanımları biraz takip edebilir.

    1

    Şu anda bu araştırıyorum:

    ( http://www.mathworks.com/products/demos/parallel-computing/paralleldemo_gpu_mandelbrot/paralleldemo_gpu_mandelbrot.html?product=DW o nadir örneklerinden birini görmek isterseniz, Mandelbrot gpuArray s ve arrayfun CPU yaklaşık 1500X defa daha hızlı çalışır ile programlanır GPU ayarlanır) aynı konu. Gördüğüm bir şey, düşük ve orta sınıf grafik kartlarının oyun için tasarlanması ve sonuç olarak FP32 performansı için optimize edilmesi. FP64 performansı, sonuç olarak önemli ölçüde geride kalıyor ve gördüğünüz şey olabilir. $ 1k GTX Titan, ciddi bilimsel hesaplama için başlangıç ​​noktası gibi görünüyor.