studio - ¿Soporta Android OpenCL?
tag android (3)
Recientemente quiero desarrollar la aplicación de computación paralela en el uso de OpenCL para Android. Que yo sepa, el sistema Android no incluye "libopencl.so", pero todavía hay algunas webs o blogs que muestran el desarrollo de OpenCL en Android. ¿Soporta Android OpenCL? Si es así, ¿qué debo hacer para desarrollar OpenCL en Android?
Estrictamente hablando, Android no es compatible con OpenCL. Esa es la elección (mala) de Google. Sin embargo, puede ejecutar aplicaciones OpenCL en su dispositivo Android si puede obtener una biblioteca OpenCL para ello. De los enlaces que proporciona Kirtan, recomiendo la ruta de Sony, ya que es la más sencilla (es decir, los teléfonos que ya vienen con OpenCL), que creo que es la GPU Adreno de Qualcomm.
La única disponibilidad de OpenCL de Imagination que conozco está en este tablero de desarrolladores . Tiene un SGX544 por lo que puede tomar los controladores de esa placa y ponerlos en su dispositivo. Puede funcionar .....
Como nota aparte: OpenGL ES 3.1 es compatible con los sombreadores de cálculo GL y es compatible con Android, por lo que puede ser una opción si está buscando enviar algo utilizando la GPU para el cálculo.
Actualización el 20 de mayo de 2016
Para todos los dispositivos con arm64-v8a
ABI, la biblioteca OpenCL también se puede encontrar en la carpeta lib64
.
Entonces, cuando verifique la biblioteca OpenCL, asegúrese de verificar también la carpeta lib64
correspondiente (si prefiere arm64-v8a
como el primer ABI para su aplicación, es lib64
que primero verifique la carpeta lib64
).
Por ejemplo: /system/vendor/lib64/libOpenCL.so
La respuesta original:
Desde 2014, hay más teléfonos que soportan OpenCL.
Los siguientes son la ubicación de la biblioteca 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
Puede usar OpenCL-Z Android para verificar la disponibilidad y las capacidades de OpenCL en dispositivos Android.