当前位置: 首页 > 科技观察

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

时间:2023-03-14 22:48:06 科技观察

GMP库的开发者发表了一篇文章批评RiscV“性能太差”。InstructionSetArchitecture)非常困难和伟大,但是设计像RiscV这样的东西是微不足道的,一个普通的计算机科学专业的学生可以在一个学期的课程项目集中设计出比RiscV更好的指令。”GMP库的全称是TheGNUMultiplePrecisionArithmeticLibrary(GNUMultiplePrecisionArithmeticLibrary)及其维护者Torbj?rnGranlund在进行关键内部循环的GMP汇编时发现:由于RISCV(RISCreducedinstructionset)特有的弱指令集,需要更多执行任何计算任务的指令——比任何流行的现代指令集都多。以带进位的双字整数加法为例,RiscV的指令如下:addt0,a4,a6//addlowbitsltut6,t0,a4//加低位计算进位加t1,a5,a7//加高位sltut2,t1,a5//加高位计算进位加t4,t1,t6//将进位加到第二个低位sltut3,t4,t1//将进位相加计算进位addt6,t2,t3//所有位相加,然后输出结果。同样的操作在64位ARM架构下执行:addsx12,x6,x10adcsx13,x7,x11在64位x86架构下:add%r8,%raxadc%r9,%rdxRiscVGMP的任意宽加法需要2到3倍作为许多指令,每个64位结果字(resultword)从1个周期变成了3个周期(关键路径add->sltu->add)。Torbj?rn表示,RiscV或多或少像是30年前AlphaISA的稀释版,但Alpha的计算路径是有道理的,因为当时有晶体管预算,而RiscV作为现代指令集,应该解决这个问题。性能下降3倍:“为什么不提供像样的指令集?”在文章的最后,Torbj?rn还强调他“对本文提及或未提及的任何计算机体系结构都没有经济或其他兴趣我批评RiscV纯粹是因为它的性能太差,我非常支持开放源ISA指令集。”其实RiscV的ISA过于简单,碎片化是老毛病了,性能问题也造成了目前的庞大。嵌入部分应用场景。但作为一个年轻的指令集架构,它正在聚集社区的力量,不断优化,或许我们需要给它一些时间。本文转自OSCHINA文章标题:GMP库开发者发表文章批评RiscV“性能太宽”本文地址:https://www.oschina.net/news/172301/gmp-developer-criticized-性能风险