技術文章

當前頁面: 首頁 >技術文章 >NXP iMX8QM多核應用開發性能測試

NXP iMX8QM多核應用開發性能測試

供稿:韜睿(上海)計算機科技有限公司 2019/11/12 12:24:17

0 人氣:2

  • 關鍵詞: imx8 imx8qm nxp
  • 摘要:NXP發布的i.MX8處理器具有多種規格,最高配置的i.MX8QM具有雙核Cortex-A72和四核Cortex-A53。這種大小核組合的處理器,為用戶帶來更大的性能靈活性,利用高性能的大核快速完成運算,低性能小核則提供優化的功耗表現。下面我們將以Apalis iMX8QM核心板為例,介紹如何利用這種特性,并觀察功耗差異

1). 簡介

NXP發布的i.MX8處理器具有多種規格,最高配置的i.MX8QM具有雙核Cortex-A72和四核Cortex-A53。這種大小核組合的處理器,為用戶帶來更大的性能靈活性,利用高性能的大核快速完成運算,低性能小核則提供優化的功耗表現。下面我們將以Apalis iMX8QM核心板為例,介紹如何利用這種特性,并觀察功耗差異。

 

 

2). 單核性能測試

a). Cortex-A72最高時鐘1.6GHzCortex-A53最高為1.2GHzCortex-A72Cortex-A53在架構也上存在很大的差異,雖然同屬于ARMv8.0-A,但是在流水線深度、亂序執行、緩存等特性上卻有所不同,從而帶來處理性能的差異。理論上Cortex-A72性能會高于Cortex-A53

 

b). 為了測試在Cortex-A72Cortex-A53上的單核性能表現我們將使用encode-flac測試壓縮一個WAV音頻文件所消耗的時間。該工具是單線程運行,適合做單核計算測試。

 

./ 首先下載SDK,編譯encode-flac

-------------------------------

$ . environment-setup-aarch64-tdx-linux

$ cd encode-flac

$ ./configure --prefix=~/encode-flac-bin  --host=aarch64-tdx-linux --build=x86_64-linux

$ make

$ make install

-------------------------------

 

./ ~/encode-flac-bin 能找到到本次測試所需的flac程序。Taskset工具能夠指定應用運行在哪個處理器上面。Taskset通過設置CPU掩碼來選擇CPU。我們可以用cpufreq-info 命令查看所有可用的CPU

-------------------------------

# cpufreq-info

cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009

Report errors and bugs to [email protected], please.

analyzing CPU 0:

  driver: imx8-cpufreq

  CPUs which run at the same hardware frequency: 0 1 2 3

  CPUs which need to have their frequency coordinated by software: 0 1 2 3

  maximum transition latency: 61.0 us.

  hardware limits: 600 MHz - 1.20 GHz

  available frequency steps: 600 MHz, 900 MHz, 1.10 GHz, 1.20 GHz

  available cpufreq governors: interactive, conservative, userspace, powersave, ondemand, performance, schedutil

  current policy: frequency should be within 600 MHz and 1.20 GHz.

                  The governor "performance" may decide which speed to use

                  within this range.

  current CPU frequency is 1.20 GHz (asserted by call to hardware).

  cpufreq stats: 600 MHz:59.80%, 900 MHz:0.06%, 1.10 GHz:0.04%, 1.20 GHz:40.11%  (240)

......

analyzing CPU 5:

  driver: imx8-cpufreq

  CPUs which run at the same hardware frequency: 4 5

  CPUs which need to have their frequency coordinated by software: 4 5

  maximum transition latency: 61.0 us.

  hardware limits: 600 MHz - 1.60 GHz

  available frequency steps: 600 MHz, 1.06 GHz, 1.30 GHz, 1.60 GHz

  available cpufreq governors: interactive, conservative, userspace, powersave, ondemand, performance, schedutil

  current policy: frequency should be within 600 MHz and 1.60 GHz.

                  The governor "performance" may decide which speed to use

                  within this range.

  current CPU frequency is 1.60 GHz (asserted by call to hardware).

  cpufreq stats: 600 MHz:69.45%, 1.06 GHz:0.05%, 1.30 GHz:0.01%, 1.60 GHz:30.49%  (153)

-------------------------------

 

./ 這里總共有CPU 0CPU 5,其中CPU 0CPU 3Cortex-A53CPU 4CPU 5Cortex-A72

                                              image001.png

例如0x30表示允許使用兩個A72核心,0x10表示只使用一個A72,同樣0x01表示只使用一個A53,而0x3F則表示使用所有的處理器核心。需要注意的是,這里是指用taskset工具指定某一個程序所使用的處理器核心,不被指定的處理器核心仍處于工作狀態,只是不用其來運行該程序。因此taskset并不能啟到關閉處理器核心的功能。

 

c). 我們將配合編譯好的encode-flactaskset工具來觀察i.MX8QM不同核心的計算機能力以及功耗的差異。

 

