欢迎光临散文网 会员登陆 & 注册

【知乎】高性能CPU设计为什么很难?

2023-11-13 16:38 作者:Bili_394329148  | 我要投稿

高性能CPU设计为什么很难?


Qianlong


你赞同过 处理器 相关内容

我曾经在几家研发高性能CPU的公司做过研发工作,例如中晟宏芯(现在合芯科技)、华芯通等,其发展不算顺利,对于高性能CPU为何很难这件事浅谈一点自己的看法, 抛砖引玉。

暂定高性能CPU的分数以SPEC CPU 2006 speed 单线程测试15分/GHz划线,该参数可以直接衡量CPU设计团队的微结构设计能力,高于此的归类为高性能服务器CPU。本文所说的高性能CPU,指的是单核单线程每GHz性能,因为只有这个才能体现真正的微结构设计能力, 而且CPU运行时主频不是固定的, 睿频也没法持续, 睿频后跑的总分也没法用来公平比较, 用该参数衡量是各家CPU vendor的公认标准。多核分数像是打群架,只要核够多就把多核分数堆上去。SPEC官网上的多核分数测试常年被日本霸榜,就是因为变态的小日子组了成千上万个CPU板卡连起来跑了个分,nonsense。

先说结论:高性能CPU作为“皇冠上的明珠”,没有后发优势,不可能弯道超车,更不可能一步到位。唯一能做好的办法就是埋头苦干,实践出真知。

  1. 完全从头重写高性能CPU需要的周期很长,举几个例子感受下:

(1)高通之前的1000人QDT研发团队,在第二代core还不一定能够到15分,然而第一代就经过了两年多的研发(约10分/GHz),第二代研发(内测性能提升30%+)进入尾声又过去了两年,后来因为董事会不同意继续撒钱,项目彻底砍掉不了了之。

(2)Apple M1中的Firetail core(大约22分/GHz),是从2010年的Apple A4(基于ARM Cortex A8)一直迭代到现在的产物,相关研发人员具体我不清楚,但几百人肯定是有的。

(3)龙芯上一代3A5000是10.x分/GHz,这一代3A6000是15分/GHz,最新一代微结构性能提升了50%,这个性能已经达到了全球范围内的第一梯队,至少垫垫脚能看到前面的AMD、Intel、Apple了。走到这一步龙芯坚持了21年,值得让人尊敬。很多人看不起龙芯,全国范围内所有CPU设计公司,注意是所有,有哪家设计的CPU单线程性能超过了龙芯?

(4)鲲鹏920,大概10分/GHz,其中的图灵核是从2010年开始组建团队研发。图灵核团队还在继续自研core,我相信性能肯定会进一步提升,但是由于制裁导致产品不能流片,这里不做推测和介绍。

曾经跟IBM和Qualcomm的架构师交流,如果把他们架构师核心团队原班人马拉出来,重新组织团队设计新的高性能CPU,没有两代(4-5年)也不可能达到目前AMD和Intel的最高水平。

有人说,买了最新IP消化吸收再创新行不行?依然很难,中晟宏芯、华芯通、海光、还有几家买ARM N2,这几家都是这种思路,哪家已经做到了修改代码随心所欲不逾矩?RTL与应用软件的区别就在此。

2. 国内在高性能CPU微结构设计方面的积累和人才不够。

这里的人才不是说我们不够聪明,而是我们在这个方向上踩过的坑不够多。我们的工程师,勤奋聪明肯吃苦,但是在高性能CPU微结构方面的积累,全球只有美国、以色列两个地方算是最深入,ARM的高性能核设计甚至也要仰仗于美国的研发团队。

