这周有传言说 Facebook 要考虑使用装备 ARM 处理器的服务器,替代 Intel 或 AMD 的 x86 服务器。此传言出现在 Facebook is the first to jump into ARM servers。
我读到这个消息是周二晚上从 TechMeme,考虑到 TechMeme 的时效和衡量 credit 的算法,我相信这是最早出现的,也是谣言的源头。
昨天晚上还是 TechMeme,福布斯 Forbes 有新文章 Is Facebook About To Use ARM Chips In Its Data Centers? No! ,这不是 Forbes 在说不,是 Facebook 的 vice president of technical operations,Jonathan Heiliger,说, “This story is completely false”,用词很直白,不用翻了。
Heiliger 本人也在 SemiAccurate 那篇谣言源头留了言说明。考虑到在这件事上,使用什么 technology infrastructure 不属于需要掩盖,迷惑乃至撒谎的丑闻或竞争型商业秘密,false 应该是明确的表态。当然,你还可以纠着 Heiliger的原话 we have no plans to deploy ARM servers in our Prineville, Oregon data center,说他这只是说 Oregon 的 data center,重新表述重音的话,是不是可以解释成不否认在其他地方部署呢?你要愿意这么想我也不能怎么样了。。。。。。
今天有国内媒介报道谈论这事儿,比方我今天早上从 Google Reader 看到 ifanr 的 ARM正式进军服务器处理器 —- 可惜,兴奋过头了,这是根据最早的那篇不实的谣言报道的。
看来技术新闻真是容易螳螂捕蝉,黄雀在后,最后还有个小屁孩等着黄雀呀,一下没有注意 follow up 就容易错过一个环节乃至看到完全不一样的东西,说不定我后面还等着一哥们打算说我的消息也 out 了呢,不排除,不排除我此文一出,Mark Zuckerberg 都在我 blog 留言,我K,咱 Facebook 就是打算用 ARM 了!
按我的理解,如今 server farm 里的故事在媒体口中就剩下 电力 了,偶尔靠谱的还提到 performance per watt,仿佛功耗就是 chip design 的唯一命门和衡量产品的独门标准了。可是,请考虑一下,这是建立在 AMD 和 Intel 的产品已经提供了可以接受的性能的前提下的,媒体看到了工程师们正在热切地谈论“功耗”,却没看到他们已经不那热切谈论的话题“性能”,他们不谈论不是因为不重要,是因为已经做得不错,不需要再极其强烈地关注了,需要极其强烈关注的东西已经让位于“功耗”。这就像高手过招,不会再战术性地比拼蹲马步这样的基本功了,不是基本功不重要,而是大家都高手,基本功是不成问题的,所以他们要比的就是其他功夫招式了。在这里,Intel 和 AMD 产品的基本功就是“性能”,其他招式,目前,就是功耗或功耗效率。
现在,场景来到了 ARM,这时候,再把上面的规则适用就乱来了,因为大家的基本功不一样了。有哪个媒体在文章里提到总线,带宽,HyperTransport,QPI(CSI),多 socket 架构,cache 一致性….等等等等,然后把这些被认为丑陋臃肿的东西和 ARM 能提供的比较一下?没有,因为媒体不懂,因为媒体以为这方面 x86 产品和 ARM 没啥区别,那就……只比 功耗 好了,哇…… 不得了呀,ARM 这么省电,x86 完了 …… 故事出来了。
唉…… All men are created equal, all processors are not。
前半句是 杰佛逊 等厮说的,后半句是鄙人续貂,当然,不保证原创性。
从数据上说,Intel 自 Core2 一代开始,per core 大概 30W,这个数据在 Nehalem 一代得到很大优化,Xeon 系列最少 4 core 最多 8 core (是 core 不是 thread),per core 最低到 11 W,最高 23 W (根据频率,cache 大小等自然不同);而 AMD 要拿出来的 Bobcat 设计,据称可以到 1W (未经证实,拍砖我也认了)。而,用户并不是谁最省电就用谁,而是在不伤害或者不严重伤害效能的情况下……你知道的……
从 ARM 的角度,如果用于服务器产品,只计算处理器的功耗是不够的,比如需要 enable 64 位支持吗(这方面我真不清楚,不知道从版本几的核心有这个,可能根本没有)?再比如要支持服务器常用的 ECC DIMM,势必增加专门的 memory controller,这不需要增加耗电,或者占用 die 或者板子面积,继而增加成本吗?这方面 ATOM 也好不了多少(虽然 Seamicro 已经有基于 ATOM 的服务器产品了),同样没有加入 64 支持,另外我记得必须要搭配 965 还是 945 系列 chipset,那就限制了支持的 memory 类型。
我觉得 ifanr 文章里有些说法不妥(我还是很喜欢他们的文章的,特别是评测和爆料,此处仅为交流无恶意),比方:
“别说ARM核心,就是现在最顶级intel i7 extreme980 6核12线程也入不了Facebook的法眼。”,这只是桌面处理器,说顶级值得商榷,不是 Xeon,ODM 不会拿来做服务器产品,Facebook 自然没法买没法用,要是 Facebook 自己搭机器,我看不会用不是因为效能不够,而是因为这个产品的定位。
top500 里,“看看最近的超级计算机50,排名末尾的机器也使用以万为单位CPU核心。这说明如果依靠数量,ARM核心同样有潜力匹敌专业服务器CPU阵列。”,不好意思,我觉得只能说明多 socket/多 core 的超级计算机架构以及软件优化有多么重要,而不是简单依靠数量(看看国产银河就知道了);特别是,用多 ARM 来拼性能,那 die 的面积,成本,每 core 效能等就不好说了。目前代工厂生产 ARM SoC 的工艺普遍落后 Intel 一乃至两代,依靠工艺省电省成本就别想了。扩展说来,top500 的趋势比较有风向标意义,不过和商业应用实践上是不一样的,因为超级计算机可以采用偏门的私有的无需考虑大规模市场应用场景的技术,成本顾虑不大,而一般的商业实践要考虑标准化和成本,如果有人用 ARM 拼出了打败 road runner 的机器绝对是好事,因为先行者可能已经搞定了基本的理论难题,不过这不意味着 Assbook 和 Google 有可以插上电源开始用的基于 ARM 的服务器。
说 ARM 会取代服务器市场里 x86 的地位,本身就是一个不够精确的提法。因为 server 里跑的应用特性和角色差别很大,需求也就不一样,有的 IO 密集,有的处理能力密集,有的要求低延迟,有的要求高并发,有的适合 SIMD 类型的指令来做,有的则是 MIMD,如此等等,不一而足。这些类型里,有些完全可以用 ARM 完成,而有些,目前仍然是 x86 胜任。简单地下个结论,ARM 取代 x86,是不合适的。
反过来,我也不能狂妄到觉得 ARM 涉及服务器市场这一天绝无可能到来。曾经 DEC/IBM 当道,只卖 mainframe,SUN 不信邪横空杀出的时候,无非被看成草根货色,不足为惧,可谁知就成就了 SUN 的事业,DEC 消失,IBM 明智地转向;当年 x86 从 Pentium 开始才蹒跚进入哄哄作响的机房,彼时 Power/PowerPC 和 SPARC 等也觉得 x86 不过就是便宜货而已,天下地下,哪能相提并论,可后来,拜业界明智合力促成软硬生态链发展所赐,x86 已经是如今服务器市场 珠穆朗玛 或 K2 级的角色。
我也喜欢竞争,希望有新技术进入服务器市场,是竞争让 Nvidia 提出 GPGPU,让 AMD 收购 ATI 推出 fusion,让 Intel 拿出 ATOM,收购 WindRiver 和 McAfee,因竞争而动本是好事,否则大公司的高管们就可以总睡在自己的春秋大梦和前A片演员的温柔乡里了,太舒服了吧。它至少保证了我们有摆脱坏产品的可能(虽然不敢说 100% 导致摆脱坏产品的后果)。
x86 有太多的 legacy,每次 IO,每次 memory transaction,每条 instruction 执行将来或许会被条分缕析,发现在特定应用场景下成本或效率比不上 ARM 或 LEG 这样的 RISC 处理器,是的,它输给 ARM 或许会因为这个,而不是简单地被一块电表砸落马下;ARM 的这一天会到来,不过那是因为从 英伦 的实验室到 台湾 的代工厂里大家挥洒的智慧和汗水,而不是因为媒体抽象地殷切希望和“判断” ARM 已经冉冉升起。



