那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于RZ/G2L OpenCL應用運行方法介紹

瑞薩MCU小百科 ? 來源:瑞薩嵌入式小百科 ? 2024-02-19 12:16 ? 次閱讀

關于OpenCL

OpenCL是Open Computing Language的簡寫,目前已經形成了標準,是跨平臺的,通常由圖形處理器GPU)提供硬件層面支持。OpenCL的設計目的,主要是為了將GPU強大的浮點和并行運算能力,以及能與CPU協作的能力,從軟件層面開放給用戶使用。用法跟OpenGL類似。

通常情況下,對同一組數據進行并行運算,使用OpenCL比執行普通CPU端程序,要快很多倍。

站在應用軟件的角度,OpenCL簡單來說,就是一組API函數名稱操作系統通常會提供具體實現庫,以及運行于GPU之上的程序(OpenCL中稱為kernel),文件后綴通常為.cl,基于OpenCL語法編寫的程序,由CPU加載編譯后,傳輸到OpenCL設備的內存供GPU執行。各個圖形處理器廠商,針對自己的具體芯片,在GPU驅動程序中適配這些API,用戶就可以基于這些標準的API進行相關的OpenCL應用程序開發。

需要指出的是:跟OpenGL的shader程序類似,OpenCL的kernel程序也是具體GPU芯片相關的,不能跨GPU型號使用。同一段代碼,可能換了GPU型號之后就不能編譯通過,第一個GPU使用的二進制kernel程序,不應該直接加載到第二個不同型號GPU上面使用。

OpenCL應用運行框圖

5e317f46-cedc-11ee-a297-92fbcf53809c.png

OpenCL設備內部,通常會有大量的并行計算單元(上圖中的CU),每個計算單元內部又包含有若干個處理單元(圖中的PE),PE可以同時并行地執行相同OpenCL代碼,從而實現高性能并行運算,具體CU以及PE數量已經運算性能,跟具體GPU廠商的具體GPU型號有關。

OpenCL代碼被CPU加載到設備內存之后,CPU通過相應的OpenCL API來啟動OpenCL設備的運行,同時還能查詢執行狀態,實現CPU-GPU之間的同步,設備關閉等操作。

RZ/G2L上的OpenCL支持

RZ/G2L微處理器配備Cortex-A55(1.2 GHz)CPU、16 位 DDR3L/DDR4接口、帶Arm Mali-G31的3D圖形加速引擎以及視頻編解碼器(H.264),如下圖紅色框所示。此外,這款微處理器還配備有大量接口,如攝像頭輸入、顯示輸出、USB 2.0和千兆以太網,因此特別適用于入門級工業人機界面(HMI)和具有視頻功能的嵌入式設備等應用。

此GPU支持2D/3D圖形,以及通用GPU運算(GPGPU)。具體支持如下標準API:

● OpenCL 2.0 Full Profile

●OpenGL ES 1.1 2.0 3.0 3.1 and 3.2

5e4061dc-cedc-11ee-a297-92fbcf53809c.png

RZ/G2L上的OpenCL Library及其使用

RZ/G2L的VLP開發環境里面有提供Linux版OpenCL Library(需要從官網另外下載)以及對應頭文件。

RZ/G2L的OpenCL庫支持3種運行模式:

● CPU Mode:并行運算在CPU端完成,應用程序仍然需要調用OpenCL庫API,OpenCL庫內部會基于ARMv8 NEON SIMD指令集做針對性優化。

● GPU Mode:并行運行在GPU端完成,驅動程序會充分利用OpenCL設備的PE單元,提示并行性和運算效率。

● BOTH Mode:上面兩種模式的結合。

通常情況下,BOTH Mode能提供最佳性能,典型做法是將待處理的并行數據,平均分成連續的兩部分,CPU和GPU各自處理一半的數據(BOTH模式)。結合CPU模式,是因為CPU端有高主頻,大Cache,高DDR帶寬等優勢。由于GPU端PE的特殊性,對待處理的數據,要求是,所有輸入數據運算方法相同,沒有依賴性,比如:兩組輸入數組A[1024]和B[1024]分別存放有1024字節的float類型數據,將A和B同序號的數據分別做乘法,結果保存于浮點數組C[1024],即:

C[0] = A[0] * B[0];

C[1] = A[1] * B[1];

… …

因為所有PE只能并行執行相同的kernel程序。