CPU微结构(可以认为是狭义的计算机体系结构)的基础知识不算很难,体系结构方向的硕士普遍就能入门甚至有较好的掌握,难得是如何把微结构设计的巧妙、均衡,我们在此方面的积累距离苹果、AMD、Intel还有些差距。我国从2010年左右才开始涉足高性能CPU的设计,之前自研的CPU都偏中低端,因此差距就是我们在高性能CPU涉及领域踩得坑不够多。这就像一个枪手,刚开始只练习手枪(中低端)射击,直接给他巴雷特很可能打不好,何况子弹(踩得坑)不管饱。

高性能CPU的研发,需要不停的迭代,打磨。CPU就是艺术品,需要长时间对所有细节进行详细打磨,需要客户不停的反馈问题,推动设计修改,如果没有客户使用,问题无法暴露出来,那么提升也就非常慢。

3. 高性能CPU设计没法弯道超车,没有后发优势

有些人张口就来,我们有后发优势,我们要弯道超车。但这是有条件的。后发优势体现在,前面有人帮你踩了坑、淌了路,并且你看到了记住了学会了,这时候再去干就知道哪些能干哪些不能干。能完成高性能CPU设计的公司,CPU微结构的探索过程、PPA的优化过程绝对是内部极度保密的资源,不会轻易让你看到、学到。IBM为了开发性能探索用的模拟器,甚至先开发一门“T语言”,这不可能公开。当年中晟宏芯买来的IBM的M1模拟器就是T语言编写,但是只给你加密后的二进制,付费也不给源码,不仅如此,core的微结构文档大幅删减,想读懂他们VHDL写的源码需要花费大量时间;华芯通买到的高通代码不仅没有微结构文档,甚至连断言都给你删掉;更不用说美国政府限制的高性能浮点模块不允许出口,这些花多少钱也买不到。为什么这些不给?教会徒弟饿死师傅。看不到他们的经验,何来后发优势?

再说弯道超车。弯道超车的关键在于换赛道啊同学,你看我国汽车产业弯道超车,是不是换了老外们积累不够深入的新能源赛道上?这些高性能CPU能行么?答案是不行。高性能CPU设计就这一条道,没有新赛道,从1980年代往后,体系结构领域开始进入蓬勃发展期,现在使用的很多微结构改动的idea都是参考那些年代的论文,这个赛道没有新鲜事,没有另辟蹊径,只能想尽各种办法把微结构做的精致,提升单线程性能。没有其他道路可走,怎么弯道超车?如果没有新能源电动车,国产车还是很难超过合资汽油车。

对于高性能CPU设计而言,如果你听到有人说出弯道超车、后发优势,默默心里骂一句sx就行了。

4. 设计高性能CPU know-how很难

有人说体系结构不有四大顶会ISCA、MICRO、HPCA、ASPLOS,为啥不从里面学习?首先这些论文的质量参差不齐。很多中了顶会的论文也是在灌水,不信你可以看看当年那件轰动体系结构圈的新闻(学生由于论文数据问题想撤稿,但是导师不允许,学生自杀),据我的读论文经验,顶会中的论文,可信度虽然比其他会高,但是数据要打折,实验环境要打折,结论要打折,具体打多少折扣得自己花时间验证。其次,复现这些论文并验证结论是一件非常耗时的事情,要不然体系结构领域的博士生毕业都很困难呢,我在之前的一篇博文中提到过(大龄读博)。再次,有些好的idea由于学生毕业时间仓促等原因反而没有投到顶会,从这些论文中读出金子需要大量人力和时间,绝对算得上沙子里面淘黄金,Intel的研究院有很多预研人员做这些事,我国目前除了少数几家有相关预研人员,其他公司还未曾听说有这方面投入。最后,很多论文中很漂亮的idea,评估效果也不错,但是真正落到芯片中代价太大,例如面积太大、时序紧张等,但是尝试把新feature落到产品的周期都要以年为单位计算。

5. 很多公司不愿意投入去设计新的高性能CPU core,造不如买。自己设计出来的core,10分/GHz,买来的20+;自己设计要投入十几亿甚至几十亿资金,周期还长,不如直接买来省钱便捷。


