ARM嵌入式系統上OpenCL測試

2021-08-16 01:56:44 字數 2207 閱讀 1156

by toradex giovanni bauermeister

1). 簡介

相比曾經,如今科技裝置對處理效能和速度要求越來越高。為了應對這種技術需求,許多公司發明了不少方法來獲得更好的處理效能。例如蘋果公司,發明了 open computing language (opencl)。2023年6月,蘋果公司向 khronos group 提交了 opencl 工作建議。歷經五個月的研發,opencl 1.0 於 2008 年 11 月發布。

opencl 是為個人電腦、伺服器、移動裝置以及嵌入式裝置的多核系統提供並行程式設計開發的底層 api。opencl的程式語言類似於 c 語言。其可以用於包含 cpu、gpu 以及來自主流**商如nxp®、nvidia®、intel®、amd、ibm 等的處理器的異構平台。opencl 旨在提高應用軟體如遊戲、娛樂以及科研和醫療軟體的執行速度和響應。

在本博文中,我們使用 toradex公司基於nxp imx6q soc的計算機模組產品apalis imx6q 來測試 opencl,對比兩個應用 - 乙個執行在 gpu 上,另乙個則在 cpu。最後我們將分享本次測試的結果。

2). 測試硬體平台

toradex 的 apalis imx6q 計算機模組採用 nxp 的 imx6 四核處理器,其提供的處理效能特別適合於多**應用。該處理器具有 4 個 arm® cortex®-a9 核,最高主頻為 800mhz。除了處理器,apalis 系統模組還具有高達 2gb ddr3 ram(64bit)和 4gb emmc flash。

除了具備出色的圖形和多**處理能力,該處理器還具有 vivante gc2000 3d gpu,其能夠支援 opencl ep (embedded profile)。因此,我們能充分夠利用 i.mx6q gpu 處理能力。

3). toradex embedded linux 映象中新增 opencl

我們假設你已經具有能夠編譯 apalis imx6 映象的 openembedded 編譯環境。你可以參考toradex開發者中心 openembedded (core) 文章。

4). gpu 和 cpu **

我們使用數列求和應用作為基本的演示例程。第一部分**執行在 gpu 上,第二部分則在 cpu 上。應用執行完畢後列印其所消耗的時間。使用 opencl 所需的標頭檔案是 cl.h,位於檔案系統的 /usr/include/cl 目錄。鏈結程式所需的庫檔案是 libgal.so 和 libopencl.so,位於 /usr/lib 目錄。

為了計算消耗的時間,我們建立帶分析功能的佇列,在結束的時候獲取分析的結果。

5). 交叉編譯應用

a). rootfs_dir -> apalis imx6 檔案系統路徑

c). toolchain -> 交叉編譯工具的路徑

在應用所在的目錄中保持 makefile 檔案,然後執行 make。 最後將編譯生成的檔案複製到 apalis imx6 開發板上。

6). 在執行兩個應用程式後,我們得到以下結果:

### processor time

execution time in miliseconds = 778.999 ms

execution time in seconds = 0.779 s

### gpu time

execution time in milliseconds = 12.324 ms

execution time in seconds = 0.012 s

根據以上結果,我們可以很清楚地看到在 apalis imx6q gpu 上使用 opencl 能夠加速佇列求和運算。

7). 總結

使用者想要使用 apalis imx6q gpu ,除了其他的方法,還可以使用 opencl 提高計算效能。正如本博文所描述,借助 opencl,可以在不同裝置從圖形顯示卡到超級計算機以及嵌入式裝置,執行**。使用者還可以進一步結合,例如在 opencv 中使用 opencl 提高計算機視覺的效能。這個演示可以作為開發無圖形介面應用的例程。參考

嵌入式系統 概述 ARM指令

嵌入式系統是以應用為中心,以計算機技術為基礎,採用可裁剪軟硬體,適用於對功能 可靠性 成本 體積 功耗等有嚴格要求的專用計算機系統。它一般由嵌入式微處理器 外圍硬體裝置 嵌入式作業系統及使用者應用程式四部分組成。簡單說,網咖裡的電腦是通用計算機,而 豆漿機等內含的都有嵌入式系統。嵌入式系統的特點是功...

ARM學習筆記 嵌入式系統

嵌入式系統是 1 以應用為中心,以計算機技術為基礎 2 軟硬體可裁減,3 對功能 可靠性 成本 體積 功耗有嚴格要求的專用計算機系統。1 嵌入式應用領域 通訊 對講機 醫療 血壓儀 智慧型家居 遊戲機 軍事 頭盔 2 什麼樣的結構讓嵌入式系統具備軟硬體可裁減的特點 硬體 嵌入式處理器 arm x86...

arm嵌入式系統執行概述

一 嵌入式系統中的儲存對映 在arm體系結構中,系統復位後將跳轉到位址0x00x處執行,該處存放的是復位異常中斷的中斷向量。對於嵌入式系統來說,在系統復位時 ram中是不存在 和資料的。因此在系統復位時,位址0x00處應為rom,即系統復位後應該首先從rom開始執行。這時,根據系統在其後執行過程中地...