Rod*_*dja 29 android gpgpu opengl-es opencl renderscript
对于平台独立性(桌面,云,移动......),当速度很重要时,使用OpenCL进行GPGPU开发会很棒.我知道谷歌推动RenderScript作为替代方案,但它似乎只适用于Android,并且不太可能包含在iOS中.
因此,我寻求在Android应用程序中执行OpenCL代码的解决方案.
pru*_*nge 13
我所知道的唯一支持OpenCL的Android设备是基于Mali T600系列芯片的设备(文章在这里).他们有一个OpenCL SDK.显然它也是OpenCL 1.1的完整档案.
所述的Nexus 10是使用这样的芯片的装置.三星Exynos 5双SoC使用Mali T604,所以任何使用它的东西都可以和Mali T600 OpenCL SDK一起使用(我自己都没有尝试过).
OpenCL博客的作者正在尝试使用它,因此可能值得关注他的系列文章.
但是,Android上的OpenCL支持是全新的(截至2013年2月16日),因此,虽然对于实验非常有用,但在获得更多支持之前可能值得谨慎(谁知道OpenCL 1.1的初始支持是多么的错误)
Rob*_*ang 12
虽然时间问题已经过去了,但我认为这仍然是很多开发人员的问题.
答案有两个方面.首先,遗憾的是,Google并未正式支持OpenCL.
第二,幸运的是,许多芯片供应商提供他们的库来支持OpenCL.截至目前,大多数旗舰级和中级智能手机(包括Qualcomm Adreno GPU,ARM Mali GPU或Imagination PowerVR GPU)都包含OpenCL库.
要在Android上使用OpenCL,有几个步骤:
可以在设备中找到主要芯片供应商的OpenCL库:以下是OpenCL库的位置:
高通Adreno:
/system/vendor/lib/libOpenCL.so
or /system/lib/libOpenCL.so (older devices)
Run Code Online (Sandbox Code Playgroud)
ARM马里:
/system/vendor/lib/egl/libGLES_mali.so
or /system/lib/egl/libGLES_mali.so
Run Code Online (Sandbox Code Playgroud)
的PowerVR:
/system/vendor/lib/libPVROCL.so
Run Code Online (Sandbox Code Playgroud)
使用C或C++编写OpenCL程序
创建NDK项目以编译C/C++代码,并在设备上将其作为可执行文件进行测试.
为NDK程序功能创建JNI接口.
创建Android项目,使用JAVA代码中的JNI函数调用涉及OpenCL的本机函数.
索尼教程是一个很好的参考资料.该教程中介绍的技术可应用于任何Qualcomm Adreno GPU.通过极少的修改,该代码和makefile也可以在其他支持OpenCL的设备(例如Mali和PowerVR)上运行.
希望这可以帮助.
在Sony开发人员世界中查看Android OpenCL演示,使用源代码完成项目,其中在OpenCL中完成对图像的双边过滤,并与单线程C实现进行比较.有关索尼设备等预期支持的一些信息也可以在文章中找到.
文章:
文章来源:
免责声明:我是Sony Mobile的顾问
小智 5
在2018年,您可以使用openCL与Android Studio一起开发Android应用程序。
为了在Android Studio中使用openCL,您需要做几件事。
/<your_project>/app/src/main/jniLibs/<architecture>/(您必须自己创建该文件夹)。配置您的模块(应用程序)build.gradle文件。
android{
...
default_config{
externalNativeBuild{
cmake {
// Filter based on your device architecture
abiFilters 'armeabi-v7a'
}
}
...
}
sourceSets {
main {
jniLibs.srcDirs = ['src/main/jniLibs']
}
}
...
}
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
24165 次 |
| 最近记录: |