CPUINT2000虽不先进但可参考
由于应用环境日趋复杂,要正确评估一个移动设备处理器的性能变得越来越复杂,因为现在的移动设备跑的网页浏览、三维游戏、音视频、人工智能等都不可能可以完全塞进 L1 Cache 里,因为这些应用牵涉到大量的数据处理。
这时候,人们在台式机性能评估上学到的经验和测试办法就可以在移动设备上采用了。对 CPU 测试来说,最合理的测试方式是采用多种计算规模的真实应用源代码以本机代码进行编译再进行测试,在这样的情况下移动设备的计算单元、内存单元都得以充分考验,测试结果最具参考价值。
能够获得业界(计算机工业、学术科研)官方认可的 CPU 测试当属 SPEC.org 的 SPEC CPU,它就是采用源代码方式,让测试人员可以编译为本机代码来测试,许多处理器在研发伊始就采用 SPEC CPU 作为最重要的性能评估指标。
SPEC CPU 的最新版本为 CPU2006,但是 CPU2006 针对的是当前的台式机、工作站、服务器处理器应用环境,内存容量(CPU2006 支持多线程测试,因此要求的内存容量相当高,8 线程处理器用 16 GiB 内存也是有点勉强)和自身存储空间(未编译时就要数 GiB 空间,编译后就要占用 1x GiB 了)要求都较高,因此采用 CPU2006 对目前的移动设备来说是不太现实的。
SPEC CPU 是每隔几年就更新一次,在 CPU2006 之前的旧版本为 CPU2000,它的 speed 整数性能测试完全可以在 1GB 级别的移动设备上运行,在以前甚至有一些 CPU2000 的测试被移植到 GPU 上做加速性能测试。
ARM 阵营极少公布 SPEC CPU 测试结果,这当然也是有原因的,因为在过去的不少时间里,ARM 针对的设备大都只有几百兆内存空间,塞进操作系统后,留给程序运行的空间就更少,此外由于省电先决的考量 ARM 处理器的性能其实真的不怎么样。
不过有意思的是,今年 ARM 阵营里的 NVIDIA 在发布 Tegra 4 的时候公布了 CPU2000INT 的测试结果:在 1.9GHz 频率设定的 NVIDIA 参考平台里,Tegra 4 的 SPEC CPU2000int_base 为 1168。这个测试结果相当于 2003 年第四季度 SPEC.org 上公布的 AMD K8 Sledgehammer 2GHz 测试结果。
NVIDIA 还进行了在小米二手机(采用高通 Snapdragon S4 Pro 即 APQ8064 1.7GHz)上的 CPU2000 测试,并且根据高通公布的 S800 相对 S600 在 IPC(每周期指令)和频率上的变化幅度而估算出来的 S800 的 CPU2000 测试结果
CPUINT2000_base测试成绩
从图表来看,S600 的 CPUINT2000_base 测试结果相当于 Tegra 4 的一半不到,这在很大程度上反映了 Cortex-A15 相对 Krait 系处理器的真实应用差别。
需要指出的是,双方的测试平台本身也是有一些影响的,例如小米二手机在执行这个测试的时候,CPU 频率是否存在降频现象,NVIDIA 对此没有说明。
一般来说,像 APQ8064 在四核全速运行的时候,会在一段时间内由于过热而导致频率从最高的 1.7GHz 开始下降。当然,NVIDIA 在这里公布的是 speed 模式下的 CPU2000INT 测试结果,这个模式下是单线程的测试,只有一个 CPU 内核会被使用。
比较遗憾的是高通对这个测试结果尚未提出异议(据说高通对于处理器性能的孰高孰低并不十分看重,他们戏称是卖基带送 CPU),而 CPU2000 的配置对一般人来说是相当复杂的事情,所以这个测试暂时没有第三方使用同样的平台测试佐证。
威盛电子在发布 Nano X2 处理器的时候曾经公布过一份文件,里面也有采用 CPU2000 对 Nano X2 1.2+GHz 和 Atom D525 进行测试,其中 gcc 编译器出来的 CPU2000 INT 成绩分别为 799 和 582,采用 Intel 编译器出来的成绩分别是 955 和 725。
NVIDIA 的 Tegra 4 的 CPU 属于 ARMv7A 指令集,因此编译器很可能是 armcc 或者 gcc,NVIDIA 新近收购的 PGI 是一家老牌编译器厂商,也许它能提供内部测试版给 NVIDIA,只是 PGI 过往从未发布过 ARM 系编译器。
到这里,大家应该对 Cortex-A15 的架构特点以及和它的一些竞争对手在性能上的区别有大致的了解,不过这样的旗舰级处理器在智能设备的实际应用情况又如何呢?
网友评论