GMP 库开发者发文批评 RISC-V “性能太拉跨”

来源: OSCHINA
编辑: 罗奇奇
2021-12-07

GMP 库开发者 Torbjörn Granlund 发文批评开源的 RISC-V 指令集架构存在严重的性能问题,言辞非常激烈,称“设计一个伟大的 ISA (指令集架构) 是非常困难且伟大的,但设计类似于 RISC-V 这样的东西是微不足道的,一名普通的计算机科学专业的学生可以在一个学期的课程项目中设计出比 RISC-V 更好的指令集。”

GMP 库全称 The GNU Multiple Precision Arithmetic Library(GNU 多精度运算库),其维护者 Torbjörn Granlund 在执行关键内部循环的 GMP 组装时发现:出于 RISC-V 独特的弱指令集(RISC 精简指令集),它执行任何运算任务都需要更多的指令 —— 比任何一个流行的现代指令集都要多。

以带进位的双字整数相加为例,RISC-V 的指令如下:

	add	t0, a4, a6	// 添加低位
	sltu	t6, t0, a4	// 低位相加计算进位
	add	t1, a5, a7	// 添加高位
	sltu	t2, t1, a5	// 高位相加计算进位
	add	t4, t1, t6	// 将进位加到次低位
	sltu	t3, t4, t1	// 进位相加计算进位
	add	t6, t2, t3	// 所有位相加,然后输出结果

而相同的操作在 64 位 ARM 架构的指令:

	adds	x12, x6, x10
	adcs	x13, x7, x11

在 64位 x86 架构的指令

	add	%r8, %rax
	adc	%r9, %rdx

RISC-V 执行 GMP 的任意宽位加法(wide-addition)都需要 2 到 3 倍的指令,且每 64 位的结果字(result word)从1个周期变成了3个周期(关键路径 add->sltu->add )。

Torbjörn 表示RISC-V 或多或少有点像稀释版的 30 年前的 Alpha ISA ,但 Alpha 的计算路径是有道理的,因为当时有晶体管预算,而 RISC-V 作为一个现代指令集,应当解决这种运算性能下降 3 倍的问题:“为什么不提供一个像样的指令集呢?”

在文章的结尾,Torbjörn 还强调了自己对本文提及或未提及的任何计算机体系结构没有经济或其他利益相关,批评 RISC-V 存粹是因为它的性能太差,本人对开源 ISA 指令集是非常支持的。”事实上,RISC-V 的 ISA 过于简单且碎片化是一个老问题,性能问题也导致它目前大部分的应用场景是嵌入式。但作为一款年轻的指令集架构,它正在汇集社区的力量不断地在优化,或许我们需要给它一些时间。

展开阅读全文
6 收藏
分享
加载中
精彩评论
公说公里,婆说婆理。
从他的专业角度来说,他说的一点没错。
问题是,从芯片设计者角度呢?生态创建、通用、发展角度呢?
有的问题不是不愿不想甚至不能,而是你能否找到一个合理的路径到达?

其实理论上很好的理想芯片指令集,可以类似 IL 或者 java 中间字节的。
但是你复杂和功能强大的指令集,人家芯片如何设计呢?
RISC-V现在受众是谁?

很多人手上有几百万能钱生钱的不在少数,问题是,你哪有第一通金呢?

其实 ARM 当年也是一样啊。赶上了陷入生态死角的 x86 才做大做强的。
哪怕到今天,ARM 携移动端的胜利之势,也才只能浅窥PC端,还在遥望服务器。

今天 RISC-V 想要在 Svr PC Mo 端,几乎没有可能有优势。
唯一有相当大有机会弯道超车的地方恰恰是物联网。
而类似单片机类的处理器,性能很重要,但是不是第一位的。
如果搞了复杂指令集,性能是提高了,但是,芯片设计复杂,通用性差,功耗大,真的对 RISC-V 指令集的发展真的有利吗?
性能再好能胜过 x86 Arm ?为何要在别人已经无敌的方面去主动用自己弱点碰别人吃饭的家伙呢?

