de Danışmanım sordu, bu hala bir sürü geliştirici için bir soru olduğunu düşünüyorum.
Yanıtın iki yönü vardır. İlk olarak, maalesef, Google OpenCL'yi resmi olarak desteklemiyor.
İkincisi, pek çok çip sağlayıcı, kütüphanelerini OpenCL'yi desteklemelerini sağlar. Şu an için, amiral gemisi ve orta kademe akıllı telefonların çoğu (Qualcomm Adreno GPU, ARM Mali GPU veya Imagination PowerVR GPU ile birlikte) OpenCL kitaplıklarını içerir.
Android'de OpenCL kullanmak için, birkaç adım vardır:
- onay cihazda OpenCL kütüphanesi varsa. Bu OpenCL-Z Android kullanılarak yapılabilir. Bu, Android cihazlarda OpenCL kullanılabilirliğini kontrol etmek için harika bir araçtır ve aynı zamanda çok yararlı olabilecek ham bilgi işlem metrikleri sağlar.
büyük çip satıcıları için OpenCL kütüphanelerde cihazlarda bulunabilir:
Qualcomm Adreno:
/system/vendor/lib/libOpenCL.so
or /system/lib/libOpenCL.so (older devices)
ARM Mali: Aşağıdakiler OpenCL kütüphanesinin yeri vardır
/system/vendor/lib/egl/libGLES_mali.so
or /system/lib/egl/libGLES_mali.so
PowerVR:
/system/vendor/lib/libPVROCL.so
C veya C++
C/C++ kod derlemek için NDK projesi oluşturma kullanarak OpenCL programı yazın ve yürütülebilir gibi cihaz üzerinde test.
NDK program işlevleriniz için JNI arabirimi oluşturun.
OpenCL ile ilgili yerel işlevleri çağırmak için JAVI kodundaki JNI işlevlerini kullanarak Android projesi oluşturun.
Sony öğreticisi, başvurmak için iyi bir kaynaktır. Bu eğitimde sunulan teknikler herhangi bir Qualcomm Adreno GPU'ya uygulanabilir. Çok az modifikasyonla, bu kod ve makefile diğer OpenCL özellikli cihazlarda da (Mali ve PowerVR gibi) çalışabilir.
Bu yardımcı olur umarım.
Burada bir güncelleme olup olmadığını merak ediyorum, Intel'in Microsoft'un AMP'sini OpenCL ve llvm/Clang'a uyarlaması hakkında bu hikayeyi okuduktan sonra: http://www.phoronix.com/scan.php?page=news_item&px = MTIyOTk, Android NDK araç zincirine çok yakın bir zamanda dahil olan llvm/Clang ile birleştirildi: http://clang-developers.42468.n3.nabble.com/Clang-now-included-in-Android-NDK-r8c-td4028206 .html Sadece şu anda bunu inceledim ve henüz denemedim, gelecekteki bir gönderide sonuçlarımı denemeyi ve sunmayı deneyeceğim. – Jackalope