扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共5页)
2007年8月,AMD抢先宣布了SSE5指令集(之前从SSE到SSE4均为Intel制定),当时表示该指令集将于2009年推出的Bulldozer处理器中采用。但Intel随即表示,不会支持SSE5。转而在2008年3月,Intel宣布了Sandy Bridge微架构(Intel Tick-Tock策略:45nm Nehalem - 32nm Westmere - 32nm Sandy Bridge),其中将引入全新的AVX指令集。4月份,Intel公布了AVX指令集规范,随后开始不断进行更新。迫于竞争压力,AMD不得不选择支持Intel提出的AVX(高级矢量扩展)指令集,同时采用AVX架构重新改写AMD的SSE5指令集,重定义为XOP(eXtended Operations指令扩展),CVT16(半精度浮点转换)以及FMA4(4操作数乘加)。
正是由于指令集方面的变动,AMD付出了惨重代价的,最终导致了Bulldozer处理器推迟了数年之久。根据AMD的高级架构师Dave Christie的说法,AMD在2007年宣布的SSE5指令集主要包括以下几项革新:3操作数指令甚至4操作数指令,置换与条件移动指令,乘加指令以及其他一系列解决现有SSE指令集缺陷的新指令。
而Intel在2008年4月公布的AVX指令集中,同样包含了SSE5指令集的多项新特性,包括3操作数指令/4操作数指令支持,乘加指令以及部分置换指令等,但实现形式与SSE5不同。并且,AVX指令集还加入了一些SSE5中没有的新特性:SIMD浮点指令长度加倍,为旧版SSE指令增加3操作数指令支持,为未来的指令扩展预留大量OpCode空间等。
由于SSE5和AVX指令集功能类似,并且AVX包含更多的优秀特性,因此AMD决定支持AVX指令集,避免让软件开发者因为要面对两套不同指令集而徒增开发难度。
不过,由于AVX指令集的制定权在Intel手中,未来还可能进行修改。AMD只能保证,其首款支持AVX指令集产品支持目前的最新版本:2009年1月发布的AVX第五版规范。并且,FMA乘加指令只支持到2008年8月的AVX第三版规范。
再来看FMA的问题。AMD此前在SSE5中就对FMA乘加指令进行了深入的开发,而Intel在2008年12月对AVX中的该指令定义进行了大幅度修改,仅支持3操作数乘加。AMD对此并不赞同,因此将保留旧版定义,并将其重新命名为FMA4(4操作数乘加)。在应用初期,AMD处理器中支持的FMA4将和Intel处理器FMA指令拥有不同的CPUID标签。而未来AMD也准备支持Intel的新版FMA定义,让其和FMA4并存。
和FMA的分歧类似,SSE5中还有一些和AVX并不包含的指令功能。AMD当然不舍得全盘放弃SSE5,因此将其中的特色功能采用AVX的指令架构重新定义,命名为XOP指令集扩展。
XOP保留的原SSE5指令包括:
Horizontal integer add/subtract水平整数加减
Integer multiply/accumulate整数乘加
Shift/rotate with per-element counts矢量元素转移/旋转
Integer compare整数比较
Byte permute置换
Bit-wise conditional move条件转移
Fraction extract片段提取
Half-precision convert半精度转换
简单来说,未来的AMD处理器将支持:
1. Intel的AVX指令集(FMA指令为低版本)。
2. XOP指令集扩展:即SSE5指令集中不被AVX包含的部分,采用AVX架构重写。
3. FMA4指令,未来可能兼容Intel的新版FMA指令。
AMD表示,支持这些新版指令的AMD64 SimNow!模拟器已经推出。2011年的Bulldozer是首款支持这批新指令集的AMD处理器。
当然这并不意味着AMD将会放弃SSE5,Christie 表示SSE5指令:“是和软件开发商们经过数月的讨论共同推出的,是基于他们的需求推出的。”因此SSE5指令中未在AVX出现的新功能,将会在AMD新的XOP、CVT16以及FMA4 等指令集中看到。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者