是否还有不支持SSSE3指令的相关CPU(Intel / AMD / Atom)?
没有SSSE3的最新CPU是什么?
答案 0 :(得分:11)
没有SSSE3的最新CPU基于AMD K10 microarchitecture:
K10 CPU支持SSE3(FP指令,例如movddup
和haddps
)以及仅AMD的SSE4a。某些早期的K8内核仅具有SSE2,但后来的K8内核也具有SSE3。
请注意,https://en.wikipedia.org/wiki/SSSE3#CPUs_with_SSSE3中列出的AMD CPU仅从Bulldozer开始,但确实包括AMD的低功耗Bobcat / Jaguar CPU。
如果您通过Google AMD Phenom II ssse3
进行搜索,则会找到一些页面,其中某些游戏删除了SSSE3要求,因此它们可以在Phenom II上运行。
在Intel上,您必须追溯到Pentium M / Core,因为SSSE3是Core 2引入的。(第一代core2(Conroe / Merom)仅具有64位宽的随机执行单元,因此{{1 }}相对较慢,但SSE2 pshufb
也是如此。请参阅Fastest way to do horizontal float vector sum on x86。)
我认为甚至第一代Atom都具有SSSE3。 https://en.wikipedia.org/wiki/Intel_Atom。
有些像AMD Geode这样的CPU根本没有SSE,,但我认为问题的关键是有的CPU具有SSE2 / 3,但不是SSSE3。
目前还没有生产没有SSE4.2的新主流CPU,但是某些Phenom II CPU甚至在2018年仍在使用。它们越老,预计新软件可能无法运行的可能性就越大。他们。
不幸的是,仍在生产没有AVX和BMI的全新主流CPU:英特尔的Pentium和Celeron型号,甚至适用于Skylake / Kaby Lake。大概是当裸片在其向量ALU的高128位中有缺陷时,例如大型FMA单元将其融合并禁用VEX前缀的解码,并将其标记为Pentium或Celeron 1 。 (这可能就是为什么Pentium / Celeron型号也不支持BMI1 / BMI2的原因;除了pshufd
/ pext
以外,它们的模具面积很小。)
因此,在将来的某个时刻,我们不会再接近BMI1 / BMI2的基线,这确实是不幸的,因为它是Intel CPU上单uup可变计数移位所必需的。 ({cl pdep
为3 oups,因为可能有cl = 0的无标志更新情况; SHLX / SHRX为1 uop)。在整个代码中使用BMI1 / 2最为有用,而不仅仅是在几个函数中使用。
脚注1 :当然,一些功能完善的芯片也得到了这种处理,特别是一旦新工艺的产量提高后,但是对于一致性/市场细分,它们仍然处于瘫痪状态。
但是我认为 shl cl,reg
ERMSB仍可用于256位加载/存储,因此FP寄存器文件,加载/存储单元和旁路转发网络仍然需要支持全屏宽度。 (而且ERMSB与矢量循环相比更具吸引力,因为它可以使用两倍的宽度。
我想知道是否有一种方法可以用保险丝对CPU进行重新布线,以便它可以使用正在工作的FMA单元的4个128位通道中的任何2个。我们知道Skylake-AVX512可以将FMA单元与端口0、1和5混合和匹配,仅对512位向量的p5 FMA(如果可用)上电,并将p0和p1上的256位FMA单元合并为一个512位FMA单元。用保险丝静态地做这样的事情可以使英特尔使用的芯片有缺陷,而这两个缺陷会影响到原本属于FMA的两个通道。
无论如何,这纯粹是猜测。这很可能,但是不知道我们是否有可靠的消息来源,英特尔实际上曾经这样做过,以此作为销售具有FMA缺陷的芯片的方法。我们确实知道,整个物理内核中有缺陷的芯片会以较低内核数量的SKU的形式出售,例如来自四核芯片的双核芯片。而只有6MB L3缓存而不是8MB的四核i5 CPU意味着它们禁用了其4个L3缓存片中的一个,这再次可能是为了挽救缺陷。