Mimo, że czas, który upłynął od pierwotnego pytania został zapytany, myślę, że to wciąż pytanie dla wielu programistów.
Istnieją dwa aspekty w odpowiedzi. Po pierwsze, niestety, Google nie obsługuje oficjalnie OpenCL.
Po drugie, na szczęście wielu producentów układów udostępnia swoje biblioteki do obsługi OpenCL. Na razie większość flagowych i średnich smartfonów (z procesorem GPU Qualcomm Adreno, GPU ARM Mali lub procesorem graficznym Imagination PowerVR) zawiera biblioteki OpenCL.
Aby skorzystać z OpenCL na Androida, istnieje kilka kroków:
- sprawdzić, czy jest OpenCL bibliotekę na urządzeniu. Można to zrobić za pomocą OpenCL-Z Android. Jest to doskonałe narzędzie do sprawdzania dostępności OpenCL na urządzeniach z systemem Android, a także zapewnia nieprzetworzone dane dotyczące wydajności, które mogą być bardzo pomocne.
bibliotek OpenCL dla największych producentów chipów można znaleźć w urządzeniach: Poniżej przedstawiono położenie biblioteki OpenCL:
Qualcomm Adreno:
/system/vendor/lib/libOpenCL.so
or /system/lib/libOpenCL.so (older devices)
ARM Mali:
/system/vendor/lib/egl/libGLES_mali.so
or /system/lib/egl/libGLES_mali.so
PowerVR:
/system/vendor/lib/libPVROCL.so
Wpisz swój program OpenCL używając C lub C++
Tworzenie projektu NDK skompilować C/C++ kod i przetestować je na urządzeniu wykonywalności.
Utwórz interfejs JNI dla funkcji programu NDK.
Utwórz projekt Android, używając funkcji JNI w kodzie JAVA, aby wywoływać natywne funkcje związane z OpenCL.
Samouczek sony jest dobrym źródłem do odniesienia. Techniki przedstawione w tym samouczku można zastosować do dowolnego procesora GPU Qualcomm Adreno. Przy minimalnych modyfikacjach ten kod i pliki Makefile można również uruchamiać na innych urządzeniach obsługujących OpenCL (takich jak Mali i PowerVR).
Mam nadzieję, że to pomoże.
Zastanawiam się, czy aktualizacja może być w porządku tutaj, po przeczytaniu tej historii o adaptacji Intela AMP Microsoftu do OpenCL i llvm/Clang: http://www.phoronix.com/scan.php?page=news_item&px = MTIyOTk w połączeniu z bardzo niedawnym dołączeniem llvm/Clang do zestawu narzędzi NDK Androida: http://clang-developers.42468.n3.nabble.com/Clang-now-included-in-Android-NDK-r8c-td4028206 .html Patrząc teraz tylko na to, a jeszcze nie wypróbowałem, będę eksperymentować i oferować wiadomości o moich wynikach w przyszłym poście. – Jackalope