那怎么才能设计出真正的高性能CPU呢?我也不知道,只能从失败的经验判断大概有那么几条:

  1. 融资足够或者产品能迭代起来有利润,只有这样才能养得起研发团队长期投入。看一下目前国内做的比较好的CPU设计公司,特点都是公司有利润、产品能卖得出去,没有资本愿意长期投入不考虑回报,只有自己能造血才可以长久。

  2. 人员要稳定,CPU设计不像应用软件,上手很慢,看着文档理解代码都很难。之前看过一篇描述Adobe屎山代码没法改的文章,与其类似自行脑补。

  3. 领头人(或者技术负责人)必须要懂CPU设计,外行坚决不行。曾经有个自认为很懂ASIC的领导定目标,要自研CPU吊打AMD和Intel,研发团队经过讨论后我去汇报,我说需要100个人,三年开发两代产品(我已经是觉得资源很紧张了,而且只是打算对标A76),对方站起来来了一句“不make sense”摔门而去,我心里也只能默念一句sx。。。一个好的技术负责人,往上能顶住来自不懂行的sx的瞎指挥,不要让这种无意义的瞎指挥影响研发进度和研发工程师的心态;往下能安排好项目进度,对于各研发人员的技术能力做到了如指掌,对项目难度和计划做到心中有数,自己的名声还要足够大且能力足够强,否则无法招聘到能力合适的员工,说白了你自己不行就不可能招聘到行的人。“文人相轻”在这一行表现比较明显,有人觉得我自己技术牛逼,看不起其他人,但是CPU是需要通力合作才能做好的项目,负责人还要有能力按住这些人,不要闹内讧。

  4. 少一点内斗,再少一点。目测创业公司中因为内斗直接或间接死掉的不低于30%吧,即使还没倒的,内斗也一直在持续。

  5. 想尽办法找市场,卖不出去就没法回笼研发资金,也就没法让研发人员持续深入的死磕微结构改进。研发人员对于市场的认识很差,总感觉的我自己技术牛逼,做出来就不怕没人买,实际情况是越是高科技越要做好销售,因为客户可能不懂你的技术细节,要千方百计服务好客户才能获得订单,千万不要觉得“酒香不怕巷子深”。

以上几个条件,融资和市场是基础,其他部分是顶层建筑,缺一不可。

在我看来,真正高性能CPU(世界第一梯队)微结构设计的难度和重要性,不亚于5G、光刻机,只是目前暂时没有因为这个卡脖子。如果未来我们买不到任何一款国外高性能CPU芯片,买到的IP授权也不允许继续使用(国内能买到ARM N2的IP),作为信息时代最重要基础设施的国产云未来怎么办?

评论区有人喷我说单核单线程性能是按照每GHz,意思是我不懂主频是什么意思?这里强调单核单线程每G分数,是为了强调微结构设计的能力,而且,CPU运行时不是定频,因此CPU vendor公布很多IP都会以每GHz表示其性能高低(有的会同时展示其总分),例如SiFive公布其P870可以达到SPEC 2006 17分/GHz, 喷子肯定不是CPU设计从业人员,因为CPU designer都懂这些指标的意义,但凡多看几个CPU vendor ppt也不至于拿这一点喷. naive。

还有人喷龙芯造假,对于每个CPU设计公司而言,都会有配套的编译器团队,那些所谓没造假的CPU设计公司为什么不去改编译器?况且编译器随着CPU设计进行改动本身也是一家CPU设计公司的基础能力,Intel ICC编译器号称benchmark编译器你们就不喷了?这就像说UFC小鹰拳击不行,只是地面功夫厉害,那你倒是打得过他啊?naive。


编辑于 2023-11-09 09:43

发布一条带图评论吧


64 条评论

默认

最新

常成

