|

snb和bd其实都爆了不少了。双方其实都有一些匪夷所思的设计。
先说说这个avx256。snb号称支持avx256,但其实它的浮点/向量单元是基本沿用nehalem的128位单元----------snb根本没有256位向量单元。
不得不说intel的工程师很有创意。按他们的说法,在运行avx256指令时候补充另外128位向量的是snb的整型单元 很明显avx256指令这时候要拆解成两条128位微操作,一条通过浮点单元执行,另一条通过整型单元执行。也就是说早期的avx256应该是很弱的,否则整型单元与浮点单元的延迟很可能差距很大,不能匹配。
bd其实倒是比较实在,比较暴力的解决办法。在一个模组中一个avx256同样拆解成两个128位操作,但是在两个128位向量单元里运行(更有可能是两个128位操作在128位单元里先后执行,最后综合一下)
同样运行avx256,snb一个核心可能整型浮点资源全部占据----对于单一进程来说问题不大,因为向量运算时候整型运算单元很可能是空闲的。而bd一个模组则只有浮点单元全占,两个整型单元空闲,另一个进程只要不使用浮点单元就是完全无阻碍的。
另外是bd核心号称4发射---2alu2agu。而k7/k8/k10号称3发射,但是3(alu+agu)。两者孰强孰弱现在还不好说-----k8虽然理论上有3个agu,却不是完整的存取单元,需要其他单元配合工作---这实际上是个省料方案,某些情况下很可能成了瓶颈。intel一直是存取单元独立,其并行能力对比大家都看得到。 |
|