2014-11-07 9 views
15

Kürzlich möchte ich die Parallel-Computing-Anwendung auf Android-Verwendung OpenCL entwickeln. Soweit ich weiß, Android-System enthält nicht "libopencl.so", aber es gibt immer noch einige Websites oder Blogs zeigen OpenCL-Entwicklung auf Android. Unterstützt Android OpenCL? Wenn ja, was sollte ich tun, um OpenCL auf Android zu entwickeln?Unterstützt Android OpenCL?

+1

Für ARM nur Link gegen 'libGLES_mali.so'. Für Qualcomm denke ich, dass Sie 'libOpenCL.so' haben.Manchmal sind sie jedoch nicht im Pfad, also suchen Sie nach ihnen in "/ system/vendor/lib" – DarkZeros

+0

In meinem Android-Handy gibt es nicht die libOpenCL.so, wo kann ich die Datei finden? Mein androider GPU-Typ ist Imagination PowerVR SGX544. –

+0

Dies kann helfen: http://community.imgtec.com/developers/powervr/ Ich arbeite mit ARM und Qualcomm nie mit Imagination – DarkZeros

Antwort

2
+0

denke, vorerst gibt es Adreno oder Mali GPU Unterstützung mobile OpenCL, nicht alle Handys, es ist eine schlechte Nachricht für mich. –

+0

Schön zu sehen, dass sich die Dinge in letzter Zeit geändert haben. Die meisten der kürzlich Mid- bis High-End-Telefone mit Ausnahme von Google unterstützen OpenCL. Gute Neuigkeiten für OpenCL-Entwickler. –

4

Streng genommen Android nicht OpenCL unterstützen. Das ist Googles (schlechte) Wahl. Sie können jedoch OpenCL-Anwendungen auf Ihrem Android-Gerät ausführen, wenn Sie dafür eine OpenCL-Bibliothek erhalten können. Von den Links, die Kirtan anbietet, würde ich die Sony-Route empfehlen, da sie am einfachsten ist (d. H. Die Telefone sind bereits mit OpenCL ausgestattet), was ich glaube, dass es sich um die Adreno-GPU von Qualcomm handelt.

Die einzige Imagination OpenCL Verfügbarkeit, die ich kenne, ist auf this dev board. Es hat einen SGX544, so dass Sie möglicherweise die Treiber von diesem Board nehmen und auf Ihr Gerät übertragen können. Es kann funktionieren .....

Als Nebenaspekt: ​​OpenGL ES 3.1 unterstützt GL compute Shader und wird auf Android unterstützt, so kann eine Option von Ihnen sein, etwas mit der GPU für Computing zu versenden.

11

-Update am 20. Mai 2016

Für alle Geräte mit arm64-v8a ABI, die OpenCL-Bibliothek kann auch in lib64 Ordner.

Also, wenn Sie die OpenCL-Bibliothek überprüfen, stellen Sie sicher, dass Sie auch die entsprechenden lib64 Ordner überprüfen (wenn Sie arm64-v8a als erstes ABI für Ihre Anwendung bevorzugen, sollten Sie zuerst lib64 Ordner überprüfen).

Zum Beispiel: /system/vendor/lib64/libOpenCL.so


Die ursprüngliche Antwort:

Seit 2014 gibt es mehr Handys OpenCL unterstützen.

Die folgenden sind die Lage der Bibliothek 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 

Sie verwenden können OpenCL-Z Android, um die verfügbaren und Funktionen von OpenCL auf Android-Geräten zu überprüfen.

+0

Intel-basierte Android-Geräte sollten es auch an der gleichen Stelle wie Adreno haben: '/ system/vendor/lib/libOpenCL.so' – Lrdx

+0

@Lrdx, danke für das Hinzufügen von Informationen. gut zu wissen. –

+0

@Lrdx, Intel-basierte Geräte können GPUs anderer Hersteller verwenden. Ich habe ein Tablet Samsung Tab 3 3G, mit einem Intel Atom Z2560. Allerdings ist die GPU ein PowerVR SGX544MP2: /system/vendor/lib/libPVROCL.so – mdew