OpenCL庫的使用,主要分為如下步驟:

●獲取平臺信息

●獲取設備信息

●創建上下文

●創建命令隊列

●創建和編譯kernel程序

●創建kernel對象

●創建內存對象

●設置kernel參數

●執行kernel程序

●同步操作

●獲取處理結果

●清理資源

部分OpenCL API介紹

OpenCL API通常以 cl_ 開頭,很容易識別。

獲取平臺信息

cl_int clGetPlatformIDs(cl_uint num_entries,

cl_platform_id *platforms,

cl_uint *num_platforms);

這個函數是OpenCL應用程序必須調用的第一個API,用來獲取可使用的Platform ID數組,當平臺數未知時,第一次調用clGetPlatformIDs函數獲取平臺數量,第二次調用clGetPlatformIDs函數獲取平臺對象,供后續API使用。

cl_int clGetPlatformInfo(cl_platform_id platform,

cl_platform_info param_name,

size_t param_value_size,

void *param_value,

size_t *param_value_size_ret);

用于獲取OpenCL的Profile信息、版本、平臺制造商、支持的擴展等。

獲取設備信息

cl_int clGetDeviceIDs(cl_platform_id_platform,

cl_device_type device_type,

cl_uint num_entries,

cl_device_id *devices,

cl_uint *num_devices);

這個API用來獲取平臺可使用的設備對象數組。可用于獲取CPU/GPU/專用加速器等OpenCL設備數量等。

cl_int clGetDeviceInfo(cl_device_id device,

cl_device_info param_name,

size_t param_value_size,

void *param_value,

size_t *param_value_size_ret);

用于獲取選定設備相關信息,如并行計算單元最大數量、設備端全局內存大小等信息。

由于OpenCL API涉及的內容比較多,另一方面,OpenCL相關標準已經很成熟,網上有很多的示例資源可供參考,瑞薩也可以提供MPU上的OpenCL例子給到客戶,剩下的OpenCL應用程序步驟相關API,就不進一步介紹了。





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微處理器
    +關注

    關注

    11

    文章

    2274

    瀏覽量

    82778
  • 圖形處理器
    +關注

    關注

    0

    文章

    201

    瀏覽量

    25669
  • 視頻編解碼器

    關注

    0

    文章

    18

    瀏覽量

    11624
  • OpenCL
    +關注

    關注

    2

    文章

    48

    瀏覽量

    33385
  • GPU芯片
    +關注

    關注

    1

    文章

    303

    瀏覽量

    5898

原文標題:RZ/G2L OpenCL使用介紹

