Şu anda OpenCL çekirdeğimde işlediğim geniş bir dizi float var. Bu diziyi bölüp ayırma ve işlemi hızlandıracak bir OpenCL vektör tipi dizisi kullanıp kullanmayacağımı merak ediyorum. Temelde, bir dizi 4.800 float olsaydı, 300 float16 vektöründen oluşan bir diziye bölerdim. Bu, SIMD'den yararlanır mı?OpenCL vektör türlerini kullanın SIMD
7
A
cevap
7
Intel aslında kendi OpenCL SDK'sinin ne yaptığını açıklar: bkz. Writing Optimal OpenCL™ Code with Intel® OpenCL SDK. Kıyaslama için bir ek olarak, bunu kontrol etmek isteyebilirsiniz. İlginç bölüm bölüm 2.3'ten başlıyor.
Sorunuzu cevaplamak için: evet, SIMD'den faydalanacaktır. Ancak "vektör veri tiplerini kullanarak CPU vektör ünitelerinin kullanımını en üst düzeye çıkarmak" için bu belgeyi gerçekten okumalısınız.
0
Bu olabilir veya olmayabilir. OpenCL'nin uygulanmasına ve programınızın yürütüldüğü donanıma bağlıdır.
Bir iyileştirme sağlayıp sağlamadığını görmenin tek yolu, vektör boyutlarının aralığı için (örneğin, karşılaştırma 1 (skaler), 2, 4, 8 ve 16) ilgili platformlar ve uygulamalar üzerinde kıyaslama yapmaktır.
İlgili konular
- 1. nasıl SIMD vektör
- 2. SIMD std :: nth_element Uygulaması
- 3. OpenCL
- 4. OpenCL kullanarak mizaçsal dizi toplamı OpenCL
- 5. Test noktaları ile OpenCL örnekleri
- 6. Ortak SIMD teknikleri
- 7. SIMD C++ kitaplığı
- 8. 2 .NET derlemelerinde aynı ad ve ad alanı türlerini kullanın
- 9. gcc, simd intrinsics ve hızlı matematik kavramları
- 10. ARM NEON SIMD sürüm 2
- 11. Öğe kataloğunda iOS resmi için vektör resmini kullanın.
- 12. OpenCL uyumlu DSP
- 13. Android'de OpenCL nasıl kullanılır?
- 14. OpenCL dizide maksimum bulmak
- 15. Vektör
- 16. vb yerleşik işlevleri IsEqual, isnotequal, isgreater, amacı ne? OpenCL yılında
- 17. OpenCL veya CUDA Giden yol?
- 18. nVIDIA Grafik kartlarında OpenCL 2.0
- 19. OpenCL içinde clCreateProgramWithBinary nasıl kullanılır?
- 20. RyuJIT, SIMD intrinsics'ini tam olarak kullanmıyor
- 21. OpenGL-OpenCL birlikte çalışma transfer saatleri
- 22. Metin arkadaşı, proje aramadan dosya türlerini (türlerini?) Hariç tut
- 23. Veri türlerini kullanma Haskell
- 24. JavaToWs türlerini indir
- 25. Feincms içerik türlerini karıştırıyor
- 26. Karşılıklı özyineleme türlerini düzenleme
- 27. Scala yapısal türlerini soyut
- 28. Fantom türlerini F #
- 29. Sıralı indeksler ile vektör-vektör eşlemesi
- 30. as3 Vektör
OpenCL, temeldeki donanımın SIMD özelliklerinden faydalanmalı veya GPU programlama için oldukça kullanışsız olacaktır. Her ne kadar CPU OpenCL'nin güçlü yönlerini oynamak için mükemmel bir alan olmasa da, CPU'da ne yaptığından emin değilim. –