Sorunuzun ikinci yarısını diğer uygulamalara kadar cevaplayamıyorum, ancak zorluklarla ilgili bazı bilgiler verebilirim. Referans olarak, şahsen ViyanaCL'i nVidia GTX 560 Ti'de 2GB hafızasıyla kullandım.
Orta aralıklı bir i5 üzerinde seri kodun üzerinde, yaklaşık 40x yoğun matris çarpımı için hız artışları gördüm. Vektör-skaler çarpma gibi işlemler için 1000x hız artışı gördüm. Bununla birlikte, odadaki 800 kiloluk goril, bellek bant genişliğidir. Çoğu ticari GPU için, PCIe gibi sizi yaklaşık 6GB / s verimle sınırlayan bir şey kullanacaksınız. Benim durumumda, hesaplama 40 kat daha hızlı olsa da, üç matris kopyasının (ikisi GPU'ya ve bir geri) her biri sadece CPU'da hesaplama yapmak kadar zaman aldı.
GPU doğrusal cebiri için herhangi bir genel kütüphane ile ilgili sorun, GPU üzerindeki nesneleri gerçekten yeniden kullanamayacaklarıdır, çünkü onlarla ne yapacağınızı bilmiyorlar. Bu nedenle, bir hesaplama çekirdeğine yapılan her çağrı GPU'ya kopyalamanızı ve ardından sonucu tekrar kopyalamanızı gerektirir. Bu kazançların büyük bir kısmını yiyecektir.
Matrisler gibi nesneleri yeniden kullanabiliyorsanız, mümkün olduğunca fazla bellek yönetiminden kaçınmak için daha yüksek düzeydeki algoritmaları yazabilirsiniz, ancak bir kütüphanenin bunu verimli bir şekilde yapması zor olurdu.
Umarım bu yardımcı olur ve burada çok daha deneyimli başka insanlar olduğundan eminim, ancak bunlar GPU bilgi işlemine yaptığım kısa deneyim sırasında edindiğim deneyimler ve izlenimler.