2016-04-22 58 views
3

我在谷歌上搜索了很多,但我無法找到關於將OpenCl與Android集成的良好文檔。我提到這個鏈接:https://aplacetogeek.wordpress.com/android-with-opencl-tutorial/Opencl與Android的集成

但是,這似乎不完整。有誰知道如何去處理Android中的OpenCl嗎?此外,示例工作代碼,如果有的話,也表示讚賞。我想了解它。

+0

我不太熟悉的話題,但是這一個看起來很有希望http://arrayfire.com/getting-started-with-opencl-on-android/ –

+0

我沒有查看此,但我不是什麼目前正在尋找。謝謝你的幫助! –

+0

[如何在Android上使用OpenCL?](https://stackoverflow.com/questions/9005352/how-to-use-opencl-on-android) –

回答

4

類似的問題已經被問過,我建議你先閱讀以下頁面:

How to use OpenCL on Android?

Does Android support OpenCL?

基本上,你需要下面的事情需要注意:

  1. Android上的OpenCL並未得到Google的正式支持。因此,您可能會發現某些Android設備不支持OpenCL。儘管到目前爲止,大多數旗艦設備都支持OpenCL,例如採用Qualcomm/Samsung芯片組的設備(Google Nexus設備除外,但對於某些Nexus設備有解決方法,請google在線)。

  2. 如果您明確知道您的應用只能在支持OpenCL的某些設備上運行,則可以繼續操作。 Qualcomm和Samsung芯片組上的OpenCL現在相當穩定,編譯器已經優化了好幾年;因此,您可以期望這些設備具有良好的性能。

  3. 開發步驟:1)開發C/C++ OpenCL代碼並使用NDK進行編譯。 2)爲您的Android應用程序編寫JNI接口。 3)編寫你的Android應用程序,調用你寫的JNI接口。然後你就完成了。這裏沒什麼特別的,你甚至可以在桌面GPU上調試你的OpenCL內核代碼。大多數內核代碼應該在桌面環境和Android環境中運行良好,除了移動設備上的一些限制,例如有限的擴展和更少的資源。

  4. 要優化性能,請確保您查看芯片供應商提供的分析器和開發人員網絡中的優化指南。例如,Snapdragon Profiler包含GPU分析工具;馬裏也有離線CL內核編譯器,它提供了一些內部信息,例如寄存器使用等等。