- 相關(guān)推薦
嵌入式系統(tǒng)安裝配置
嵌入式系統(tǒng)產(chǎn)品日臻完善,并在全世界各行業(yè)得到廣泛應(yīng)用。嵌入式系統(tǒng)產(chǎn)品的研制和應(yīng)用已經(jīng)成為我國信息化帶動工業(yè)化、工業(yè)化促進(jìn)信息化發(fā)展的新的國民經(jīng)濟(jì)增長點(diǎn)。下面是小編整理的關(guān)于嵌入式系統(tǒng)安裝配置,歡迎大家參考!
ARM嵌入式系統(tǒng)上OpenCL測試
1). 簡介
相比曾經(jīng),如今科技設(shè)備對處理性能和速度要求越來越高。為了應(yīng)對這種技術(shù)需求,許多公司發(fā)明了不少方法來獲得更好的處理性能。例如蘋果公司,發(fā)明了 Open Computing Language (OpenCL)。2008年6月,蘋果公司向Khronos Group 提交了 OpenCL 工作建議。歷經(jīng)五個月的研發(fā),OpenCL 1.0 于 2008 年 11 月發(fā)布。
OpenCL 是為個人電腦、服務(wù)器、移動設(shè)備以及嵌入式設(shè)備的多核系統(tǒng)提供并行編程開發(fā)的底層 API。OpenCL 的編程語言類似于 C 語言。其可以用于包含 CPU、GPU 以及來自主流制造商如 NXP®、NVIDIA®、Intel®、AMD、IBM 等的處理器的異構(gòu)平臺。OpenCL 旨在提高應(yīng)用軟件如游戲、娛樂以及科研和醫(yī)療軟件的運(yùn)行速度和響應(yīng)。
在本博文中,我們使用Toradex公司基于NXP iMX6QSoC的計算機(jī)模塊產(chǎn)品ApalisiMX6Q 來測試 OpenCL,對比兩個應(yīng)用 - 一個運(yùn)行在 GPU 上,另一個則在 CPU。最后我們將分享本次測試的結(jié)果。
2). 測試硬件平臺
Toradex 的 Apalis iMX6Q 計算機(jī)模塊采用 NXP 的 iMX6 四核處理器,其提供的處理性能特別適合于多媒體應(yīng)用。該處理器具有 4 個 ARM® Cortex®-A9 核,最高主頻為 800MHz。除了處理器,Apalis 系統(tǒng)模塊還具有高達(dá) 2GB DDR3 RAM(64bit)和 4GB eMMC Flash。
除了具備出色的圖形和多媒體處理能力,該處理器還具有 Vivante GC2000 3D GPU,其能夠支持 OpenCL EP (Embedded Profile)。因此,我們能充分夠利用 i.MX6QGPU 處理能力。
3). Toradex Embedded Linux 鏡像中添加 OpenCL
我們假設(shè)你已經(jīng)具有能夠編譯 Apalis iMX6 鏡像的 OpenEmbedded 編譯環(huán)境。你可以參考Toradex開發(fā)者中心OpenEmbedded(core) 文章。
4). GPU 和CPU 代碼
我們使用數(shù)列求和應(yīng)用作為基本的演示例程。第一部分代碼運(yùn)行在 GPU 上,第二部分則在 CPU 上。應(yīng)用執(zhí)行完畢后打印其所消耗的時間。使用 OpenCL 所需的頭文件是 cl.h,位于文件系統(tǒng)的 /usr/include/CL 目錄。鏈接程序所需的庫文件是 libGAL.so 和 libOpenCL.so,位于 /usr/lib 目錄。
為了計算消耗的時間,我們創(chuàng)建帶分析功能的隊列,在結(jié)束的時候獲取分析的結(jié)果。
OpenCL 代碼見如下GitHub鏈接:
https://github.com/giobauermeister/OpenCL-test-apps/tree/master/cl_sample_timer
CPU 代碼是簡單的 C 程序,和上面一樣計算同樣的隊列求和。為了計算消耗的時間,我們使用 time.h中的庫。代碼見如下鏈接:
https://github.com/giobauermeister/OpenCL-test-apps/tree/master/proc_sample
5). 交叉編譯應(yīng)用
同一個 Makefile 可以用于交叉編譯 GPU 和 CPU 應(yīng)用,如以下面鏈接Makefile為例,不過你需要注意下面的三個變量。根據(jù)你的系統(tǒng)做相應(yīng)的調(diào)整:
https://github.com/giobauermeister/OpenCL-test-apps/blob/master/proc_sample/Makefile
a). ROOTFS_DIR -> Apalis iMX6 文件系統(tǒng)路徑
b). APPNAME -> 應(yīng)用的名字
c). TOOLCHAIN -> 交叉編譯工具的路徑
在應(yīng)用所在的目錄中保持 Makefile 文件,然后運(yùn)行 make。最后將編譯生成的文件復(fù)制到 Apalis iMX6 開發(fā)板上。
6). 在執(zhí)行兩個應(yīng)用程序后,我們得到以下結(jié)果:
--------------------------------
### 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
--------------------------------
根據(jù)以上結(jié)果,我們可以很清楚地看到在 Apalis iMX6Q GPU 上使用 OpenCL 能夠加速隊列求和運(yùn)算。
7). 總結(jié)
用戶想要使用 Apalis iMX6Q GPU ,除了其他的方法,還可以使用 OpenCL 提高計算性能。正如本博文所描述,借助 OpenCL,可以在不同設(shè)備從圖形顯卡到超級計算機(jī)以及嵌入式設(shè)備,運(yùn)行代碼。用戶還可以進(jìn)一步結(jié)合,例如在 OpenCV 中使用 OpenCL 提高計算機(jī)視覺的性能。這個演示可以作為開發(fā)無圖形界面應(yīng)用的例程。
【嵌入式系統(tǒng)安裝配置】相關(guān)文章:
嵌入式系統(tǒng)基礎(chǔ)知識10-28
嵌入式系統(tǒng)體系結(jié)構(gòu)12-16
嵌入式系統(tǒng)開發(fā)流程01-29
Java用于嵌入式系統(tǒng)的局限03-01
嵌入式培訓(xùn)階段04-20
插花色彩配置10-28