相反,如果有当一日,物联网已经极大普级和发展,RISC-V 又在物联网中如日中天。
那么他进一步扩展,进取 移动端、桌面端、服务器端 的野心几乎是必然的。

理科生要多读点历史,看看上下五千年,多少能人异士,明明有天下之能,却总是倒在了乱世开局吧!
生态的竞争有类似,“大道归一”。
2021-12-07 09:47
24
举报
这人洋洋洒洒写了一堆,最后已经进入玄学阶段。。。
2021-12-07 11:25
7
举报
我和 jason-he 是相同看法,写到最后进入了玄学阶段。

我来指出那句话的问题啊

读历史没有错,但是上下五千年和 RISC-V 有半毛钱关系吗?RISC-V 是 2010 年伯克利搞出来的,别说5千年,连 Java 年龄都比它厂。

再来后面的 “能人异士、乱世开局” 扯这个和主题有关系吗? 你当是打手游开局一条龙升级全靠吞?

最后那句话一样的问题 “大道归一” 什么道?哪个一? 和主题以及 RISC-V 有什么关系。
2021-12-07 17:38
4
举报
龙芯用的不是Risc V架构。
2021-12-07 09:13
3
举报
用longarch
2021-12-07 10:04
2
举报
最新评论 (46)
一群外行人在看热闹 中国什么时候也这样的专家
2021-12-13 11:12
0
回复
举报
一群外行在发言,包括我。
2021-12-08 15:42
0
回复
举报
精简指令集使用更多的命令执行相同的任务这不是客观事实吗?又是典型的想马儿跑不给马儿吃草的问题。你往里面加更多的命令是提高性能了,但它还精简吗?还有精简带来的优势吗?
2021-12-08 12:01
0
回复
举报
其实大家就是相要有一个开源免费的架构而已
2021-12-07 18:00
0
回复
举报
是的,所以对她满怀期待。就像自己喜欢的人,希望她总是完美的。
2021-12-08 09:53
0
回复
举报
场景不一样,单片机场景可能不需要大量变宽高精度计算。
2021-12-07 16:32
0
回复
举报
不是已经有解决方案了--分大块和小块。性能要求不高的用小块--简指令。性能要求高的用大块--强指令。碎片化恐怕没能力解决,本就是靠自由拉市场的。
2021-12-07 14:06
0
回复
举报
貌似现在思路的确是这样。但是需更多的人用,才能检验设计的正确性。
于是这就变成了先有又鸟还是现有O的问题。
文中哪种吐槽,是开荒者必然面临的困境。
2021-12-08 09:49
0
回复
举报
没更好的工具倒是真问题。作为开荒者,想招是本职,吐槽是休息。光吐槽不出招,那不是开荒者,是用户。
2021-12-08 11:39
0
回复
举报
以不变应万变,可能只有在限定域且变化可预期的情况下才有意义。元器件固定的数字电路,在决定其优点的同时也决定了其缺点,无法做到鱼与熊掌兼得。RISC和x86还有ARM的定位不同,更难以全方面的做比较。或许可编程元器件和可编程芯片会带来不一样的局面吧
2021-12-07 10:31
0
回复
举报
设计的初衷就不是瞄准高性能。
2021-12-07 10:13
0
回复
举报
这恶不一定,在不同场合,功耗、通用性、简单、可靠、等等不同方面都有优先的顺序。
只是大多数读者只有桌面端的使用体验,总是以桌面端的需求考量罢了。
问问搞硬件的,他们的感受肯定和我们不同。
2021-12-08 09:52
0
回复
举报
用longarch
2021-12-07 10:04
2
回复
举报
公说公里,婆说婆理。
从他的专业角度来说,他说的一点没错。
问题是,从芯片设计者角度呢?生态创建、通用、发展角度呢?
有的问题不是不愿不想甚至不能,而是你能否找到一个合理的路径到达?

