Bir uygulamayı gerçek zamanlı 3D modellemede optimize etmeye çalışıyorum. Uygulamanın bilgi işlem bölümü neredeyse tamamen CUDA'daki GPU'da çalışır. Uygulama, küçük (6x6) çift duyarlıklı simetrik pozitif kesin doğrusal sistem Ax = b = saniyede 500+ çarpı gerektirir. Şu anda bu Cholesky kullanarak verimli bir CPU tabanlı Linear Cebir kütüphanesi ile yapılmaktadır, ancak CPU - GPU ve geri GPU yüzlerce kez veri kopyalanması ve her zaman çekirdek başlattı vb gerektirir.Küçük simetrik pozitif tanımlayın Ax = b sadece GPU üzerinde
Verileri sadece CPU'ya almak zorunda kalmadan GPU üzerindeki lineer sisteme çözüm olarak hesaplayabilir miyim? MAGMA kütüphanesi hakkında biraz bilgi okudum ancak GPU sadece algoritmalardan ziyade hibrit algoritmalar kullanıyor gibi görünüyor.
GPU üzerindeki tek bir doğrusal sistemin çözümünün, mevcut CPU tabanlı kitaplıktan çok daha yavaş olacağından şüphe duyuyorum ama bunun kaldırılması için uygun olup olmadığına bakmak istiyorum. konak ve cihaz ile çekirdek yükü arasındaki veri iletişimi, saniyede yüzlerce kez başlatılır. Eğer GPU yoksa sadece LAPACK benzeri bir alternatif var mı? Bu özel 6x6 vakasını sadece GPU'da çözmek için bir şeyi nasıl uygulayacağım? Örneğin, GPU BLAS kütüphaneleri ile büyük bir zaman yatırımı yapılmadan yapılabilir mi?
6x6 lineer bir sistem o kadar küçüktür ki, denklemleri CUDA kodunun içine yazabilirsiniz ... Açıkçası böylesine küçük bir sistem için CUDA'nın paralel doğasından herhangi bir fayda elde etmek çok zor olurdu. GPU-CPU iletişimi gerçekten büyük bir fayda sağlayacaktır. Mümkün mü, farklı bir şekilde paralel mi mümkün olabilir? Sistemi tek bir GPU çekirdeğinde çözün ve daha sonra birden fazla çekirdek 500+ çözüm/s'yi kullanın. Bir önceki sistemden bir sonraki çalışmaya başlamak için sonuçlara ihtiyacınız yoksa, bu en iyisi olurdu. – Eiver
@Eiver para üzerindedir. Bu 500'ü paralel yapabilir misiniz, yoksa birbirine bağımlı mıdırlar? 6x6 için bu yaklaşım http://en.wikipedia.org/wiki/Cholesky_decomposition#Block_variant el-katlanabilir görünüyor ... –