对于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信息检测(转)的更多相关文章

  1. 安卓平台ARM Mali OpenCL例子-灰度转换(转)

    手头一块RK3288的板子,在板子上测试了一张1080p的彩色图灰度转换的OpenCL例子.OpenCL没有任何优化.例子请移步这里. 该例子是编译成安卓平台下的可执行程序. 进入jni文件夹,进行如 ...

  2. NET平台下的Excel编程|C#操作Excel|Application和ApplicationClass的联系和区别

    NET平台下的Excel编程|C#操作Excel|Application和ApplicationClass的联系和区别 1. Interop含义Interop是互操作的含义.Microsoft.Off ...

  3. Android平台下OpenCV移植与使用---基于C/C++

    在<Android Studio增加NDK代码编译支持--Mac环境>和<Mac平台下Opencv开发环境搭建>两篇文章中,介绍了如何使用NDK环境和Opencv环境搭建与测试 ...

  4. [转]Windows平台下Makefile学习笔记

    Windows平台下Makefile学习笔记(一) 作者:朱金灿 来源:http://blog.csdn.net/clever101 决心学习Makefile,一方面是为了解决编译开源代码时需要跨编译 ...

  5. windows平台下VLC2.0.5编译

    windows平台下VLC2.0.5编译说明 时隔一年多,又要搞流媒体了,不过这次是要做流媒体服务器. 暂时决定使用vlc+ffmpeg+live555,虽然听有些前辈说这个组合的性能较差,只能作为学 ...

  6. .Net平台下的B/S开发框架

    一.前言 本文主要是对.Net平台下的几种B/S开发框架进行比较.只对比前端展现和界面业务逻辑的部分,对于后台的数据层.业务层.持久层等则不作讨论,因为这些部分是完全可以共用的.  主要从如下几个维度 ...

  7. [转帖]Android平台下OpenGL初步

    原文请看 Android平台下OpenGL初步 本文只关注于如何一步步实现在Android平台下运用OpenGl. 1.GLSurfaceView GLSurfaceView是Android应用程序中 ...

  8. 不同平台下int类型、指针类型的数据大小

    不同平台下int类型.指针类型的数据大小 对于int类型数据和指针类型数据的大小,是非常基础的问题. 在一个具体的平台上,确定他们最好的办法就是使用sizeof(type)对其进行判断,返回当前数据类 ...

  9. 【VS开发】Windows平台下Makefile学习笔记

    作者:朱金灿 来源:http://blog.csdn.net/clever101 决心学习Makefile,一方面是为了解决编译开源代码时需要跨编译平台的问题(发现一些开源代码已经在使用VS2010开 ...

随机推荐

  1. 【2-SAT】【DFS】【分类讨论】Gym - 101617K - Unsatisfying

    题意:给你一张2-SAT,问你加至少几句a V b(不能用非运算)这样的语句,使得其无法全为真. 如果最开始没有左右两项都含非运算的析取表达式,则无解,因为显然你可以对每一项的不含非的那项规定为真,使 ...

  2. Yolov_3 网络结构分析

    转自:https://blog.csdn.net/KKKSQJ/article/details/83587138 original Based on keras-yolov3, understandi ...

  3. 2015 UESTC 数据结构专题E题 秋实大哥与家 线段树扫描线求矩形面积交

    E - 秋实大哥与家 Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/59 De ...

  4. UITextField设置密文延时处理---仿QQ登录密码输入

    系统的UITextField输入的时候最后一个字符会有1-2s的效果展示, 效果如下: 为了解决这个问题, 可以用字符 "●" 替换, 替换后效果如下: 用到的是UITextFie ...

  5. MYSQL学习笔记 (二)对数据库结构的增删改查

    显示数据库 show databases; 选择数据库 use database;//其实database为数据库的名字 创建表 create table tbclass( id int not nu ...

  6. StringFormat

    public class StringFormatDemo { public static void main(String[] args) { String str = null; str = St ...

  7. Powerdesigner打开工程提示打印错误 解决方法

    在使用PowerDesigner打开工程时, 提示打印错误的问题,具体错误信息提示如下: 在您可以执行与打印机有关的任务(例如页面设置或打印一个文档)之前,您必须已经安装打印机.您想现在安装打印机么? ...

  8. 使用 Start 屏幕查找 Windows 更新

    使用 Start 屏幕查找 Windows 更新   从屏幕右侧边缘扫入,然后点击“搜索”.      如果您正在使用鼠标,请指向屏幕右下角,然后单击“搜索”.  在搜索框内输入 Windows 更新 ...

  9. Spring注入日期到bean属性-CustomDateEditor

    这一个Spring例子向您展示如何为bean属性注入一个“日期”. package com.yiibai.common; import java.util.Date; public class Cus ...

  10. 220V和380V电器设备电流计算方法

    220V和380V电器设备电流计算方法 1)单相电机电流=功率/(电压*功率因数*效率): 2)三相电机电流=功率/(1.732*电压*功率因数*效率): 3)空载电流为额定电流的30-50%左右: ...