安卓平台下ARM Mali OpenCL編程-GPU資訊檢測

來源:互聯網
上載者:User

標籤:blog   選擇   system   return   操作   gpu   fill   豌豆莢   魅族   

對於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庫。

 1 void *getCLHandle(){   2             void *res = NULL;   3             res = dlopen("/system/vendor/lib/libOpenCL.so",RTLD_LAZY);   /*Adreno GPU */   4             if(res==NULL){   5                 res = dlopen("/system/vendor/lib/libPVROCL.so",RTLD_LAZY);  /*PowerVR GPU*/   6             }   7             if(res==NULL){     8                 res = dlopen("/system/vendor/lib/egl/libGLES_mali.so",RTLD_LAZY);   /*mali GPU*/   9             }  10             if(res==NULL){  11                     printf("No OpenCL library in your Phone ");  12             }  13             return res;  14 }  

如上是我的實現方式。

 

做了一個小的測試軟體,直接在編譯成可執行程式,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資訊檢測(轉)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.