raini 发表于 2013-7-14 08:22
知道你看不懂英文,不过还是给你看看原作者是怎么评价ARM的
An examination of the ARM disassembly s ...
原作者不对。以A15为例,A15跟整型算术有关的流水线有几条:I0、I1、M、V0、V1。I0和I1可以吃普通整型算术微指令,V0和V1可以吃NEON的普通整型算术微指令,所以此时最高可以达到4倍吞吐量。而像乘法之类的整型微指令,只有M能吃,而NEON的整型乘法,只有V0能吃,而且4向量的时候还要拆成两条微指令,所以这类指令NEON的吞吐量是2倍。但无论怎么算整型NEON对比非NEON的优势还是很明显的。我试过把一个求整型数组平方和的函数写成NEON版本,速度是原来的2倍多一些。A15上的NEON似乎是in order的,这点要注意。
NEON真正废材的地方在于浮点。它把denormal number当成0,不完全兼容IEEE754,也就无法用在编译器里(C是要求IEEE754的),只能自己写着玩。 |