在android上要開發opencl。手機端要有libopencl.so文件(也就是opencl驅動)。可是如今android手機端非常少有這個文件。原因是盡管AMD、Intel、NVIDIA、蘋果等支持opencl,可是google好像不太支持opencl。在移動端,google有RenderScript(渲染腳本。也是基於異構計算的思想實現的API,長處是跨平台性好,適合各種android操作系統,可是性能比opencl稍差點)。google要推廣自己的API的可能性大一些。因此大部分android手機支持RenderScript。卻非常少有支持opencl的。(網上有一個opencl info 小程序能夠推斷手機是否支持opencl)。
我從網上找了一個libopencl.so庫,是Qualcomm(高通公司)生產的Adreno3 GPU支持的驅動(可是這個驅動沒有集成到手機系統中),通過一個向量相加的小樣例實踐。可是在真機(我的手機是Imagination Technologies公司的GPU,手機沒有opencl驅動,我把驅動拷到手機上)上和android模擬機上都沒有成功,我想問題應該出在驅動上,亂用驅動應該是不行的。
這里有收集到的一些資料:
1.關於opencl:
高通平台下opencl小樣例:http://blog.csdn.net/wcj0626/article/details/26272019;
安卓手機GPU opencl總結 : http://blog.csdn.net/wcj0626/article/details/38063791;
mali的GPU對opencl的支持:http://arrayfire.com/getting-started-with-opencl-on-android/
高通的GPU 對opencl 留有后門:https://maxlv.net/how-to-enable-opencl-on-nexus-5/
書籍:opencl編程指南;
Heterogeneous Computing with OpenCL ;
opencl in action。
以及百度百科自己的手機型號。百科GPU型號。
2.關於Renderscript:
資料較少。最基本的參考資料是 官方API:https://stuff.mit.edu/afs/sipb/project/android/docs/reference/android/renderscript/package-summary.html。
API部分翻譯:http://xiaxveliang.blog.163.com/blog/static/2970803420139844152392/
google學術里搜 renderscript有相關的論文介紹;詳細論文的名字不記得了。。
