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