此应用报告包含适用于 AM62x 系列器件的基准测试。
Cortex® and Arm®are reg TMs ofArm Limited (or its subsidiaries) in the US and/or elsewhere.
Other TMs
这些基准测试是在 Cortex®-A53 内核上测量的。有关更新的基准测试,请参阅性能指南部分以及 AM62x Processor SDK 中的 HMI 和 3D 开箱即用演示。基准测试已在 AM62x 处理器上运行,该处理器包含一个四核 64 位 Arm®-Cortex A53 微处理器、一个单核 Arm Cortex-R5F MCU 和一个 Arm Cortex-M4F MCU。评估板的关键参数是 Cortex-A53 内核的 1.2GHz 时钟速度、DDR4 16 位宽和 1600MT/s 速度。
本节介绍 Arm Cortex 处理器内核基准测试,包括合成基准测试,例如 Dhrystone 和 CoreMark-Pro。数学函数基准测试包括线性代数和快速傅里叶变换 (FFT) 等函数。
Dhrystone 基准测试仅适用于内核,并从所有现代处理器的 L1 高速缓存(热缓存)运行。Dhrystone 随时钟速度的增加而线性增加。分数是通过参考 1 MIPS 机器的分数 (1757),对基准测试运行循环所需时间进行归一化来计算的。虽然该基准测试于 1984 年由 Reinhold P. Weicker 引入,但 Dhrystone 至今仍用于嵌入式处理。由于分数随时钟速度的增加而线性增加,通常会进一步归一化为 DMIPS/MHz/内核。对于标准 Arm 内核,在相同的编译器和标志中,DMIPS/MHz 将是相同的。Dhrystone 是一个单核基准测试,有时会使用多个简单内核并行运行此基准测试。具有四个 A53 内核的 AM62 在 1.2GHz 下的汇总分数为 14228DMIPS。
Cortex-A53 (1.2GHz) | |
---|---|
Dhrystones | 6250000 |
DMIPS(1) | 3557 |
每个核心的 DMIPS/MHz | 3 |
编译器和标志 | GCC 9.2 -march=ARMv8 -O3 |
操作系统 | Linux 5.10 (2021 LTS) |
CoreMark-Pro 测试了整个处理器,增加了对多核技术,整数和浮点工作负载组合以及用于利用更大存储子系统的数据集的全面支持。CoreMark-Pro 的组件利用各种级别的高速缓存,数据存储器容量高达 3MB。许多测试会使用 pthread,以便允许利用多个内核,但并非所有测试均如此。分数随内核数量的增加而增加,但总是低于线性增加(双核分数小于单核分数的 2 倍)。
不得将 CoreMark-Pro 与更小巧的 CoreMark 混淆,后者和 Dhrystone 一样,都是包含在现代处理器 L1 高速缓存中的微基准。
Arm Cortex-A53 | 内核性能比率(1) | |
---|---|---|
单核 | 795 | 1.00 |
双核 | 1330 | 1.67 |
四核 | 2030 | 2.55 |
与单核 CoreMark®-Pro 结果相比
快速傅里叶变换 (FFT) 是许多应用中的一个多重累加的重构模块。1024 点单精度浮点复数 FFT 执行时间如表 2-3 所示。Arm Cortex-A53 基准测试使用了 Ne10 库,该库利用了 Cortex A53 的高级 SIMD 或 NEON 加速。
1024pt 浮点 CFFT 执行时间(单线程/内核) | |
---|---|
Arm Cortex-A53 (1.2GHz) | 23 微秒 |
AM62x Linux SDK 包括一个可供应用程序使用的 openssl 加密库。该库还可被一些 HTTPS、ssh 和 netconf 实现来用于访问经优化的加密函数。为了获得优异的性能,需要使用 EVP 库提供的较高级别的接口。表 2-4 展示了在 AM62x 上运行的一组选定软件性能基准测试结果。运行的命令是 openssl speed -elapsed -evp <cryptographic mode> -multi 4。这利用了全部四个 A53 内核,每个内核使用两个线程。
帧大小(字节) | ||||||
---|---|---|---|---|---|---|
16 | 64 | 256 | 1024 | 8192 | 16384 | |
aes-128-gcm | 2080 | 5944 | 11300 | 14772 | 16084 | 16128 |
aes-256-gcm | 1956 | 5453 | 9966 | 12684 | 13668 | 13720 |
aes-128-ctr | 215 | 481 | 1815 | 6181 | 21258 | 25584 |
sha256 | 14 | 58 | 227 | 868 | 5144 | 8193 |
sha512 | 14 | 57 | 203 | 655 | 1717 | 1932 |
chacha20-poly1305 | 1196 | 2550 | 5101 | 5824 | 6154 | 6173 |
此外,公钥加密的四个 A53 内核基准测试如表 2-5 中所示。使用命令 openssl speed -elapsed <algorithm> -multi 4 可运行测试。
RSA | 大小 | 512 | 1024 | 2048 | 3072 | 4096 |
签名/秒 | 13469 | 2892 | 443 | 146 | 65 | |
验证/秒 | 166015 | 57372 | 16521 | 7646 | 4382 | |
ECDSA | 曲线 | nistp224 | nistp256 | nistp521 | nistk233 | nistb233 |
签名/秒 | 927 | 4075 | 185 | 706 | 690 | |
验证/秒 | 1468 | 6735 | 260 | 378 | 370 |
本节包含涉及 Arm Cortex 处理器内核和片上系统 (SoC) 存储器系统的基准测试。包括合成基准测试,例如 LMbench。
STREAM 和 LMBench 的子集是用于测量实现的存储器带宽和软件延迟的基准测试程序。
LMBench 是一套适用于处理器内核和操作系统基元的微基准测试工具。存储器带宽和延迟相关测试非常适用于现代嵌入式处理器。每次运行的结果略有不同 (<10%)。
LMBench 基准测试 bw_mem 测量实现的存储器复制性能。参数 cp 复制数组,bcopy 参数使用运行时 glibc 版本的 memcpy() 标准函数。利用 SIMD 等实现更高性能,在实施高度优化的基础上进行 glibc 实践。等于或小于给定级别高速缓存大小的 size 参数可测量进行典型的 for 循环或 memcpy() type 操作的软件可实现的存储器带宽。通常用于计算外部存储器带宽。带宽根据字节读写(每读写 1 字节计为 1)计算,结果约为 STREAM 复制结果的一半。表 3-1 展示了相对于理论线速测得的带宽和效率。使用的线速计算方式为:DDR MT/s x 宽度 ÷ 2(构成复制的读取和写入均会消耗总线)。此基准测试还允许利用 -P 参数创建并行线程。要获得更大的多核存储器带宽,请创建与操作系统可用内核相同数量的线程,对于 AM62x Linux 来说,为 4 个 (-P 4)。
说明 | Arm Cortex-A53,DDR4-1600MT/s-16 位 | DDR4 效率 | |
---|---|---|---|
bw_mem -P 2 8M bcopy | 四核,glibc memcpy | 1222MB/s | 76% |
bw_mem 8M bcopy | 单核,glibc memcpy | 887MB/s | 55% |
bw_mem -P 4 8M cp | 四核,内联复制循环 | 731MB/s | 46% |
bw_mem 8M cp | 单核,内联复制循环 | 590MB/s | 37% |
LMBench 基准测试 lat_mem_rd 用于测量观察到的外部存储器(AM62x 上的 DDR4 和 LPDDR4)的存储器访问延迟和高速缓存命中率。两个参数分别为事务大小(表 3-2 中的 64)和读取跨度 (512)。选择这两个数值来测量高速缓存和外部存储器的延迟,而不是处理器数据预取器或其他推测性执行的延迟。存取模式可实现预取,但此基准测试特别适用于无法实现预取的存取模式下的相关测量。左列是数据存取模式的大小(单位为兆字节),右侧是往返读取延迟(单位为纳秒)。Arm Cortex-A53 读取延迟概述如下:
DDR4-1600: | LPDDR4-1600: |
|
|
STREAM 是测量数据存储器系统性能的微基准测试,无需重复使用任何数据。STREAM 旨在不命中高速缓存,执行数据预取和推测性存取。STREAM 使用双精度浮点(64 位),但在大多数现代处理器中,存储器访问是瓶颈。四个单项分数包括 copy(复制)、scale(乘常数)、add(数字相加)及 triad(乘法累加)。对于带宽,每读取一个字节计数为 1,每写入一个字节计数为 1,得到的分数是 LMBench 带宽的两倍。表 3-3 展示了相对于理论线速测得的带宽和效率。使用的线速是 DDR MT/s 与宽度的乘积。为了获得总体最大吞吐量,使用命令 stream -M 16M -P 4-N 10,这意味着两个并行线程和 10 次迭代。
DDR4-1600MT/s-16 位带宽 | DDR4-1600MT/s-16 位效率 | |
---|---|---|
copy | 2448MB/s | 77% |
scale | 2372MB/s | 74% |
add | 2491MB/s | 78% |
triad | 2493MB/s | 78% |
本节提供从 AM62x 中的处理器到系统中的各种存储器目标的往返读取延迟测量。测量是使用裸机芯片验证测试在 AM62x 平台上进行的。测试在 A53、M4F 和 R5F 处理器上执行,并使用 LPDDR4。每个测试包括一个由 8192 次迭代组成的循环,可读取总计 32KiB 的数据。每次访问的周期数被计数并除以相应的处理器时钟频率以获得延迟时间。表 3-4 展示了平均延迟结果。
存储器 | Arm-Cortex-A53 (平均 ns) | Arm-Cortex-R5F WKUP (平均 ns) | Arm-Cortex-M4F MCU(平均 ns) |
---|---|---|---|
LPDDR4 | 219 | 228 | 350 |
OCSRAM MAIN | 127 | 70 | 170 |
R5F WKUP TCM | 104 | 2.5 | 180 |
M4F MCU TCM | 263 | 233 | 10 |
测试在以下条件下完成:0.75V VDD_CORE、1.25Hz A53 内核、400MHz R5F 内核、400MHz M4F 内核和 1600MT/s LPDDR4。紧耦合存储器,即 TCM,是直接与 ARM Cortex 内核相连的 RAM。ARM 架构提供本地内部低延迟路径,还允许通过 SoC 总线基础设施对外部存储器进行访问。
本节提供了使用正常容量 (NC) UDMA 通道进行 DDR 至 DDR 块复制的测试结果和观察结论。有关详细信息,请参阅表 3-5。
说明 | |
---|---|
正常容量 (NC) | 提供了基本数量的描述符和 TR 预取以及 Tx/Rx 控制和数据缓冲。非常适用于与片上存储器和 DDR 通信的大多数外设传输。缓冲区大小为 192B 时,此 FIFO 深度允许每个传输周期进行 3 次数据突发为 64B 的读取事务。 |
以下测量结果是通过使用 DDR 的 A53 上的裸机芯片验证测试收集的。传输描述符和环位于 DDR 中。测试在以下条件下完成:0.75V VDD_CORE、1.25Hz A53 内核和 1600MT/s LPDDR4。传输尺寸范围为 1KiB 至 512KiB。
缓冲区大小 (KiB) | NC 通道带宽 (MiB/s) | NC 通道延迟 (μs) |
---|---|---|
1 | 77.02 | 12.68 |
2 | 143.61 | 13.60 |
4 | 207.45 | 18.83 |
8 | 302.46 | 25.83 |
16 | 360.36 | 43.36 |
32 | 413.03 | 75.66 |
64 | 444.93 | 140.47 |
128 | 461.85 | 270.65 |
256 | 470.79 | 531.02 |
512 | 475.26 | 1052.05 |
NC UDMA 通道在缓冲区大小高达 512KiB 时的传输容量和延迟如表 3-6 所示。
AM62x 上 3D 图形内核的规格如表 4-1 所示。
供应商 | Imagination Technologies |
---|---|
GPU 内核 | AXE-1-16M |
像素填充率(百万像素/秒) | 500 |
GFLOPS | 8 |
3D API | OpenGL ES 3.1 |