安卓平台下ARM Mali OpenCL编程-GPU信息检测(转)
对于ARM Mali GPU,目前是支持OpenCL1.1,所以我们可以利用OpenCL来加速我们的计算。
一直以来,对于Mali GPU的OpenCL编程,一直没有环境来测试。好不容易弄到一个华为Mate7,却因为华为没有提供OpenCL driver(小道消息,华为下半年开始将会有OpenCL Drivert提供,拭目以待吧)。目前测试过的手机有魅族MX4 pro T628是带有OpenCL Driver,这个还得多亏三星的猎户座芯片。对于安卓手机如果手机是Mali GPU(如果是T6xx以下GPU,请无视,因为不支持OpenCL,例如华为P7使用的是Mali-450),如果您不确定是否有驱动(BTW:关于驱动问题询问过ARM的工作人员,需要找芯片提供商,而不是ARM),可以去豌豆荚下载OpenCL Info的小软件,该软件基本囊括了目前移动平台所有GPU的检测。
扯了一堆的废话,当前我的平台是瑞芯的RK3288。对于Mali GPU,OpenCL Driver驱动对应系统"/system/vendor/lib/egl/libGLES_mali.so" 。
对于常规的例子,请移步这里,这是我写的一个关于高通平台下的OpenCL例子,修改一下便可使用。而为了软件兼容不同厂家的GPU,在NDK Native code中dlopen加载OpenCL库。
void *getCLHandle(){
void *res = NULL;
res = dlopen("/system/vendor/lib/libOpenCL.so",RTLD_LAZY); /*Adreno GPU */
if(res==NULL){
res = dlopen("/system/vendor/lib/libPVROCL.so",RTLD_LAZY); /*PowerVR GPU*/
}
if(res==NULL){
res = dlopen("/system/vendor/lib/egl/libGLES_mali.so",RTLD_LAZY); /*mali GPU*/
}
if(res==NULL){
printf("No OpenCL library in your Phone ");
}
return res;
}
如上是我的实现方式。
做了一个小的测试软件,直接在编译成可执行程序,adb push到手机端运行。
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := opencl
LOCAL_SRC_FILES := OpenCL_phone.c opera_Init.c test.c
LOCAL_C_INCLUDES := include
include $(BUILD_EXECUTABLE)
如上是我例子的Android.mk文件。OpenCL_phone.c是dlopen OpenCL库的一些处理。opera_Init.c是对OpenCL选择平台,设备,创建上下文等之类的操作,test.c是主函数。
转自:http://blog.csdn.net/wcj0626/article/details/44930221
安卓平台下ARM Mali OpenCL编程-GPU信息检测(转)的更多相关文章
- 安卓平台ARM Mali OpenCL例子-灰度转换(转)
手头一块RK3288的板子,在板子上测试了一张1080p的彩色图灰度转换的OpenCL例子.OpenCL没有任何优化.例子请移步这里. 该例子是编译成安卓平台下的可执行程序. 进入jni文件夹,进行如 ...
- NET平台下的Excel编程|C#操作Excel|Application和ApplicationClass的联系和区别
NET平台下的Excel编程|C#操作Excel|Application和ApplicationClass的联系和区别 1. Interop含义Interop是互操作的含义.Microsoft.Off ...
- Android平台下OpenCV移植与使用---基于C/C++
在<Android Studio增加NDK代码编译支持--Mac环境>和<Mac平台下Opencv开发环境搭建>两篇文章中,介绍了如何使用NDK环境和Opencv环境搭建与测试 ...
- [转]Windows平台下Makefile学习笔记
Windows平台下Makefile学习笔记(一) 作者:朱金灿 来源:http://blog.csdn.net/clever101 决心学习Makefile,一方面是为了解决编译开源代码时需要跨编译 ...
- windows平台下VLC2.0.5编译
windows平台下VLC2.0.5编译说明 时隔一年多,又要搞流媒体了,不过这次是要做流媒体服务器. 暂时决定使用vlc+ffmpeg+live555,虽然听有些前辈说这个组合的性能较差,只能作为学 ...
- .Net平台下的B/S开发框架
一.前言 本文主要是对.Net平台下的几种B/S开发框架进行比较.只对比前端展现和界面业务逻辑的部分,对于后台的数据层.业务层.持久层等则不作讨论,因为这些部分是完全可以共用的. 主要从如下几个维度 ...
- [转帖]Android平台下OpenGL初步
原文请看 Android平台下OpenGL初步 本文只关注于如何一步步实现在Android平台下运用OpenGl. 1.GLSurfaceView GLSurfaceView是Android应用程序中 ...
- 不同平台下int类型、指针类型的数据大小
不同平台下int类型.指针类型的数据大小 对于int类型数据和指针类型数据的大小,是非常基础的问题. 在一个具体的平台上,确定他们最好的办法就是使用sizeof(type)对其进行判断,返回当前数据类 ...
- 【VS开发】Windows平台下Makefile学习笔记
作者:朱金灿 来源:http://blog.csdn.net/clever101 决心学习Makefile,一方面是为了解决编译开源代码时需要跨编译平台的问题(发现一些开源代码已经在使用VS2010开 ...
随机推荐
- redisson实现基于业务的互斥锁
虽然数据库有锁的实现,但是有时候对于数据的操作更需要业务层控制. 这个解决的问题有次面试被问到过,当时不知道怎么解决,乱说一通,今天也算是有个解决方案了 项目中有个需求,就是订单需要经过一层一层的审核 ...
- js冒泡处理
<div id="first"> 外层 <span id="second"> 内层 </span> </div> ...
- 关于收到谷歌邮件 Googlebot can't access your site 的解决方法
最近一段时间一直都收到谷歌的邮件,而且“新锐工作室”的关键字在谷歌收录及排名都没有了.下面图为谷歌蜘蛛无法抓取网站的截图,如果你在谷歌网管工具里收到类似消息,说明也中招了.[Webmaster Too ...
- Linux下添加静态路由表设置网关出现SIOCADDRT: Network is unreachable的问题分析
场景: # route add default gw 192.168.4.1 route: SIOCADDRT: Network is unreachable 解释: 1.先ping一下网关,但是pi ...
- ExtJs xtype一览
标签: extjs xtype 分类: HTML 基本组件: xtype Class 描述 button Ext.Button 按钮 splitbutton Ext.SplitButton 带下拉菜单 ...
- ExtJs ComboBox 在IE 下 自动完成功能无效的解决方案
使用 ComboBox 来作为自动完成的组件,就像google suggestion ,可是在IE下怎么也无法输入字符,是处于不可编辑状态,而firefox和chrome都正常显示.我在2个ExtJs ...
- BUZZER Driver
- 15KW电动机380V及220V时的电流分别为多少
15KW电动机380V及220V时的电流分别为多少 当用电电压为380V时:P=UICOSφ/1.72,此时电流为: I=15KW/380V/0.83(COSφ,功率因数)/1.72x1000=27. ...
- warning: suggest parentheses around assignment used as truth value
编译时的警告如下:
- FIS3配置fis-conf.js
设置规则的配置接口: fis.match(selector, props); 1.添加md5戳:对 js.css.png 图片引用 URL 添加 md5 戳: fis.match('*.{js,css ...