文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    RZ/G2L Linux系統如何添加新的內核模塊

    RZ/G2L Linux系統的鏡像基于yocto構建,本篇介紹如何添加新的內核模塊。
    的頭像 發表于 01-04 12:19 ?1859次閱讀
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b> Linux系統如何添加新的內核模塊

    瑞薩RZ/G2L串口SCI的使用(上)

    瑞薩RZ/G2L的串口簡稱SCI,全稱Serial Communication Interface。
    的頭像 發表于 01-17 12:19 ?1627次閱讀
    瑞薩<b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>串口SCI的使用(上)

    【飛凌RZ/G2L開發板試用體驗】+01.開箱(zmj)

    【飛凌RZ/G2L開發板試用體驗】+01.開箱(zmj)感謝飛凌嵌入式和電子發燒友網提供的此次試用機會,可以親身體驗飛凌RZ/G2L開發板的魅力。前言:具備視頻處理功能的嵌入式電子設備
    發表于 08-28 19:13

    瑞薩G2L系列核心板-RZ/G2L處理器簡介

    RZ/G2L是瑞薩在智能工控領域的一款高性能、超高效處理器。RZ/G2L采用Arm Cortex-A55內核,運行頻率高達1.2GHz,內部
    發表于 06-09 11:54 ?980次閱讀

    RZ/G2LRZ/V2L SMARC 模塊板用戶手冊:硬件

    RZ/G2LRZ/V2L SMARC 模塊板用戶手冊:硬件
    發表于 01-09 19:00 ?4次下載
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>、<b class='flag-5'>RZ</b>/V<b class='flag-5'>2L</b> SMARC 模塊板用戶手冊:硬件

    RZ/G2LRZ/G2LC 用戶手冊概述

    RZ/G2LRZ/G2LC 用戶手冊概述
    發表于 01-10 19:04 ?6次下載
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>、<b class='flag-5'>RZ</b>/<b class='flag-5'>G2</b>LC 用戶手冊概述

    米爾瑞薩RZ/G2L開發板-初體驗

    介紹米爾RZ/G2L開發板
    的頭像 發表于 05-15 09:10 ?1055次閱讀
    米爾瑞薩<b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>開發板-初體驗

    RZ G2L核心板以太網接口性能測試

    武漢萬象奧科RZ/G2L核心板支持2路千兆以太網接口,評估測試RZ/G2L雙網口實際傳輸速率。
    的頭像 發表于 03-11 09:47 ?1104次閱讀
    <b class='flag-5'>RZ</b> <b class='flag-5'>G2L</b>核心板以太網接口性能測試

    RZ/G2LRZ/V2L SMARC 模塊板用戶手冊:硬件

    RZ/G2LRZ/V2L SMARC 模塊板用戶手冊:硬件
    發表于 06-30 18:38 ?1次下載
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>、<b class='flag-5'>RZ</b>/V<b class='flag-5'>2L</b> SMARC 模塊板用戶手冊:硬件

    RZ/G2LRZ/G2LC 用戶手冊概述

    RZ/G2LRZ/G2LC 用戶手冊概述
    發表于 06-30 19:47 ?6次下載
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>、<b class='flag-5'>RZ</b>/<b class='flag-5'>G2</b>LC 用戶手冊概述

    RZ/G2L核心板eMMC測試

    武漢萬象奧科RZ/G2L核心板支持eMMC存儲,可選8GB~64GB。 評估測試RZ/G2L核心板存儲在默認8GB配置下eMMC性能(讀寫速率)。
    的頭像 發表于 03-02 17:18 ?2938次閱讀
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>核心板eMMC測試

    RZ/G2L開發板使用指南(上)

    如果需要評估RZ/G2L產品的各項功能,RZ/G2L評估板是最合適的平臺。
    的頭像 發表于 11-03 12:19 ?1237次閱讀
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>開發板使用指南(上)

    RZ/G2L RZ/G2LC RZ/G2UL RZ/G3S靈活軟件包應用說明

    電子發燒友網站提供《RZ/G2L RZ/G2LC RZ/G2UL
    發表于 01-14 10:46 ?1次下載
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b> <b class='flag-5'>RZ</b>/<b class='flag-5'>G2</b>LC <b class='flag-5'>RZ</b>/<b class='flag-5'>G2</b>UL <b class='flag-5'>RZ</b>/<b class='flag-5'>G</b>3S靈活軟件包應用說明

    RZ/G2L串口SCI的使用(上)

    RZ/G2L串口SCI的使用
    的頭像 發表于 07-25 08:06 ?559次閱讀
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>串口SCI的使用(上)

    RZ/G2L串口SCI的使用(下)

    RZ/G2L串口SCI的使用
    的頭像 發表于 08-03 08:06 ?566次閱讀
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>串口SCI的使用(下)
    封丘县| 真人百家乐平台下载| 德州扑克几副牌| 全迅网百家乐官网的玩法技巧和规则| 大发888 方管下载| 有钱人百家乐官网的玩法技巧和规则 | 百家乐官网英皇娱乐城| 威尼斯人娱乐城真钱游戏| 百家乐官网论坛香港马会| 大发888真钱游戏祖比| 百家乐官网网上赌场| 投注平台网| 百家乐翻天粤语qvod| 百家乐官网代理在线游戏可信吗网上哪家平台信誉好安全 | 中信娱乐城| 百家乐神算子| 百家乐官网桌现货| 大发888登陆网页游戏| 至尊百家乐官网| 岳阳市| 百家乐款| 伟德百家乐下载| 百家乐官网娱乐城新闻| 大发888真人游戏平台| 澳门百家乐指数| 百家乐官网公试打法| 新濠百家乐的玩法技巧和规则| 网上赌百家乐官网的玩法技巧和规则 | 百家乐官网定位膽技巧| 大发888官网df888| 百利宫百家乐现金网| 澳门百家乐官网哪家信誉最好 | 金榜百家乐官网的玩法技巧和规则 | 免费百家乐官网预测软件| 百家乐官网节目视频| 威尼斯人娱乐城网站| 百家乐资金注码| 赌场百家乐官网试玩| 足球心水论坛| 百家乐路单生| 百家乐视频一下|