其实理论上很好的理想芯片指令集,可以类似 IL 或者 java 中间字节的。
但是你复杂和功能强大的指令集,人家芯片如何设计呢?
RISC-V现在受众是谁?

很多人手上有几百万能钱生钱的不在少数,问题是,你哪有第一通金呢?

其实 ARM 当年也是一样啊。赶上了陷入生态死角的 x86 才做大做强的。
哪怕到今天,ARM 携移动端的胜利之势,也才只能浅窥PC端,还在遥望服务器。

今天 RISC-V 想要在 Svr PC Mo 端,几乎没有可能有优势。
唯一有相当大有机会弯道超车的地方恰恰是物联网。
而类似单片机类的处理器,性能很重要,但是不是第一位的。
如果搞了复杂指令集,性能是提高了,但是,芯片设计复杂,通用性差,功耗大,真的对 RISC-V 指令集的发展真的有利吗?
性能再好能胜过 x86 Arm ?为何要在别人已经无敌的方面去主动用自己弱点碰别人吃饭的家伙呢?

相反,如果有当一日,物联网已经极大普级和发展,RISC-V 又在物联网中如日中天。
那么他进一步扩展,进取 移动端、桌面端、服务器端 的野心几乎是必然的。

理科生要多读点历史,看看上下五千年,多少能人异士,明明有天下之能,却总是倒在了乱世开局吧!
生态的竞争有类似,“大道归一”。
2021-12-07 09:47
24
回复
举报
西方中世纪那么乱,也没看见科技有什么发展。
还生存竞争呢,再逼你,做不出的就是做不出。
怎么把技术积累和竞争画等号?
真发现问题,还不让人提了?
2021-12-07 10:15
1
回复
举报
这人洋洋洒洒写了一堆,最后已经进入玄学阶段。。。
2021-12-07 11:25
7
回复
举报
想多了,当然格局就不一样了嘛。
不喜欢大旗的,可以删掉最后一段嘛。
不过你说的的确是,
程序员做具体工作细节惯了,不喜欢“书读大略”的。
2021-12-07 13:30
0
回复
举报
呵呵。
你开心就好
2021-12-07 15:25
0
回复
举报
说实话,我丝毫看不出我说了你说的这种意思,不知道你是用什么才能理解的。
我的话用粗话点说就是:

他提的缺点很正确,但是如果现在就按照他的意思改,那么 risc-v 连明天的太阳都看不到。
2021-12-07 13:33
1
回复
举报
我和 jason-he 是相同看法,写到最后进入了玄学阶段。

我来指出那句话的问题啊

读历史没有错,但是上下五千年和 RISC-V 有半毛钱关系吗?RISC-V 是 2010 年伯克利搞出来的,别说5千年,连 Java 年龄都比它厂。

再来后面的 “能人异士、乱世开局” 扯这个和主题有关系吗? 你当是打手游开局一条龙升级全靠吞?

最后那句话一样的问题 “大道归一” 什么道?哪个一? 和主题以及 RISC-V 有什么关系。
2021-12-07 17:38
4
回复
举报
有的人文学历史看得少,真是没办法,你不把东西咬碎了味他嘴里,他就觉得没法消化:
历史那句,说白了就是说的事物从出现到发展壮大的道理。历史人物各种势力在历史进程中的演变,是否和技术在生态中的演变类似?不是你技术好的就一定是最后的胜利者。还需要发展路径的。历史人物也一样,最后的胜利者不一定是最有本事的。最被看好的可能一开场就被人挂了。
下面一句就说的这种逻辑的相似性,是说事物的规律上升到一定的高度之后,有一定的相似性。
事物的发展逻辑,在越高维的程度上越相似。请问,怎么没联系?
差别只是我的思维能跟得上跳跃过去,而你的不能罢了。
知道测智商的原理是什么吗?就是看你能否有足够的思维跳跃能力,将看似越来越远和不相关的事物的内在联系找到。
这是种能力。
也许你说,我和你这样说话,你听不懂,这种描述不合适,不适合你,我承认。
所以当有人质疑的时候,我用了一句简洁和不严谨的话复述一遍。这总该看懂了吧?
但是这样的一句话逻辑是不够严谨和有问题的,跟外行老百姓说可以,但是和专业人员和受过高等教育的说,态度上不够尊重吧?
2021-12-08 09:37
0
回复
举报
你高兴就好
2021-12-08 18:00
0
回复
举报
回复 @哈库纳 : 我固然写的缺点是很多的,毕竟是草稿随笔,并未多加揣摩,谢谢指正。
2021-12-09 09:23
0
回复
举报
回复 @久永 : 分享一个我刚刚学来不久的方法。

