7-Zip 是一个开源的压缩和解压缩工具,具有高压缩比和快速解压缩的特点。除了普通的文件压缩和解压缩功能之外,7-Zip 还提供了基准测试功能,通过压缩和解压缩大型文件来评估系统的处理能力和性能。
7-Zip 提供了一种在不同压缩级别和多线程设置下进行基准测试的方式,用户可以根据自己的需求测试系统性能。即,可以自由选择测试中压缩和解压缩的文件大小,及使用的核心/线程数量。基准测试将提供压缩和解压缩速度等性能指标,以及相应的 MIPS(百万指令每秒)值,用于比较不同配置和硬件的性能。
我们可以在7-Zip https://www.7-cpu.com/ 官网上查看到其他处理的参数。
平台环境
【硬件参数】
- 处理器:算能SG2042 x 1
- 核心数:64核
- L1 Cache:I: 64KB and D:64KB
- L2 Cache: 1MB/Cluster
- L3 Cache: 64MB System Cache
- DRAM: DDR4 16Gx4
【软件环境】
- linux版本: 22.10
- gcc版本: 12.2.0
- 7-Zip版本:16.02
测试项目介绍
Compression (压缩)
压缩速度很大程度上取决于内存 (RAM) 延迟、数据缓存大小/速度和 TLB。测试还会使用到简单的 32 位整数指令:“移位”、“加法”、“乘法”等。另外,CPU 的乱序执行特性对于该测试也很重要。
Decompression (解压缩)
解压速度很大程度上取决于CPU整数运算。该测试最重要的事情是:分支错误预测惩罚(管道长度)和 32 位指令(“乘法”、“移位”、“加法”等)的延迟。解压测试具有大量不可预测的分支。请注意,某些 CPU 架构(例如 32 位 ARM)支持可以有条件执行的指令。因此,在许多情况下,在 LZMA 解压缩代码中,此类 CPU 可以在没有分支(并且没有管道刷新)的情况下工作。与不支持复杂条件执行的其他架构相比,此类 CPU 具有一些速度优势。
测试
# -mmt=32代表执行的线程数
ubuntu@perfxlab:~$ 7z b -mmt=32
在SG2042进行了1/2/4/32/64 线程的7-Zip测试,测试结果如下:
性能对比
我们从中挑选了3款CPU进行对比, SiFive FU740 , Loongson 3A5000,Ryzen 3950X (Zen2)。
数据来源:
https://www.7-cpu.com/
以下是SiFive FU740 测试结果:
以下是Loongson 3A5000测试结果:
以下是Ryzen 3950X (Zen2)测试结果:
我们可以看出,在该测试条件下单核性能sg2042和starfive FU740基本相当,sg2042在64线程性性能一骑绝尘。
LoongArch架构3A5000 单核性能还是不错的。是不是说龙芯64倍单核,就会很强呢?不一定!多核也是一门艺术。
我们好奇拿Ryzen 3950X (Zen2) 做了一下对比,意料之中是各项数据都大大优于SG2042。从参数上来说,Ryzen 3950X (Zen2) 的主频4.7GHz ,比2GHz的SG2042要高很多。SG2042作为全球第一颗RISC-V处理器芯片,达到这种水平已是不易。看清楚差距,我们撸起袖子加油干。
最后,要强调是sg2042基础软件的优化还刚刚开始,还有很大的优化潜力。