|
一些总结:
1. Krait 3.3DMIPS/MHz 相对 A9 2.5DMIPS/MHz 提升不大,就20%
2. Krait的执行单元增加到7个,相比A9(4个)有所增加,比A15(8个)少
A9:4个= 2ALU(整数)+ 1Neon/FPU(浮点) + 1Load/Store(寻址)
A15:8个=2ALU + 2Neon/FPU + 1Branch(分支)+ 1Mul/Div(乘除)+2Load/Store
于是不知道Krait相比A15少了哪个
3. Krait跟A15一样是3-wide decode,A9是2-wide
4. issue port和指令队列方面更接近A9(4个issue port,一个大队列),不同于A15(8个issue port,8个小队列)
5. A15的OoO(乱序执行)引擎进行了很大的改进,当然代价是功耗。Krait没说,估计跟A9差不多去了。
-------------------------------------
现在看来,各项跑分和测试都跟A9差不多的
特别高的跑分只有2个:
一个是CPU质数寻找测试
一个是稳定性测试StabilityTest里的测试
Krait差不多是A9的1.5倍-2倍去了
后来经过调查,StabilityTest的测试,使用的也是寻找质数的算法(prime number crunching),包括压力测试部分,也是利用质数寻找,使得核心满载,跟电脑上拷机用的prime95是一个原理
至于Krait在这里爆发性的高分,原因在于Krait很可能跟A15一样,具有硬件的整数除法
(前面说了A15有整数乘除单元)
很显然,具有硬件整数除法单元使得Krait在这项测试里很有优势,(找质数考验除法你懂的)
于是这项测试的异常高分也就说的通了。
--------------------
另外,纯推测下,以后改用新版编译器,不知道会不会有提升
LTE2的kernel用的GCC 4.4.3
google官方最新的NDK R8搭配的也是4.4.3,都是很老的了,貌似10年的东西
但是对A9的支持很完善,能使用O3的优化
--
但是这个4.4.3不支持A15,也就是说mtune=cortex-a15完全没用的
GCC从4.6开始才支持A15,但是到了4.7,还是不支持A15 o3的优化
所以新编译器可能会有少许的提升?
---
但实际上这种OoO的处理器应该不那么依赖编译器,我用GCC 4.6.2重新编译了nbench,跑出来结果差不多,也说明了这点。
所以,够呛。
原帖:http://tieba.baidu.com/p/1684005469?pn=1 |
|