NXP iMX8QM多核应用开发性能测试

By Toradex 胡珊逢

1). 简介

NXP发布的i.MX8处理器具有多种规格,最高配置的i.MX8QM具有双核Cortex-A72和四核Cortex-A53。这种大小核组合的处理器,为用户带来更大的性能灵活性,利用高性能的大核快速完成运算,低性能小核则提供优化的功耗表现。下面我们将以Apalis iMX8QM核心板为例,介绍如何利用这种特性,并观察功耗差异。



2). 单核性能测试

a). Cortex-A72最高时钟1.6GHz,Cortex-A53最高为1.2GHz。Cortex-A72和Cortex-A53在架构也上存在很大的差异,虽然同属于ARMv8.0-A,但是在流水线深度、乱序执行、缓存等特性上却有所不同,从而带来处理性能的差异。理论上Cortex-A72性能会高于Cortex-A53。


b). 为了测试在Cortex-A72和Cortex-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 cpufreq@vger.kernel.org, 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 0到CPU 5,其中CPU 0~CPU 3为Cortex-A53,CPU 4~CPU 5为Cortex-A72。


例如0x30表示允许使用两个A72核心,0x10表示只使用一个A72,同样0x01表示只使用一个A53,而0x3F则表示使用所有的处理器核心。需要注意的是,这里是指用taskset工具指定某一个程序所使用的处理器核心,不被指定的处理器核心仍处于工作状态,只是不用其来运行该程序。因此taskset并不能启到关闭处理器核心的功能。


c). 我们将配合编译好的encode-flac和taskset工具来观察i.MX8QM不同核心的计算机能力以及功耗的差异。


在空闲状态下,我们通过功率计查看Ixora底板和Apalis iMX8QM 模块以及电源适配器的功耗(本文测试仅连接以太网和调试串口和散热器风扇,不连接包括显示器在内的其他设备)为7.6W。


./ 在一个A53内核上运行

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

root@apalis-imx8:~# 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。

上图我们看到,单线程的encode-flac仅在一个A53处理器上满负荷运行。


./ 在一个A72内核上运行

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

root@apalis-imx8:~# 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。

上图我们看到,单线程的encode-flac仅在一个A72处理器上满负荷运行。


单核性能和功耗对比



3). 多核性能测试

a). 我们将使用一个简单C++全局光照渲染器smallpt在多个CPU上借助OpenMP实现多线程运算,测量在不同核心上完成渲染所需要的时间以及功耗。通过下面命令编译smallpt

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

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

$ make

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


b). 为了充分释放所有核心的计算能力,我们将所有的CPU都配置为可用的最高时钟,这时候请务必使用良好的散热器件为处理器降温。

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

root@apalis-imx8:~# echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

root@apalis-imx8:~# echo performance > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor

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


此时空闲状态下的Ixora底板和Apalis iMX8QM 模块以及电源适配器的功耗为7.9W。


./ 在4个A53同时运行

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

root@apalis-imx8:~# taskset 0x0f time ./smallpt 100

Rendering (100 spp) 100.00%

real  3m 19.25s

user 13m 9.33s

sys    0m 0.09s

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


功耗为8.9W,耗时3分19秒。上图中看到4个A53核心处于满负荷状态。


./ 在2个A72同时运行

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

root@apalis-imx8:~# taskset 0x30 time ./smallpt 100

Rendering (100 spp) 100.00%

real  2m 58.71s

user 5m 56.20s

sys    0m 0.03s

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


功耗为10.3W,耗时2分58秒。上图中看到2个A72核心处于满负荷状态。


./ 在4个A53和2个A72同时运行

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

root@apalis-imx8:~# taskset 0x3f time ./smallpt 100

Rendering (100 spp) 100.00%

real  1m34.648s

user 9m20.123s

sys    0m0.127s

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


功耗为11.4W,耗时1分34秒。上图中看到2个A72和4个A53核心处于均满负荷状态。


多核性能和功耗对比



4). 总结

Apalis iMX8QM计算机模块能够利用A72核心强劲的计算能力迅速完成运算任务,甚至是调用iMX8QM所有6个核心发挥其最大的CPU计算能力,而在A53核心上则能够以较低的功耗执行,这种组合方式为嵌入式产品在功耗和性能上提供了灵活的选择。除此之外Apalis iMX8QM还具有DSP、双核GPU以及Cortex-M4,能够借助DSP指令、OpenCL并行计算带来更多的算力,同时M4还可以以更低的功耗运行。本次测试采用了Toradex Linux v3.0b2 BSP,随着模块本身和软件的进一步完善,该模块会有更佳的表现。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,386评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,142评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,704评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,702评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,716评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,573评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,314评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,230评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,680评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,873评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,991评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,706评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,329评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,910评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,038评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,158评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,941评论 2 355

推荐阅读更多精彩内容

  • 超低功耗 本文作为《LPWAN市场报告》中的一部分,继续上篇 在LPWAN的应用中主要是以LPWAN模块使用为主,...
    芯资讯阅读 1,561评论 1 1
  • 类别 ARM Cortex系列处理器核包括Cortex-A系列(高性能,具备MMU,可以运行如Linux、Andr...
    gbmaotai阅读 3,292评论 0 0
  • 最近,各大芯片厂商都公布了专为明年移动设备设计的新一代旗舰级一体式 SoC 系统级移动芯片。其中,高通正式推出了 ...
    8a4ae3a3f4ed阅读 504评论 0 0
  • 21度母疗愈禅舞是由心而发的身心的舞动,是运用心理学、音乐学,美术学,钵疗……舞动艺术精华的凝结。禅舞用肢体舞动再...
    Mandy曼翎阅读 742评论 0 0
  • 以为天很宽,地很阔。以为只要努力,就会结果。以为待人真诚,就会春暖花开。以为舍生忘死而战,就会荣耀光芒。以为悬壶济...
    一明道心阅读 312评论 4 7