要分析事物的内在逻辑相同性而不是相似性,因为相同性可以等价类比来讨论。

相似性很容易导致观点泛化一个泛化的观点遇到另外一个泛化的观点就极易出现 "大道归一" 这种无用的结论上。
2021-12-09 14:31
0
回复
举报
回复 @哈库纳 : 你说的很有道理!
但是就像我说的那句话,—— 理科生要多看点历史和文学,否则老婆都难找!
逻辑性强的东西,正确,但是但是生涩,无法感染人。只能在技术圈孳萌。
技术人员最容易犯得错误就是,自己认为不合逻辑的东西就是没有价值的。
哪怕有的东西只是自己没有找到其逻辑而已。
大道归一,是说的对于生态竞争和乱世混战,这两种情况的具体事物发展轨迹的相同性总结,认为其在更高的维度上是一致的。
我承认,思维跳跃有点快,是有点不恰当。特别是在这种技术社区。
但是只是不恰当的出现在不适合的场合而已,你批评有一定的道理,但是不是你说的毫无用处,只是不恰当,前面的铺垫少了,突然跳跃拔高,读者看起来突兀。
但是问题是,我这个只是随笔草稿,连错别字都懒得改的。这种细节问题追求起来,而忽视文章主要内容和立意,岂不是本末倒置?
兄弟,书读大略,不要在意细节。何必为一两句话纠结呢?
2021-12-10 09:56
0
回复
举报
你这个回复就很简洁。
2021-12-07 18:17
0
回复
举报
但是还是有人看不懂对不?我尽力了。
2021-12-08 09:41
0
回复
举报
不要混了时间线,最开始的回复和现在的回复不能混淆
2021-12-08 16:13
0
回复
举报
回复 @jason-he : 我说的就是后来你说简洁的还不是有人说吗?
2021-12-09 09:23
0
回复
举报
其实一句话就说明了:有钱的用性能高的,没钱的用价格便宜的,没钱又想性能高的--不自己想招,而要求他人就是耍无赖了。
2021-12-07 14:14
0
回复
举报
一个简单的计算需要过多的时间周期会导致能耗上升,进一步导致硬件成本上升。懂吗?
2021-12-07 16:39
0
回复
举报
没人说他说的观点不对啊。问题是,你现在重点不能在提高性能上啊!难道我简洁的解释也看不懂吗?
2021-12-08 09:39
0
回复
举报
不是这个意思,是RISC-V现在首要的是要服务于他的使用者。
如果他连基本盘都丢失,还有什么资格打天下?
现在物联网就是其基本盘。物联网系统中性能很重要,但是不是最重要的啊。
2021-12-08 09:41
0
回复
举报
但不会真有人硬件上的全加器只有俩输入吧
2021-12-07 14:42
0
回复
举报
话不是这么说的,10年前的X86 CPU性能和现在比起来差远了吧,指令集也很先进了吧;
以现在的工艺完全可以做到低功耗, 微型化的;
2021-12-07 16:50
0
回复
举报
说实话,我真没想到,写到最后思维拓展,格局放开,感慨一下,居然这么多人思维跟不上,反成热点。
思维没有那么跳跃,跟上不是那么难吧?
2021-12-08 09:56
0
回复
举报
更多评论
47 评论
6 收藏
分享
返回顶部
顶部