在空閑狀態下,我們通過功率計查看Ixora底板和Apalis iMX8QM 模塊以及電源適配器的功耗(本文測試僅連接以太網和調試串口和散熱器風扇,不連接包括顯示器在內的其他設備)為7.6W

 

./ 在一個A53內核上運行

-------------------------------

[email protected]:~# taskset 0x0f time ./flac --best ./Perfect.wav -f -o output 2>&1

flac 1.3.2

Copyright (C) 2000-2009  Josh Coalson, 2011-2016  Xiph.Org Foundation

flac comes with ABSOLUTELY NO WARRANTY.  This is free software, and you are

welcome to redistribute it under certain conditions.  Type `flac' for details.

 

Perfect.wav: WARNING: skipping unknown chunk 'LIST' (use --keep-foreign-metadata to keep)

Perfect.wav: wrote 29478930 bytes, ratio=0.634

real  0m 41.21s

user 0m 40.90s

sys    0m 0.21s

-------------------------------

 

壓縮一個wav文件耗時41.2秒,功耗7.9W

image002.png

上圖我們看到,單線程的encode-flac僅在一個A53處理器上滿負荷運行。

 

./ 在一個A72內核上運行

-------------------------------

[email protected]:~# taskset 0x20 time ./flac --best ./Perfect.wav -f -o output 2>&1

 

flac 1.3.2

Copyright (C) 2000-2009  Josh Coalson, 2011-2016  Xiph.Org Foundation

flac comes with ABSOLUTELY NO WARRANTY.  This is free software, and you are

welcome to redistribute it under certain conditions.  Type `flac' for details.

 

Perfect.wav: WARNING: skipping unknown chunk 'LIST' (use --keep-foreign-metadata to keep)

Perfect.wav: wrote 29478930 bytes, ratio=0.634

real  0m 9.23s

user 0m 9.06s

sys    0m 0.13s

-------------------------------

 

壓縮一個wav文件耗時9.2秒,功耗9.5W

image003.png

上圖我們看到,單線程的encode-flac僅在一個A72處理器上滿負荷運行。

 

image004.png

單核性能和功耗對比

 

 

3). 多核性能測試

a). 我們將使用一個簡單C++全局光照渲染器smallpt在多個CPU上借助OpenMP實現多線程運算,測量在不同核心上完成渲染所需要的時間以及功耗。通過下面命令編譯smallpt

-------------------------------

$ ./configure --prefix=/home/ben/temp_ram  --host=aarch64-tdx-linux --build=x86_64-linux

$ make

-------------------------------

 

b). 為了充分釋放所有核心的計算能力我們將所有的CPU都配置為可用的最高時鐘這時候請務必使用良好的散熱器件為處理器降溫。

-------------------------------

[email protected]:~# echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

[email protected]:~# echo performance > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor

-------------------------------

 

此時空閑狀態下的Ixora底板和Apalis iMX8QM 模塊以及電源適配器的功耗為7.9W

 

./ 4A53同時運行

-------------------------------

[email protected]:~# taskset 0x0f time ./smallpt 100

Rendering (100 spp) 100.00%

real  3m 19.25s

user 13m 9.33s

sys    0m 0.09s

-------------------------------

 

image005.png

功耗為8.9W,耗時319秒。上圖中看到4A53核心處于滿負荷狀態。

 

./ 2A72同時運行

-------------------------------

[email protected]:~# taskset 0x30 time ./smallpt 100

Rendering (100 spp) 100.00%

real  2m 58.71s

user 5m 56.20s

sys    0m 0.03s

-------------------------------

 

image006.png

功耗為10.3W,耗時258秒。上圖中看到2A72核心處于滿負荷狀態。

 

./ 4A532A72同時運行

-------------------------------

[email protected]:~# taskset 0x3f time ./smallpt 100

Rendering (100 spp) 100.00%

real  1m34.648s

user 9m20.123s

sys    0m0.127s

-------------------------------

 

image007.png

功耗為11.4W,耗時134秒。上圖中看到2A724A53核心處于均滿負荷狀態。

 

image008.png

多核性能和功耗對比

 

 

4). 總結

Apalis iMX8QM計算機模塊能夠利用A72核心強勁的計算能力迅速完成運算任務,甚至是調用iMX8QM所有6個核心發揮其最大的CPU計算能力,而在A53核心上則能夠以較低的功耗執行,這種組合方式為嵌入式產品在功耗和性能上提供了靈活的選擇。除此之外Apalis iMX8QM還具有DSP、雙核GPU以及Cortex-M4,能夠借助DSP指令、OpenCL并行計算帶來更多的算力,同時M4還可以以更低的功耗運行。本次測試采用了Toradex Linux v3.0b2 BSP隨著模塊本身和軟件的進一步完善該模塊會有更佳的表現。

審核編輯(王靜)
更多內容請訪問 韜睿(上海)計算機科技有限公司(http://c.gongkong.com/?cid=16879)

手機掃描二維碼分享本頁

工控網APP下載安裝

 

我來評價

評價:
一般
排列三和值南方双彩网