猜测答主经过2次失败,已经远离了CPU设计领域。对国内几支处理器核设计团队目前的进展基本一无所知。就拿海思图灵来说,继tsv110之后,已经研发了3代核心,最新的核心性能对标Apple的A13。另一支研发兼容ARM指令集的团队,则在去年公开了最新核心性能,已经与N2相当。

08-23 · IP 属地湖南

Qianlong

作者

我一直奋战在一线,也在海思工作过,也跟图灵核的一些研发熟悉,没量产的CPU就没写出来。

08-24 · IP 属地北京

常成

Qianlong

那我猜错了,失敬,失敬。上述两个团队都遭遇了A国多轮禁运,所以相当低调。其实都是有产品的,只不过出于低调几乎没有宣传,基本不为外人所知而已。

08-24 · IP 属地湖南

开心的小福

我看有些年轻人喷龙芯垃圾 不理解

08-23 · IP 属地上海

Xi Yang

蠢而已。这种领域能几乎全靠自研做到二流水平,已经是非常非常厉害了。

08-24 · IP 属地北京

开心的小福

Xi Yang

同意。。他们言必称riscv。。

08-25 · IP 属地上海

回旋的电子

哥,这里有个错别字

08-23 · IP 属地广东

回旋的电子

Qianlong

老哥,最近那篇文章的评论怎么关了

08-24 · IP 属地广东

Qianlong

作者

改了,谢谢

08-24 · IP 属地北京

当时若见得

那这么说看来你很看好龙芯了,你说的这些基本只有龙芯是一步不落在做的

08-24 · IP 属地黑龙江

常成

龙芯的成绩吹的很凶

:其实全靠编译优化。上一代3A5000如果使用开源主线源码只做兼容性适配构建的编译器,其性能大概8分/Ghz,3A6000目前还没有人做过类似测试,如果按编译优化对3a5000成绩提升的比例来算,3a6000大约13分/Ghz。虽然已经不错了,但和其宣传的分数比差了不止两个档次。

08-23 · IP 属地湖南

南风

你逻辑反了,cpu 才是核心科技。。。 cpu 提供了优化指令集,编译器没用,那是编译器的问题,何况龙芯也在往 gcc 提交代码。等着呗,等主线 gcc 也能针对龙芯优化的很好,你就闭嘴了

08-24 · IP 属地北京

维生素面包

小朋友,是编译器跟着CPU走,不是CPU去适应编译器

08-24 · IP 属地北京

白飞梦

别说你CPU了,现在其他IT领域都是这个样子,产品刚出来甚至还没有出来都没有经过市场的检验,就开始秒天秒地了,真让人无语。

08-24 · IP 属地重庆

乙亥生人

原来单核单线程的性能是指每g分数 学习了,果然大牛

08-24 · IP 属地广东

peakyboi

感觉这个作者并不是内行

,太不专业了

11-08 · IP 属地四川

okfine

100人团队用3年时间经过2代产品做出高性能CPU,这个平心而论,虽然领导不懂行,但是一般人也觉得这是在吹牛。啥技术负责人到最后都得背锅。

08-25 · IP 属地北京

Qianlong

作者

当时技术讨论其实是两代后对表标A76

08-25 · IP 属地北京

随便逛逛

看了内行人的文章,才知道龙芯的不易和成就。。

08-24 · IP 属地江苏

污污污

高通已经买了nuvia团队,是苹果之前的CPU团队

08-24 · IP 属地江苏

Qianlong

作者

高通把自己的QDT团队1000多人砍掉,过几年又收购一家Nuvia,这就像是觉得自己的手不好用,砍掉再接个假肢。完全是因为资方短视的问题,后来发现砍掉是错的,又赶紧买一家。中晟宏芯、华芯通都是这样,现在都重启了。

08-24 · IP 属地北京

无名

Qianlong

大佬,现在华芯通改成改成中安辰鸿了,这个公司如何啊?靠谱不?

09-20 · IP 属地广东


【知乎】高性能CPU设计为什么很难?的评论 (共 条)

分享到微博请遵守国家法律