本帖最后由 chungexcy 于 2015-9-22 15:00 编辑
那就应该是老版本CPU-Z显示问题。既然都支持FMA3,指令集相同,那么在你和作者的A10,程序应该都是用的FMA优化。
我大概有一个新的猜测。我找了一个 A10 的截图,你看 L1 inst. 缓存。A8 是 64k,A10 是 96k,指令发射也从 2way 升级到了 3way (这里应该是指令执行效率的关键)。然后 A8 (13Gflops) 的单位性能正好是 A10 (20Gflops) 的 2/3?
这个程序我确信L1 data 缓存不是瓶颈(寄存器刚好够放运算中间结果的热数据)。而且作者程序性能的关键部分对指令集并行要求很高。我看代码,每连续两条FMA指令,用的数据是没有交叉的,也就是说理论上是可以同时独立执行的,发射越多并行效率越好。而 Intel的 L1 inst. 是 8way。
我认为 AMD L1 inst. 缓存的发射数限制了性能的发挥。你能试一试在bat文件里的那一行后面加一个 -j 2 再跑一次吗,看看性能又能发挥多少(意思是只用两个线程)?
|