通信人家园

标题: 世界一流水平,性能强到没有朋友的龙芯3A6000详测  [查看完整版帖子] [打印本页]

时间:  2023-8-29 14:40
作者: happyegg     标题: 世界一流水平,性能强到没有朋友的龙芯3A6000详测

以下为软件开发大佬GUEE的详细测评,因为是借机子测评,时间只有7天,但GUEE仍然进行了极其细致的对比测试,可能是国内对CPU测试最下功夫的个人,不管观众有什么观点,他这种实操严谨、专业的态度值得尊敬,向他致敬!!!

详测龙芯3A6000——性能强到没朋友

龙芯3A6000是龙芯中科自主研发的最新款桌面CPU,基于自主指令集——龙架构(Loongarch)。集成了4个龙芯自主研发的LA664核心,主频2.5GHz,4核8线程,使用境内12nm可控工艺生产。

几天前我申请到了龙芯中科的3A6000测试机,然后进行了一系列的性能测试。经过与多款进口及国产CPU的性能对比之后,我能肯定地说,龙芯3A6000与10代酷睿i3是相同的性能水平。

什么是水平呢?用8个核打4个核的那不叫水平,要是8核打4核还打不赢,那就更没有水平了。要在核心数量相同的条件下,表现出你来我往的实力,才能算是一样的水平。

龙芯3A6000和10代酷睿i3都是4核8线程,龙芯3A6000以低频战高频,打得有声有色,部分性能指标超过了10代酷睿i3-10100F。我还发现了龙芯官方没有提到的秘密——如果只比较每GHz的性能,那么龙芯3A6000已经追平了13代酷睿,并超过了AMD Zen 3代核心。



每GHz的性能不等于CPU产品的性能,但能体现CPU核心的设计水平。有了高超的CPU设计能力,即便使用较为落后的工艺来生产,也能保证CPU产品具有较高的性能水平。而每GHz性能低下的CPU核心,则必须依靠先进工艺全力提高CPU频率,不符合国内现在的实际情况。如果一款CPU每GHz的性能只有龙芯3A6000的三分之一,那么就需要三倍的频率才能与龙芯3A6000抗衡,不但超出了当前的工艺极限,功耗和发热量也会提高到3倍以上。

龙芯3A6000依托境内的可控工艺,主要通过设计能力实现了性能大幅度提升,CPU核心的设计一举达到了世界先进水平。我国在上世纪80年代初由于经济和工业水平无法支撑高端半导体技术发展,被迫放弃了自主设计微处理器。我国与美国在CPU设计能力方面的差距实际已经累积了五十年,龙芯经过二十多年的不懈努力,弥合了这长达半个世纪的差距。

测试环境和性能对照组

这次我用来与龙芯3A6000进行性能对比的CPU共有八款,其中五款是国产CPU,两款是Intel的产品,一款是AMD的产品。



国产CPU中,龙芯3A5000是龙芯上一代的桌面产品,海光C86-3250是8核16线程,核心数量是3A6000的两倍。兆芯KX-U6780A和飞腾D2000也是8个核心但没有超线程,鲲鹏920是国内目前唯一使用7nm工艺的桌面和服务器CPU产品。兆芯、飞腾、华为自2019年之后就没有推出性能更强的桌面CPU,所以只能用它们4年前的产品参与对比。

两款Intel的CPU分别是10代酷睿i3-10100F和13代酷睿i3-13100F,它们和3A6000一样是4核8线程,但它们的主频比3A6000高得不是一星半点。i3听起来好像很低端,但10代i3的规格其实和7代酷睿i7一样,更高端的型号主要是集成了更多的核心。10代酷睿CPU因为IPC有小幅度提升,再加上工艺进步,所以它的实际性能比7代i7还高一些。最后一款是AMD R5-5600G,核心是Zen 3代,6核12线程。

两款Intel的CPU我都没有装进机箱,AMD的CPU用的开放式机箱。因为所有CPU都是使用的普通风冷散热器,Intel和AMD的CPU发热量又比较高,装进普通机箱会因为积热而影响性能发挥。

几款CPU支持的内存频率也不一样,凡是使用2666内存的,都是因为CPU或主板只能支持到2666,上不到3200。内存都是双通道,在测试单核性能时内存不是瓶颈,2666和3200的差异几乎不影响测试成绩,不过在测试多核性能的时候,3200的内存要比2666多一些优势。但这一点优势又很容易因为CPU高温降频而损失殆尽,不过龙芯3A6000是固定频率2.5GHz,倒是没有散热器压不住温度的焦虑。

对于尚未正式发布的龙芯3A6000,目前只有龙芯自己的Loongnix系统才能较好地发挥它的性能,因此这次测试3A6000是使用Loongnix系统,其它CPU使用UOS系统,编译器都是系统自带的GCC8.3版本。

UOS系统的龙芯版本实际上是使用的Loongnix的内核和基础组件,只不过UOS的优化更新会落后于Loongnix一段时间,所以3A6000当前在Loongnix上的性能表现,在几个月之后就能在UOS龙芯版系统上重现。

为了能准确地定位龙芯3A6000核心设计的水平,我对i3-10100F、i3-13100F和R5-5600G除了进行通常状态下的测试之外,还把它们锁定到了与3A6000相同的频率再次进行了测试,以便于对比它们在2.5GHz时与3A6000的性能差异。



时间:  2023-8-29 14:42
作者: happyegg

CPU性能测试——SPEC CPU2006

龙芯中科提供的测试机是有归还时限的,因此开始时我本来不打算测试SPEC CPU 2006,而是想测试国内CPU厂商很少提及的SPEC CPU 2017。不过一些网友知道我拿到了龙芯3A6000测试机之后,强烈要求我测试SPEC CPU 2006。因此我中断了对SPEC CPU 2017的测试,先把SPEC CPU 2006跑了一遍。在与其它的国产CPU对比时,SPEC CPU 2006的测试成绩也更有意义。

SPEC CPU 2006是一款比较专业的CPU性能评估工具,它的代码没有针对特定平台优化,由测试者自行编译运行,因此适合用于跨平台对比CPU性能。但ICC和AOCC等编译器为了在SPEC CPU测试中跑出高分,会牺牲计算精度换取运行速度,因此大家一般更加认可使用GCC、LLVM、MSVC等编译器测试得到的成绩。

SPEC CPU 2006测试的是CPU运行常规应用软件时的通用性能,包含了12个整数性能测试项目,和17个浮点性能测试项目,每个子项目都单独评分,然后把各个子项的测试成绩进行几何平均得出总分。

SPEC CPU 2006分为单任务测试和多任务测试,但是单任务测试的时候,有部分测试项目可以通过编译器的自动并行化支持把计算任务自动分配到多个核心上并行执行。因此凡是开启了自动并行化的测试结果,都不能代表CPU的单核性能。对于桌面电脑的CPU,最为重要的是整数通用性能,特别是单核的整数通用性能。因为单核整数性能最能体现桌面应用程序的运行效率。

在3A6000流片之后,龙芯中科公开过两次SPEC CPU 2006测试成绩。第一次单核整数和浮点得分分别是40和55,第二次是在加强了GCC编译器对自主指令集Loongarch的优化之后,由工信部旗下赛西实验室测试的成绩,单核整数和浮点成绩分别是43.1和54.6。



上图中提到了“编译器‘补课’”,学霸从来不会承认自己补课,把补课挂在嘴边的都是差生。龙芯自主设计的LoongArch指令集才诞生两三年,龙芯的工程师虽然已经给GCC等常用编译器添加了对LoongArch指令集的支持,但优化的程度还与x86和ARM相差甚远。因此龙芯要通过“补课”,使GCC编译器对LoongArch指令集的优化追上x86和ARM的水平。

龙芯提供的测试机硬盘中有已经编译好的SPEC CPU 2006测试环境,直接运行就能得到测试成绩。但因为龙芯补课完成的最新版本的GCC编译器还没有到发布阶段,没有提供最新版本的编译器,所以我如果要自己配置编译参数来测试SPEC CPU 2006,就只能使用系统中现有的老版本编译器。因此我暂时只尝试复现龙芯第一次公布的实测成绩,等3A6000正式上市销售了,操作系统和编译器应该也完成了升级更新,那时我再去尝试复现更高的43.1的单核整数成绩。

我用自己的硬盘重新安装了Loongnix系统,并自行配置参数测试了SPEC CPU 2006,单核整数性能测试的结果还不错,达到了40.1分,与龙芯公布的编译器“补课”完成前的40分相符。直接运行测试机中提供的SPEC CPU 2006,得分42.9,与公布的43.1相符。



与编译器“补课”完成后的测试成绩相比,新编译器对12个测试项目的9个项目有提升。这说明龙芯绝不是像ICC和AOCC编译器那样为了跑分而优化,因为编译器如果是针对跑分优化,往往只能把某一个子项目的成绩提到极限,而其它项目的成绩基本不变。



就像下面这款至强CPU的测试成绩,使用了ICC编译器和收费的跑分专用优化库,在测试报告的条形图上,只有一个项目一支独秀,其它项目都被挤压成了薄薄的一片儿。幸好总分是通过几何平均来计算,如果是算术平均的算法,Intel的测试成绩将无人能敌。除了Intel和AMD之外,国产x86厂商也有这样跑分的,在宣传的时候又刻意回避测试环境和子项成绩,让人看不出猫腻。我也是在吃了亏上了当之后,才有了自己测试国产CPU并把结果公之于众的想法,能少几个人上当总是好的。



ICC和AOCC的超强优化原理其实很简单,就是牺牲计算精度提高计算速度。但是这种优化会使编译器出现预料之外的行为,会把不该优化的也优化了,等于是牺牲了全局的计算精度和兼容性。没有任何商业版的操作系统和应用软件使用ICC和AOCC,就是因为很难保证程序运行时的正确性。在必须保持计算精度的时候,ICC和AOCC却又表现不出明显的优势。而龙芯的编译器不可能像ICC和AOCC那样顾头不顾腚,因为龙芯电脑上所有操作系统和应用软件,都是直接或间接地使用龙芯的编译器,所以龙芯的编译器绝对要保证正确性。

龙芯新版编译器测出的成绩中,编号462的子项目看起来很像是使用GCC自动并行化参数结果,但我在测试时观察了CPU的占用情况,确定整个测试过程中只有一个核心满负载,其它核心的占用率都低于1%。说明成绩提升是来自于编译器“补课”,也说明龙芯3A6000的向量指令运行效率很高,只是当前版本的编译器还不能释放它的性能。何况就算把462这一项成绩换成我的测试结果,几何平均后总分也仍然接近42分,完全不影响关于性能水平的结论。后面的Linpack测试也能证明龙芯3A6000的向量计算能力很强,并且当编译器能够完整地支持“龙架构”的向量指令之后,3A6000会更强。

我对龙芯的GCC编译器仍然使用“补课”这个词,是因为在x86版的GCC面前不敢说“优化”。在GCC编译器和Linux中,积累了Intel和AMD以及众多其它开发者对x86指令集几十年的优化成果,龙芯的龙架构在基础软件优化方面,能够在两三年内补上差距就已经很厉害了。等龙芯发布新版操作系统和编译器之后,无论测试成绩还是应用软件的实际体验,都一定会有相应的提升。



时间:  2023-8-29 14:49
作者: jnjn

菊花什么时候采购
时间:  2023-8-29 14:51
作者: happyegg

jnjn 发表于 2023-8-29 14:49
菊花什么时候采购

得等他们想通了
也许他们一直想不通那就没办法了
时间:  2023-8-29 14:52
作者: happyegg

为了探索龙芯3A6000的性能水平,我在申请到测试机之前,就已经开始了漫长的测试过程。下面这张图中,三款进口CPU从1.0GHz到4.0GHz的测试成绩不是通过换算得到的,而是我把它们锁定频率后一点一点实测出来的。从1.0GHz到4.0GHz,每隔500MHz就运行一次SPEC CPU 2006,然后得到了它们的单核整数和浮点成绩与CPU频率的对应关系。通过下方的图表可以确定两点规律:

我在测试这三款CPU性能的过程中,就发现10代i3在设置了固定4.0GHz的频率后,测试过程中会因为温度过高而降频。我为了避免频率波动而临时换成了比CPU还贵的水冷散热器,但除此之外的其它测试都仍然使用原来的散热器。因为我认为在极度优化的条件下测出的成绩,对于占了绝大多数的普通家庭和办公电脑用户没有意义。DIY和超频玩家有另外的性能评价标准,我在常规环境下的测试也不会干扰他们的判断。



所有CPU都是使用SPEC CPU 2006的base模式进行测试,编译器都是系统自带的GCC8.3版本。不使用第三方使用优化库,也没有开启自动并行化,测出的成绩能真实反映CPU在用户的系统和软件环境中能达到的性能水平。

3A5000和3A6000的频率都是固定的2.5GHz,只要把它们的测试成绩标注在2.5GHz的坐标轴上,就既能看到三款进口CPU与它们在相同频率时的性能对比,也能看到它们与这三款进口CPU的性能差距。



13代酷睿i3-13100F在2.5GHz时的成绩刚好40分,我测得3A6000的40.1分比它更高一点,但13代酷睿工艺比10代酷睿先进,单核最高频率可以比较容易地长时间稳定在4.4GHz,因此3A6000与i3-13100F实际的性能差距还比较大。

下图是各款CPU的单核整数成绩对比,3A6000是使用的官方成绩,其它的CPU都是我自己测试的结果。其中Intel和AMD的CPU包括了自动控制频率和固定2.5GHz时的成绩,便于与2.5GHz的龙芯3A6000对比相同频率时的性能。



3A6000使用与3A5000相同的生产工艺,在频率不变的条件下把单核性能提高了60%,这完全是来自于CPU核心设计的提升。提高每GHz的性能和提高CPU频率都能达到提高性能的目的,两种方式各有各的困难。提高频率必须把CPU电路的布局布线与生产工艺紧密结合,需要反复多次流片寻找短板加以改进,一点一点地推高频率,资金消耗非常大。如果更换了工艺或者对CPU核心设计有重大修改,又必须重复提高频率的过程。

提高每GHz的性能更加困难,考验的是核心技术积累和创新的能力,Intel把每GHz的性能提高到现在的程度用了四十多年,AMD曾经因为设计能力进入瓶颈,每GHz性能多年没有提升而几乎倒闭。提高每GHz的性能和提高频率不是二选一,但龙芯目前的路线是优先提高每GHz的性能,暂时不苛求高频率。大概是因为以国内当前的工艺水平很难达到与Intel一样的频率,在每GHz的性能超越Intel之前盲目提高频率就只是浪费资源,把有限的资金用于研发更多的核心技术才更有意义。

龙芯自主研发的核心技术涵盖了CPU和主板必需的各种功能模块,还包括了自主研发的GPU。龙芯GPU LG100已经集成在了龙芯的桥片7A2000中,LG200将会集成到下一款桌面CPU 3B6000中。单看对现代桌面计算机所需的核心功能模块的积累,能在先进性和完备性两个方面同时超过龙芯的可能只有Intel和AMD。



龙芯3A6000无论是43.1还是40.1的得分,都超过了i3-13100F和R5-5600G在2.5GHz时的成绩。假如国内的芯片生产工艺跟得上,并且龙芯也有足够的资金与代工厂反复磨合提高主频,那么3A6000的对手就不止是10代酷睿i3了,至少能再提高一个段位。

10代酷睿i3-10100F在2.5Ghz时的测试成绩仅30.8,比龙芯3A6000低了不少。自动控制频率时成绩是42.5,与龙芯3A6000持平。i3-10100F测试过程中频率有波动,平均频率大约3.6GHz,与它的基础频率一样。10代酷睿i3的最高型号是i3-10105(F),基础频率和睿频都只比i3-10100F高0.1GHz,性能基本没有区别。

测试3A6000整数通用性能的目标已经达成,不过我测试浮点通用性能的成绩暂时没有达到55分,目前只有51.7分。我觉得我现在使用的GCC编译器,版本可能比龙芯第一次公布3A6000实测成绩时用的编译器更老,要不然不会出现这样的差距。因为还要留下时间测试SPEC CPU 2017和其它项目,所以我不会花太多时间来尝试调整编译参数,还是等龙芯更新编译器吧!



无论是51.7还是54.6,都与13代酷睿在2.5GHz时的成绩差距不大,而且要比AMD R5-5600G的Zen 3代核心好一些。因为3A6000的整数通用性能也比相同频率下的R5-5600G更高,所以可以确定3A6000的LA664核心在同频率下的性能超过了AMD的Zen 3代核心,也应该超过了Zen 4代核心。龙芯3A6000的性能虽然只与10代酷睿i3相当,但CPU核心的逻辑设计水平已经是世界一流的水准。



10代酷睿i3-10100F在4.0GHz时,单核浮点通用成绩也才56.1分,而通常情况下i3-10100F保持不了4.0GHz的频率,实测只有51.3分,我测得3A6000的51.7分要比它高一些。因此龙芯3A6000在浮点通用性能方面也已经追平了10代酷睿i3。13代酷睿相对10代酷睿同频率的浮点通用性能提升幅度高达60%,但3A6000相对于3A5000则实现了几乎翻倍的提升,说明龙芯虽然绝对性能与Intel相比还有差距,但进步的速度比Intel更快。

与国内的其它CPU对比的话,3A6000就令所有的国产CPU都望尘莫及了。最差的兆芯和飞腾单核浮点通用性能甚至只有3A6000的四分之一。

通过单核性能测试已经再次证明龙芯官方公布的成绩是靠谱的,因此对于多核并行性能,就直接用官方的测试成绩来与我测试的其它CPU作个对比。

通过下方的条形图,可以明显地看到3A6000的多核并行性能也与i3-10100F是相同水平。测试i3-10100F多核并行性能时与测试单核时的散热条件一致,如果把它装进机箱,测试成绩就会大幅度下降。当然,如果加强散热也可以带来5%左右的性能提升,不过不影响3A6000与i3-10100F性能基本相等的结论。由于Intel和AMD的CPU性能发挥极度依赖于散热,因此对于盖得严严实实的家用和办公电脑,3A6000的多核并行性能甚至能与10代i5拼一拼。



Intel和AMD的CPU非常有趣,因为性能是不确定的,主频和睿频只能决定CPU性能的上限,而管不了CPU性能的下限,所以极大地增强了用户探索CPU性能极限的趣味性。有网友提供了10代i5笔记本的测试成绩,也是4核8线程,但多核并行成绩只有桌面i3的一半,也就是也只有3A6000的一半,甚至低于3A5000的水平。当然如果是游戏笔记本,性能就不会降这么多,但商务笔记本就很难说了。

在多核并行的对比中,国产CPU中只有海光C86 3250的成绩超过了龙芯3A6000,因为海光C86 3250是8核16线程,而龙芯3A6000是4核8线程。等龙芯8核的3B6000推出,那么能接得住就只有Intel和AMD。与海光3250同样有8个物理核心的兆芯KX-U6780A和飞腾D2000,多核性能则只有龙芯3A6000的一半。

因为多核并行时的损耗会随着核心数量增加而增加,所以部分国产CPU厂商在单核性能还很低的时候,不想着提高单核性能,反而毫无节制地碓砌核心数量,就令人难以理解。

比如飞腾64核的S2500,多核并行的测试成绩只有龙芯3A6000的3倍多一点,是64核的性能只有4核的3倍多。还有基于阿里平头哥C910核心的RISC-V架构的某款64核CPU,单核性能比飞腾的CPU更低,64核并行的成绩只有300分,也就是不到3A6000的两倍,这比“i3默秒全”还要夸张啊朋友们。

在实际应用中,一个40分的核心,无论是单任务还是多任务并行,运行效率都远远高于四个10分的核心。连软件工程师都明白的事儿,难道CPU工程师们不明白吗?这些低性能的多核CPU,核心堆得越多就越是耐人寻味。



时间:  2023-8-29 14:53
作者: 为别人打工的人

看不懂说什么,这么长
时间:  2023-8-29 14:55
作者: happyegg

为别人打工的人 发表于 2023-8-29 14:53
看不懂说什么,这么长

更长的还没发出来
简而言之,龙芯3A6000目前是国内最强的设计水平的cpu,IPC能达到Zen3一级,受限国内工艺水平和资金投入,综合性能达到10代intel
时间:  2023-8-29 14:59
作者: cgcmcc

口水说干也没用,让市场来检验吧
时间:  2023-8-29 15:00
作者: jnjn

happyegg 发表于 2023-8-29 14:51
得等他们想通了
也许他们一直想不通那就没办法了

要用实际行动支持国产
时间:  2023-8-29 15:06
作者: happyegg

为了探索龙芯3A6000的性能水平,我在申请到测试机之前,就已经开始了漫长的测试过程。下面这张图中,三款进口CPU从1.0GHz到4.0GHz的测试成绩不是通过换算得到的,而是我把它们锁定频率后一点一点实测出来的。从1.0GHz到4.0GHz,每隔500MHz就运行一次SPEC CPU 2006,然后得到了它们的单核整数和浮点成绩与CPU频率的对应关系。通过下方的图表可以确定两点规律:

我在测试这三款CPU性能的过程中,就发现10代i3在设置了固定4.0GHz的频率后,测试过程中会因为温度过高而降频。我为了避免频率波动而临时换成了比CPU还贵的水冷散热器,但除此之外的其它测试都仍然使用原来的散热器。因为我认为在极度优化的条件下测出的成绩,对于占了绝大多数的普通家庭和办公电脑用户没有意义。DIY和超频玩家有另外的性能评价标准,我在常规环境下的测试也不会干扰他们的判断。



所有CPU都是使用SPEC CPU 2006的base模式进行测试,编译器都是系统自带的GCC8.3版本。不使用第三方使用优化库,也没有开启自动并行化,测出的成绩能真实反映CPU在用户的系统和软件环境中能达到的性能水平。

3A5000和3A6000的频率都是固定的2.5GHz,只要把它们的测试成绩标注在2.5GHz的坐标轴上,就既能看到三款进口CPU与它们在相同频率时的性能对比,也能看到它们与这三款进口CPU的性能差距。



13代酷睿i3-13100F在2.5GHz时的成绩刚好40分,我测得3A6000的40.1分比它更高一点,但13代酷睿工艺比10代酷睿先进,单核最高频率可以比较容易地长时间稳定在4.4GHz,因此3A6000与i3-13100F实际的性能差距还比较大。

下图是各款CPU的单核整数成绩对比,3A6000是使用的官方成绩,其它的CPU都是我自己测试的结果。其中Intel和AMD的CPU包括了自动控制频率和固定2.5GHz时的成绩,便于与2.5GHz的龙芯3A6000对比相同频率时的性能。



3A6000使用与3A5000相同的生产工艺,在频率不变的条件下把单核性能提高了60%,这完全是来自于CPU核心设计的提升。提高每GHz的性能和提高CPU频率都能达到提高性能的目的,两种方式各有各的困难。提高频率必须把CPU电路的布局布线与生产工艺紧密结合,需要反复多次流片寻找短板加以改进,一点一点地推高频率,资金消耗非常大。如果更换了工艺或者对CPU核心设计有重大修改,又必须重复提高频率的过程。

提高每GHz的性能更加困难,考验的是核心技术积累和创新的能力,Intel把每GHz的性能提高到现在的程度用了四十多年,AMD曾经因为设计能力进入瓶颈,每GHz性能多年没有提升而几乎倒闭。提高每GHz的性能和提高频率不是二选一,但龙芯目前的路线是优先提高每GHz的性能,暂时不苛求高频率。大概是因为以国内当前的工艺水平很难达到与Intel一样的频率,在每GHz的性能超越Intel之前盲目提高频率就只是浪费资源,把有限的资金用于研发更多的核心技术才更有意义。

龙芯自主研发的核心技术涵盖了CPU和主板必需的各种功能模块,还包括了自主研发的GPU。龙芯GPU LG100已经集成在了龙芯的桥片7A2000中,LG200将会集成到下一款桌面CPU 3B6000中。单看对现代桌面计算机所需的核心功能模块的积累,能在先进性和完备性两个方面同时超过龙芯的可能只有Intel和AMD。



龙芯3A6000无论是43.1还是40.1的得分,都超过了i3-13100F和R5-5600G在2.5GHz时的成绩。假如国内的芯片生产工艺跟得上,并且龙芯也有足够的资金与代工厂反复磨合提高主频,那么3A6000的对手就不止是10代酷睿i3了,至少能再提高一个段位。

10代酷睿i3-10100F在2.5Ghz时的测试成绩仅30.8,比龙芯3A6000低了不少。自动控制频率时成绩是42.5,与龙芯3A6000持平。i3-10100F测试过程中频率有波动,平均频率大约3.6GHz,与它的基础频率一样。10代酷睿i3的最高型号是i3-10105(F),基础频率和睿频都只比i3-10100F高0.1GHz,性能基本没有区别。

测试3A6000整数通用性能的目标已经达成,不过我测试浮点通用性能的成绩暂时没有达到55分,目前只有51.7分。我觉得我现在使用的GCC编译器,版本可能比龙芯第一次公布3A6000实测成绩时用的编译器更老,要不然不会出现这样的差距。因为还要留下时间测试SPEC CPU 2017和其它项目,所以我不会花太多时间来尝试调整编译参数,还是等龙芯更新编译器吧!



无论是51.7还是54.6,都与13代酷睿在2.5GHz时的成绩差距不大,而且要比AMD R5-5600G的Zen 3代核心好一些。因为3A6000的整数通用性能也比相同频率下的R5-5600G更高,所以可以确定3A6000的LA664核心在同频率下的性能超过了AMD的Zen 3代核心,也应该超过了Zen 4代核心。龙芯3A6000的性能虽然只与10代酷睿i3相当,但CPU核心的逻辑设计水平已经是世界一流的水准。



10代酷睿i3-10100F在4.0GHz时,单核浮点通用成绩也才56.1分,而通常情况下i3-10100F保持不了4.0GHz的频率,实测只有51.3分,我测得3A6000的51.7分要比它高一些。因此龙芯3A6000在浮点通用性能方面也已经追平了10代酷睿i3。13代酷睿相对10代酷睿同频率的浮点通用性能提升幅度高达60%,但3A6000相对于3A5000则实现了几乎翻倍的提升,说明龙芯虽然绝对性能与Intel相比还有差距,但进步的速度比Intel更快。

与国内的其它CPU对比的话,3A6000就令所有的国产CPU都望尘莫及了。最差的兆芯和飞腾单核浮点通用性能甚至只有3A6000的四分之一。

通过单核性能测试已经再次证明龙芯官方公布的成绩是靠谱的,因此对于多核并行性能,就直接用官方的测试成绩来与我测试的其它CPU作个对比。

通过下方的条形图,可以明显地看到3A6000的多核并行性能也与i3-10100F是相同水平。测试i3-10100F多核并行性能时与测试单核时的散热条件一致,如果把它装进机箱,测试成绩就会大幅度下降。当然,如果加强散热也可以带来5%左右的性能提升,不过不影响3A6000与i3-10100F性能基本相等的结论。由于Intel和AMD的CPU性能发挥极度依赖于散热,因此对于盖得严严实实的家用和办公电脑,3A6000的多核并行性能甚至能与10代i5拼一拼。



Intel和AMD的CPU非常有趣,因为性能是不确定的,主频和睿频只能决定CPU性能的上限,而管不了CPU性能的下限,所以极大地增强了用户探索CPU性能极限的趣味性。有网友提供了10代i5笔记本的测试成绩,也是4核8线程,但多核并行成绩只有桌面i3的一半,也就是也只有3A6000的一半,甚至低于3A5000的水平。当然如果是游戏笔记本,性能就不会降这么多,但商务笔记本就很难说了。

在多核并行的对比中,国产CPU中只有海光C86 3250的成绩超过了龙芯3A6000,因为海光C86 3250是8核16线程,而龙芯3A6000是4核8线程。等龙芯8核的3B6000推出,那么能接得住就只有Intel和AMD。与海光3250同样有8个物理核心的兆芯KX-U6780A和飞腾D2000,多核性能则只有龙芯3A6000的一半。

因为多核并行时的损耗会随着核心数量增加而增加,所以部分国产CPU厂商在单核性能还很低的时候,不想着提高单核性能,反而毫无节制地碓砌核心数量,就令人难以理解。

比如飞腾64核的S2500,多核并行的测试成绩只有龙芯3A6000的3倍多一点,是64核的性能只有4核的3倍多。还有基于阿里平头哥C910核心的RISC-V架构的某款64核CPU,单核性能比飞腾的CPU更低,64核并行的成绩只有300分,也就是不到3A6000的两倍,这比“i3默秒全”还要夸张啊朋友们。

在实际应用中,一个40分的核心,无论是单任务还是多任务并行,运行效率都远远高于四个10分的核心。连软件工程师都明白的事儿,难道CPU工程师们不明白吗?这些低性能的多核CPU,核心堆得越多就越是耐人寻味。



时间:  2023-8-29 15:07
作者: happyegg

浮点运算性能测试——Linpack

前面说过龙芯3A6000的向量指令运行效率很高,那么现在就来测一下比较考验向量计算性能的Linpack。

Linpack也是一种常用的性能测试程序,它通过计算双精度线性方程组的求解来测试计算机的运算能力,Linpack的测试成绩代表的是计算机最基本的计算性能。基础的Linpack版本只能测试CPU的性能,超级计算机使用Linpack来测试时,会针对异构运算部件修改测试程序,超算500强的排名依据就是Linpack的测试成绩。

现代编译器都会自动使用CPU的向量指令来优化计算速度,因此Linpack对于普通的CPU就特别考验编译器的能力。

想让测试结果接近CPU的理论峰值非常困难,因此我偷个懒,直接使用openbenchmarking网站上的Phoronix Test Suite测试套件来测试,这样所有的CPU都是使用相同的源代码,由测试套件自动配置编译和测试参数,每一款CPU的测试成绩都无法达到最高,也就相对公平了。

Phoronix Test Suite测试套件中的HPL-Linpack是多线程测试,CPU所有核心都会全速运行。因为是使用通用的编译配置,所以就比较考验编译器自动向量优化的能力,在这方面当前版本的龙芯编译器是比较吃亏的。不过龙芯3A6000的测试成绩看起来还是相当不错,远超10代i3,低于13代i3。测试时没有锁定频率,也都是所有核心并行,各款CPU能跑多高就跑多高。



必须再次强调这个成绩是使用的Phoronix Test Suite测试套件自动编译并自动配置测试参数,测试成绩与CPU能达到的最高水平差距很大。i3-13100F在浮点通用性能测试中比i3-10100F只高了60%,但在Linpack测试中提高了80%。龙芯3A6000则与之相反,在浮点通用性能测试中比3A5000高一倍,但在Linpack测试中只高了28%。出现这样的情况,几乎可以肯定是编译器过于陈旧导致的。因为3A5000的测试成绩已经比10代i3更高,那么3A6000就应该比13代i3更高才对,我非常期待龙芯对编译器的后续更新能带来惊喜!

CPU性能测试——SPEC CPU 2017

SPEC CPU 2017是比SPEC CPU 2006更新的版本,测试的项目经过调整,既删除了被ICC、AOCC等编译器通过降低计算精度提高测试成绩的项目,又增加了更多的针对现代CPU向量指令的性能考察。在SPEC CPU 2017上,编译器自动使用向量指令优化程序性能的能力会对测试成绩造成更大的影响,而我当前使用的GCC版本对龙芯向量指令的支持还不够完善,龙芯在测试中是会比较吃亏的,不过没关系,反正也不会有很大的差距。

SPEC CPU 2017也分为单任务和多任务测试,单任务测试也仍然支持自动并行化,不过2017版的测试报告中会明确标注自动并行化时的线程数量。只有不开启自动并行化的单任务测试成绩才能代表CPU的单核性能。大家在通过SPEC CPU的测试成绩来对比CPU性能的时候,一定要注意测试报告中注明的编译器类型、是否开启了自动并行化、是否使用了第三方优化库等重要信息。

SPEC CPU 2017的测试项目不但和2006版有区别,而且多任务和单任务的测试项目也有区别,它们的成绩不存在比例关系,能确定的只是综合性能越强的CPU测试成绩就一定越好。

我测试了单任务单线程和多任务的全CPU性能,先来看单任务单线程的整数和浮点测试成绩。在当前的系统和编译器环境下,我测试SPEC CPU 2006时得到的单核整数成绩比10代i3稍低一些,但浮点成绩又稍高一些。SPEC CPU 2017的测试结果也差不多,3A6000整数得分5.02,比10代酷睿i3-10100F低了一点,但差距不到10%。浮点成绩是5.87,非常巧合地与i3-10100F成绩一样。



通过3A6000与i3-10100F以及2.5GHz时的i3-13100F的子项成绩对比,可以发现3A6000有小部分的测试项目与它们有较大的差距,大部分的测试项目水平相当,综合评分比较接近。3A6000单核性能与10代酷睿i3基本一样的结论仍然成立,随着系统和编译器的逐渐完善,3A6000无论测试成绩还是实际性能表现也都会再上一个台阶。

与13代i3-13100F在2.5GHz时的成绩相比,3A6000的整数成绩要低3%,但整数和浮点成绩都超过了R5-5600G在2.5GHz时的得分。这与SPEC CPU 2006的测试情况一样,再次证明3A6000的核心设计水平比AMD Zen 3代还强一些,可能和Zen 4代基本一致。只是可惜因为CPU频率的差距,3A6000的单核性能只是与10代i3是相同水平,跟13代i3相比还有较大的差距。



在多任务测试中,3A6000与3-10100F的成绩差距超过了10%,还在可接受的范围内。因为我使用的是还没有完成“补课”的编译器,所以不能很好地发挥3A6000的向量指令性能。尽管3A6000相对于3A5000的成绩提升幅度也仍然超过60~70%,但我认为它的表现应该能够更好一些,对SPEC CPU 2017的测试结果不是很令人满意。



国产CPU的测试情况和SPEC CPU 2006相同,没有任何一款能接近3A6000的单核性能,龙芯自己的3A5000也不行。海光C86 3250依靠多一倍的核心数量,多核成绩比龙芯3A6000高50%,而兆芯和飞腾的8核CPU,多核成绩仍然远远低于4个核心的龙芯3A6000。

龙芯3A6000确实开启了国产CPU的新时代,使用境内的相对落后的工艺,主要依靠设计能力达到了市场主流CPU的性能水平。龙芯6000系列的下一款桌面CPU是3B6000,预计单核性能再提高20%,并改用8核的设计方案。我估计3B6000无论是单核性能还是多核性能都应该能接近或者追平Intel酷睿11代i7的水平。

整机系统综合性能测试——UnixBench

UnixBench不是CPU测试工具,它测试的是最小整机系统的综合性能。最小整机系统就是由CPU、主板、内存、硬盘、操作系统构成的可以启动的完整系统。

UnixBench主要是测试一台电脑处理日常事务的效率,包括文本处理、浮点函数、文件读写、进程创建、管道通信、脚本执行等等,这些都是应用软件和操作系统常用的功能。虽然这些功能都是由操作系统提供,但因为所有功能的执行都与CPU有关,所以它的测试成绩也与CPU性能有直接关系。

不过操作系统如果对创建进程、管道通信等等功能进行优化,也能提高测试成绩,因此UnixBench是既测试CPU也测试操作系统,内存和硬盘性能也占了一定的比重。在不同的系统中,UnixBench测试成绩的差异会比SPEC CPU的测试的差异大一些。

因为UnixBench不是单纯测试CPU的计算能力,而是体现电脑的综合性能,所以多核并行的效率比较低,单核性能越高的就越有优势,更符合各种应用软件的实际情况。总体上看,UnixBench的测试成绩代表的是电脑执行日常任务的性能表现。



3A6000的UnixBench测试成绩也相当不错,单任务成绩比10代i3-10100F高一些,多任务成绩要低一些。3A6000多任务成绩比i3-10100F低不是CPU的原因,应该是受到了操作系统的影响,x86版本的UOS系统对多任务并行的优化可能要比Loongnix更好一些。但随着龙芯对操作系统的优化和升级,以后UnixBench的测试成绩也自然地会随之提高。

把13代i3-13100F和AMD R5-5600G锁定在2.5GHz后,R5-5600G因为有6个物理核心,所以多任务成绩略高于3A6000,其它的成绩都比龙芯3A6000低。UnixBench的测试成绩又一次说明了龙芯3A6000电脑的综合性能与10代酷睿i3是相同水平,也略微超过了2.5Ghz时的13代酷睿i3和AMD Zen 3代。

国产CPU中只有海光C86-3250凭借8核16线程,以两倍的核心数量规格在多任务测试中胜过了龙芯3A6000。兆芯和飞腾的两款8核CPU单任务成绩很低,3A6000是它们的2.5倍以上,它们8任务并行的成绩只是与4核的龙芯3A5000及鲲鹏920接近,大约是3A6000的一半。

内存访问带宽测试——STREAM

内存频率和通道数量并不等价于内存访问速度,访存速度也取决于内存控制器的性能,内存控制器和内存总是快的等慢的,谁慢听谁的。内存控制器是CPU中一个重要的组成部分,对于CPU的各种功能部件龙芯都一直坚持自主设计。

目前似乎还没有哪款CPU的内存访问速率能达到理论带宽,比如DDR4-3200双通道的理论带宽上限超过50GB每秒,但即使13代酷睿的实际访存速率也只能达到43GB每秒左右。

  Linux下测试内存访问速率通常是使用Stream测试软件,它也是以源码方式提供,根据编译参数不同而得到支持单线程和多线程测试的两种版本。通过设置运行时的参数,还可以让Stream支持各种线程数量,比如在8个核心的CPU上测试4个线程的内存访问速率。

内存访问速率除了受限于内存控制器和内存的性能之外,还与应用程序有密切关系。没有任何正常的软件会只读写内存而不干点别的事情,像Stream这种内存的带宽测试软件也是如此,Stream是在模拟普通应用软件访问内存的方式——在循环中读写数组。因此Stream测试得到的内存访问速率,就能代表普通应用软件访问内存的速率。

龙芯3A6000重新设计了内存控制器,内存访问效率相对于3A5000有飞跃式的进步。下面的图表展示了在使用Steram软件默认的编译参数时,对3A6000和两款Intel CPU的测试结果。因为10代i3搭配H系列主板时最高只能支持到DDR4-2666内存,所以我借了一块Z490主板测试了它使用DDR4-3200内存时的访问速率。

我分别进行了单线程、4线程、全核心的内存访问速率测试。测试成绩的单位是兆字节每秒,每一个子项的测试细节不必深究,反正是越快越好。从测试结果来看,3A6000的内存控制器水平比10代酷睿高,比13代酷睿差,峰值接近42GB每秒,说明龙芯自主设计的内存控制器也达到了主流水平。



3A6000的内存控制器相对13代酷睿来说还需要继续完善,除了访存速度不如13代酷睿之外,最明显的问题是4线程的访存速度居然比8线程更快。不过因为龙芯是第一次实现超线程的设计,出现这样的现象我觉得可以理解。要是与其它的国产CPU对比,即使龙芯3A6000较差的那一组成绩也是最优秀的,是遥遥领先、一骑绝尘的存在。



通过对各款CPU访存性能的测试,可以发现因为内存控制器的效率不同,即使内存的规格相同,访存速度也会有几倍的差距。当前国产CPU中只有龙芯3A6000能比较完美地发挥DDR4内存的性能,包括3A5000在内的其它国产CPU的内存访问效率都难以令人满意。

能买到的内存控制器IP性能都不高,就像高性能的CPU核心一样属于非卖品。目前国产CPU中只有龙芯通过不断的自主迭代升级,使DDR4内存控制器的效率能与Intel和AMD相提并论。在DDR4的赛道上,龙芯3A6000已经终结了国产CPU之间的比赛。

一些国产CPU厂商已经在准备升级到DDR5内存了,但龙芯要到下一代7000系列才支持DDR5内存。一是因为国内短期内不会有自主的DDR5内存,二是因为龙芯还没有把DDR4内存的性能发挥到极限。如果仅仅为了利于宣传而兼容DDR5的内存规范,但却体现不出DDR5的内存性能,那么除了徒增成本,就没有任何的实际意义。



时间:  2023-8-29 15:08
作者: happyegg

总结

龙芯3A6000在基础性能测试中,部分超过了10代酷睿i3,也有部分还有10%左右的差距。主要是因为最新版本的操作系统和编译器还没有发布,目前版本的优化水平相对于x86还有一些距离。以后随着操作系统和编译器的优化逐渐到位,这一点差距也一定能被补上。

尽管在相同频率的时候,龙芯3A6000的单核性能追平了Intel 酷睿13代,但由于工艺落后,以及资金投入不足,龙芯3A6000的主频较低,实际性能仅相当于酷睿10代i3。

工艺和主频在短期内不会有明显的改善,龙芯的下一代CPU产品仍然以提高每GHz的性能为主,将与Intel长期保持低频打高频的局面。美国对我国的自主CPU不会放松工艺限制,但对我国的引进技术CPU倒有可能网开一面。因此自主CPU只能依靠境内相对落后的工艺制程与进口产品展开竞争,也就必须继续强化CPU设计能力,通过提升每GHz的性能抹平工艺差距引起的性能差距。

完全自主的龙芯3A6000每GHz的性能追平了13代酷睿,也使通过引进技术发展国产CPU的路线遭遇了最严重的危机。因为依赖引进技术的CPU企业普遍缺少改进CPU核心设计的能力和动力,长期以来都是依靠更先进的工艺提升主频以及堆砌更多的核心来提高CPU性能。现在它们即使能获得使用先进工艺的特别许可,但买不到能与13代酷睿匹敌的CPU核心设计也是瞎子点灯。

美国一方面禁止向中国出售高性能的计算产品,禁止中国企业使用先进的芯片生产工艺,另一方面又有限度地向中国企业出售CPU架构授权、IP核授权、专利授权,帮助中国CPU企业在美国可控的程度下成长,事实证明美国的策略没有实现它希望的结果。

因为在技术方面依赖美国的中国CPU企业,成长速度受到了美国限制,所以给国内自主CPU留下了生存空间,无法完美地遏制自主CPU崛起。美国如果想要补救,那么就需要向中国企业出售IPC高于13代酷睿的CPU核心,但这样就与限制中国发展高性能CPU的政策产生了矛盾,实际上美国几年前就已经不再向中国企业提供更先进的CPU核心及架构授权,转而一心一意地以更直接的手段打击和限制中国自主CPU的发展。

但是龙芯未雨绸缪早当先,居安思危谋长远,主动抛弃了与美国有牵连的MIPS指令集,所有CPU产品都已经基于自主指令集龙架构(LoongArch)重新设计。龙芯的CPU生产也使用境内可控的工艺,甚至建立了全面使用国产设备的芯片封装测试厂。龙芯也一直在追求EDA工具的国产化,与国内的EDA软件企业进行了深入合作。

龙芯已经把防御能力点满,美国之前对龙芯实施的制裁,甚至都没有激起一丁点波澜。龙芯仍然按照既定的时间表稳健地发展,3A6000也如期地展现在大家眼前,然后年底量产、发布、销售,节奏一点儿都没乱。

龙芯规划的后续产品中,不止有单核性能更高的且集成了8个核心的3B6000,还有分别集成了16个和32个核心的3C6000和3D6000,这些产品都计划在明年发布。3C6000和3D6000的CPU核心与3A6000相同,并针对服务器CPU核心数量多的特点,改进了多核及多路互联的效率,使CPU并行效率进一步提升。



在新的核心设计通过3B6000得到验证之后,就会推出32个和64个核心的3D7000和3E7000。6000和7000系列的服务器CPU完全具有与Intel高端的同类产品竞争的实力。无论是对比单核性能还是对比多核性能,都是相同的性能水平。

龙芯3A6000的诞生,标志着龙芯已经从被动防御转为了防守反击的阶段。龙芯二十年如一日坚持自主设计,才能有现今的成就。只有脚踏实地、实事求是、自强自立才能真正与国际接轨,成为支撑世界信息技术发展的擎天巨柱。



时间:  2023-8-29 15:08
作者: liuwang78

jnjn 发表于 2023-8-29 14:49
菊花什么时候采购

菊花要照顾美帝的生意,不然美国朋友该倒闭了
时间:  2023-8-29 16:04
作者: SOHU2021

菊花啥时候愿意采购龙芯?
时间:  2023-8-29 16:38
作者: 没事来看看

SOHU2021 发表于 2023-08-29 16:04:38 菊花啥时候愿意采购龙芯?

客户要啥,华为就买啥卖啥
时间:  2023-8-29 16:44
作者: master123

happyegg 发表于 2023-8-29 14:51
得等他们想通了
也许他们一直想不通那就没办法了

可能90%+的工具软件都没法跑,有心无力。
时间:  2023-8-29 16:47
作者: smartwang

只比IPC没用的,频率跑不上去,性能就是比人差,能跑到多少频率是CPU设计重要的一方面。
时间:  2023-8-29 16:54
作者: happyegg

smartwang 发表于 2023-8-29 16:47
只比IPC没用的,频率跑不上去,性能就是比人差,能跑到多少频率是CPU设计重要的一方面。

IPC才是根本,IPC意味着低频跑高性能、低能耗获得高性能。
cpu的几年来性能增长增长了几十倍上百倍,然而频率增长并不大,只是从2G增长到4-5G左右。
那些标注高频的,实际上并不能持续工作,只能高频工作一瞬间或一会儿就得降频,所以实际性能并高不到哪里。
就像intel十代 10100标注频率达到4.2G,然而综合性能只相当于龙芯2.5G固定频率的综合性能而已,它的高频性能只是昙花一现。
再看服务器领域,普遍的只有2-2.5G左右是常规主力,高频只是充数。


时间:  2023-8-29 17:01
作者: happyegg

master123 发表于 2023-8-29 16:44
可能90%+的工具软件都没法跑,有心无力。

90%倒不至于,如果龙芯是90%工具跑不了,那RISC-V就简直可以说99%的工具跑不了了。鸿蒙钊哥都说RISC-V要达到龙芯的生态成熟度大概要10年。

龙芯现在Archlinux官方包,整体移植进度大约为x86_64的77%,至少大部分是可用的。目前龙芯已进入Debian 官方支持,很快一大堆工具会进一步完善起来。现在龙芯是并入liunx kenrel主线的,基本上开发应用和在arm上没有太大区别。
甚至龙芯支持直接使用linux x86运行,只是有些需要适配而已,这恐怕不少地方比arm还方便


时间:  2023-8-29 17:11
作者: smartwang

happyegg 发表于 2023-8-29 16:54
IPC才是根本,IPC意味着低频跑高性能、低能耗获得高性能。
cpu的几年来性能增长增长了几十倍上百倍,然而 ...

频率需要跑多快,CPU会自动调整,看应用的需求。
性能要求低的应用要你龙芯干什么,arm手机就能干,还省电。
性能要求高的应用,人家频率能飚的上去,龙芯就不行。
龙芯老偷换概念,intel要是和龙芯跑一样频率怎么样怎么样,好像CPU最高能跑多少频率并不重要,殊不知这里面有很深的技术积累。
时间:  2023-8-29 17:18
作者: axuan

搞it的都知道迭代 不是说技术不行 而是应用与问题场景得花时间才能碰上 碰上才能改 这就是积累 少了这个过程你讲能多好多好 这是山炮
时间:  2023-8-29 17:36
作者: master123

happyegg 发表于 2023-8-29 17:01
90%倒不至于,如果龙芯是90%工具跑不了,那RISC-V就简直可以说99%的工具跑不了了。鸿蒙钊哥都说RISC-V要达 ...

即使在LINUX平台,你拿到的工具软件都是编译过的执行程序。那些公司会用龙芯提供的编译器重新编译一次吗。比如每天必用的MATLAB,XILINX,CCSTDUIO,CADENCE都是只能在Intel指令集跑,除非这些工具都有相应的国产工具。
时间:  2023-8-29 19:04
作者: 伤心小镇

happyegg 发表于 2023-8-29 14:52
为了探索龙芯3A6000的性能水平,我在申请到测试机之前,就已经开始了漫长的测试过程。下面这张图中,三款进 ...

这才是专业!
时间:  2023-8-29 19:09
作者: 伤心小镇

master123 发表于 2023-8-29 16:44
可能90%+的工具软件都没法跑,有心无力。

只要性能够强,会有应用主动来适配的
时间:  2023-8-29 19:15
作者: master123

伤心小镇 发表于 2023-8-29 19:09
只要性能够强,会有应用主动来适配的

美国商务部能批准吗?
时间:  2023-8-29 20:44
作者: happyegg

master123 发表于 2023-8-29 19:15
美国商务部能批准吗?

又不是啥都要美国商务部批准
至少各种开源工具都已经和loongarch接上头了,绿色的是已经官方支持,其他很多是已经跑通,只是程序上未官方而已,比如debain、fedroa等都是有可运行版本的,也就是说用loongarch是能用的
✅binutils ≥ 2.40
✅gcc ≥ 13.1
✅glibc ≥ 2.36
✅LLVM ≥ 16.0.0
✅Haskell (GHC) ≥ 9.6.1
✅Go ≥ 1.21
✅Rust ≥ 1.71.0
🈳FreeBSD
✅Linux ≥ 6.2
🈳OpenBSD
💴RT-Thread
✅EDK II
✅QEMU ≥ 7.
✅.NET
🔧JavaScriptCore ≥ ?
⛔LuaJIT
🔧OpenJDK
🔧sljit
✅SpiderMonkey ≥ 107
✅V8 ≥ 9.5.3
✅Xbyak LoongArch64
🔧AOSC OS
✅CLFS for LoongArch
🔧Debian
🔧Fedora
✅Gentoo
🔧LFS LoongArch Edition ≥ 12.0
✅Loong Arch Linux
✅Slackware
时间:  2023-8-29 20:51
作者: happyegg

master123 发表于 2023-8-29 17:36
即使在LINUX平台,你拿到的工具软件都是编译过的执行程序。那些公司会用龙芯提供的编译器重新编译一次吗。 ...

龙芯的重要意义就是摆脱windows带来的桎梏,顺道支撑底层信息系统发展。生态系统不自己建设永远发展不起来,愚公移山,始于足下。
而实在要用这些软件,龙芯也不是一定跑不起来,因为龙芯有软硬件协同的二进制翻译系统,不用安装widows系统,直接运行windows程序,比如photoshop、CS游戏等以及至少有上千款windows游戏可以在龙芯上运行,那么专业软件也可以通过这种方式。
龙芯这两年挑选了100款主要流行软件进行优化,直接就可以在应用市场下载安装。过两年随着系统成熟,用上大几千款软件一点问题没有。
现在龙芯自己设计芯片的EDA甚至就运行在龙芯服务器上,以往这种东西只跑在Windows集群上。

时间:  2023-8-29 21:00
作者: haigouhuan

提示: 作者被禁止或删除 内容自动屏蔽
时间:  2023-8-29 21:15
作者: happyegg

haigouhuan 发表于 2023-8-29 21:00
哈哈,本贴以及类似龙芯的帖子,从来就吸引不了银弹、咖啡、欧8、钢琴等等等们进来斐滕。原因无它,楼主,你 ...

没事,这已经算很好的舆论环境了
不胡说八道就已经谢天谢地
时间:  2023-8-29 21:26
作者: master123

happyegg 发表于 2023-8-29 20:51
龙芯的重要意义就是摆脱windows带来的桎梏,顺道支撑底层信息系统发展。生态系统不自己建设永远发展不起来 ...

那些能在龙芯上跑的软件是源代码经过龙芯编译器MAKE的。我不知道现在普遍使用的工具软件有多少能在龙芯上运行?美国商务部是否允许供应商提供这个版本?
感觉这与芯片加工一样,最终要走通所有的环节。目前只能一步一步来。
时间:  2023-8-29 22:14
作者: haigouhuan

提示: 作者被禁止或删除 内容自动屏蔽
时间:  2023-8-29 22:14
作者: haigouhuan

提示: 作者被禁止或删除 内容自动屏蔽
时间:  2023-8-29 22:40
作者: happyegg

master123 发表于 2023-8-29 21:26
那些能在龙芯上跑的软件是源代码经过龙芯编译器MAKE的。我不知道现在普遍使用的工具软件有多少能在龙芯上 ...

二进制翻译的win x86程序并没有编译过的吧,还编译那就失去了意义了,这里面的主要问题是缺一些api库,但不是不可解决。
比如龙芯就搞了打印机驱动,适配市面上95%以上打印机,就是采用二进制翻译技术,直接拉出来就能用,覆盖能力比常规的arm、linux x86系统还要强得多
linux x86 有些是可以直接双击打开运行的。
可能比较难搞的是一些驱动等专用的东西
时间:  2023-8-29 23:29
作者: haigouhuan

提示: 作者被禁止或删除 内容自动屏蔽
时间:  2023-8-29 23:29
作者: haigouhuan

提示: 作者被禁止或删除 内容自动屏蔽
时间:  2023-8-30 07:08
作者: master123

haigouhuan 发表于 2023-8-29 22:14
不能!
只有你家的鲲鹏、麒麟可以。
你家还可以修改Arm指令集。

小丑!中国高端制造的新突破踩了你的尾巴?
时间:  2023-8-30 07:10
作者: master123

happyegg 发表于 2023-8-29 22:40
二进制翻译的win x86程序并没有编译过的吧,还编译那就失去了意义了,这里面的主要问题是缺一些api库,但 ...

不编译成对应于特定CPU的二进制代码怎么能运行?或者有对应的虚拟机来解释,这也包含编译的过程。
时间:  2023-8-30 08:52
作者: wenxue01

happyegg 发表于 2023-8-29 14:51
得等他们想通了
也许他们一直想不通那就没办法了

这里苍蝇真多
时间:  2023-8-30 08:59
作者: 114_starlight

由市场来选择~
时间:  2023-8-30 09:11
作者: happyegg

master123 发表于 2023-8-30 07:10
不编译成对应于特定CPU的二进制代码怎么能运行?或者有对应的虚拟机来解释,这也包含编译的过程。

因为龙芯有硬件二进制翻译,加上带有模拟的win api比如box64或者wine之类的软件就能做win x86的运行。而linux x86本身就是linux api接口,只要有x86二进制翻译硬件就能运行了。当然有些部分需要调整下。
时间:  2023-8-30 09:28
作者: happyegg

龙芯二进制翻译是跨指令翻译系统,硬件上预留了x86、arm、mips、riscv统统翻译成loongarch运行的机制,机制都是相通的。

想在龙芯电脑上运行windows软件,可以看b站视频【包教包会:龙芯3A5000运行Windows软件和安装Loongnix系统】 https://www.bilibili.com/video/BV1wS4y137yT

目前龙芯上运行windows程序可能比在arm机子上裝windows系统在某些软件上更高效、更流畅,比如飞腾cpu虽然有的人装上了widows arm版本,然而arm cpu孱弱的单核性能无法支撑这些软件的流畅运作,还有各种硬件bug,支撑不了生产使用。

甚至龙芯二进制翻译的photoshop进行图形处理,速度比原生x86的兆芯还有迅速,可以看这个【8核更好还是4核更强?真实对比龙芯、兆芯、飞腾、Intel在UOS系统上的办公体验】 https://www.bilibili.com/video/BV1M24y1979k/

目前重点针对x86,明年可能在x86成熟后把功能赋能给arm,随着mips的式微龙芯可能不再做mips翻译,riscv除非生态够高否则可能不一定去做

但二进制翻译不管怎么说都只是一个补充和过渡,龙芯还是重点做loongarch原生发展。毕竟大多数linux高级应用有条件按原生出品

今年上半年龙芯的服务器出货已经超过1个亿,虽然不大,但说明生态是可以建设的
时间:  2023-8-30 09:41
作者: yooyi

还在用3A4000呢,感觉还是有点卡的,什么时候可以把我这边换了
时间:  2023-8-30 09:57
作者: XJLadmin


时间:  2023-8-30 10:07
作者: happyegg

master123 发表于 2023-8-30 07:10
不编译成对应于特定CPU的二进制代码怎么能运行?或者有对应的虚拟机来解释,这也包含编译的过程。

相关二进制翻译运行演示,可以看41楼的帖子。
有不少爱好者自己掏钱买的机子已经用了3A5000有一两年了,完全替代windows x86主机用于日常工作、生活没什么问题。当然专业化的东西可能有些差异。
龙芯系统也用在很复杂的国产化大型甲级医院系统的替代工作中,过去这个领域一般认为windows是不可替代的,包括arm系也做不到,但他实际上实施了且很多专业化领域都实现了应用,那么其他专业化场景只是需要时间耕耘而已。
就像EDA,过去认为不可替代,且只能在win上跑。然而现在龙芯部分EDA在龙芯的服务器跑,而且还要分发给全国的高校的集成电路芯片设计相关专业应用。
时间:  2023-8-30 11:08
作者: 余_9943


时间:  2023-8-30 16:26
作者: tc5935392

不是行业的,只要价格到位,国产替代是不缺市场的。就现在工作接触而言,没啥是不可替代的,质量差点都可以接受,民用领域
时间:  2023-8-30 17:39
作者: master123

happyegg 发表于 2023-8-30 10:07
相关二进制翻译运行演示,可以看41楼的帖子。
有不少爱好者自己掏钱买的机子已经用了3A5000有一两年了, ...

非抬杠,纯技术讨论。
非CPU结构专业人士,对于这种结构有些疑问。
这种结构可以划分为两个模块:1 INTEL 指令集硬件重新解释模块;2 龙芯CPU执行模块。
编译过的INTEL执行代码所对应的INTEL CPU与龙芯肯定结构有所不同,举例来说进程数。
与进程相对应的MMU是按INTEL cpu配置还是按龙芯的进程配置?
cache是属于INTEL CPU还是龙芯CPU?还是有两份?
时间:  2023-8-30 21:53
作者: happyegg

master123 发表于 2023-8-30 17:39
非抬杠,纯技术讨论。
非CPU结构专业人士,对于这种结构有些疑问。
这种结构可以划分为两个模块:1 INT ...

    没了解那么清楚,龙芯的翻译是指令级的翻译,大概相当于x86二进制代码中有个加法指令,那么龙芯指令也有对应的加法指令,但实际上在机器硬件的表现只是地址的不同而已,在逻辑上可以相同或者相似,可以用不同的电路实现相同的功能,只要龙芯能够维护好地址逻辑的对应关系,就能自动指向相应的的地址链条,得到相同的逻辑结果,然后其行为在操作系统通过ABI识别行为实际上是相似的。
这可能要看相应的论文以下是LAT的一些简况:

[size=1.1em]【关于龙芯LAT二进制翻译】:
基于BT引擎的兼容性;旨在做到自主可控/可信要求的同时,也实现对于x86/ARM/MIPS/RISC-V的大宗应用生态的兼容性,包括针对BIOS,内核,编译器和汇编器以及应用程序:避免核高基项目关于“自主重要还是兼容重要”的争吵。关于二进制翻译,龙芯搭载基于LoongArch指令集的LinuxOS,其中除了运行原生的LoongArch兼容应用程序,还能通过二进制翻译的方式兼容MIPS/RISC-V/ARM/x86几种平台的Linux程序;使用LoongArch翻译任何指令时大致流程都是相同,只是随着指令系统的差异而在效率上也会有所差异。以及性能方面对比QEMU模拟器的性能损失20X左右,LAT的硬件加速显著提高跨指令系统的运行效率。

龙芯LAT - 访存地址的二进制翻译和加速
举例:for x86的二进制翻译
【BTW - 1:有质疑LoongArch加了许多用于二进制翻译支持的指令,面积和开销都会很大】;这里辩证的是,LoongArch共计2500+指令,其中基础指令仅337条,二进制翻译指令增加了176条,这个面积代价并不意味着会增加50%,因为我们知道通用CPU中几乎80%的面积都在为ALU提供足够的数据和指令,还有多级的高速缓存cache、转移猜测表、动态调度的那么多队列,那些微架构的东西和开销是跟指令系统无关的,都是微架构的开销;所以指令系统即使有限度的扩大一些也不会占太多面积和开销。另外在运算器里面,80%的面积都在浮点运算(浮点运算器更占面积),浮点运算方面大家基本都差不多是比较完备的,龙芯的二进制翻译主要是涉及定点运算和访存地址的运算这两个方面;所以从这个角度上,龙芯的二进制翻译支持,它硬件的面积开销应该就是1%-2%,对延迟的开销也会很低。
【BTW - 2:关于BT引擎的知识产权风险】;用胡伟武老师的话讲,二进制翻译是一个向死而生的设计;大都为了新架构铺路而临时使用,IBM/HP/INTC/Apple/Transmeta/Qcom/NV都在推出新架构的时候用过这项技术;70年代迄今一直在发展,出现数十种不同的BT翻译系统和无数研究论文。关于跨指令二进制翻译的知识产权风险,最典型的就是Transmeta与INTC的官司判例【Transmeta CPU特点是可以执行X86指令,也是用一个DBT动态翻译引擎 来编译或模拟X86指令,然后翻译到它私有的VLIW指令集上;因为是依靠软件栈完成,如果INTC/AMD更新X86指令扩展,那全美达更新软件栈就行,就不用重新设计硬件了,有些性能和功率方面的差异会导致访存取指和执行有问题,全美达通过软件栈也能够多少去调节,甚至硬件设计问题和制造瑕疵也可以通过软件栈来应急修正一下,比如制造瑕疵导致个体功耗过大,那么也可以调节一下功耗和核心性能;全美达最初基本专注在低功耗X86市场,这个尤其体现当时的多媒体指令的支持比如X87和SSE,那个年代对于指令效率相关于性能的要求不苛刻】,这在Intel看来,Transmeta并未向Intel购买X86授权,却正在做X86兼容的CPU;但最终Intel败诉,Transmeta的DBT引擎在北美商用不违法。只不过,当时Transmeta是软件虚拟机,而LoongArch是硬件译码。


时间:  2023-8-30 22:03
作者: coffee198375

牛叉。。。。
时间:  2023-8-30 22:27
作者: wycx

很好!很高兴看到龙芯的进步,在硬件发力的同时,建议做好软件生态的适配,将朋友做的多多的,国产化不再是一句空话!
时间:  2023-8-31 17:35
作者: master123

happyegg 发表于 2023-8-30 21:53
没了解那么清楚,龙芯的翻译是指令级的翻译,大概相当于x86二进制代码中有个加法指令,那么龙芯指令也 ...

这个回答只说龙芯的MMU由2级TLB表构成,没直接解释我的疑问。
感觉这个INTEL指令翻译器是不得以而为之,就像鸿蒙必须兼容安卓一样。需要等到生态圈足够大或者国产工具软件齐全才能去掉。
时间:  2023-9-1 02:11
作者: fhby

境内12nm是什么意思?
时间:  2023-9-2 20:50
作者: happyegg

master123 发表于 2023-8-31 17:35
这个回答只说龙芯的MMU由2级TLB表构成,没直接解释我的疑问。
感觉这个INTEL指令翻译器是不得以而为之, ...

具体的实现,大概需要你去翻龙芯在linux内核上游的各类代码,这东西一时半会是解释不清楚。但是龙芯二进制翻译的可用性是没有疑问的。但是要说生产工具的复杂性,那么EDA工具够复杂了吧,目前龙芯已经明确所有EDA软件可以在龙芯服务器上工作,用龙芯服务器设计龙芯。
本身EDA软件运行很消耗机时,我依稀记得以前龙芯用EDA软件mentor验证一次大概是xx小时(时间太久不记得了),好像是3A4000,晶体管数量1x亿到xx亿级别。
而现在龙芯服务器可以通过二进制翻译将Synopsys、Cadence、Mentor和国产EDA系统全部用在实际生产中,说明这个系统的稳定性、成熟型、可靠性已经有相当的高度。
而且龙芯已经在面向全国高校推广的集成电路教学和百芯计划(推动高校本科生和研究生采用龙芯指令集流片)中在用龙芯服务器提供EDA服务。
以下是9.1日的一个图
龙芯eda.png
另外,龙芯二进制翻译提供的打印机驱动,已经推广到uos和麒麟系统中,他是目前各个国产系统中最完善的打印机驱动,可以实现市面上95%的打印机匹配和打印,远远超过国产x86、飞腾、鲲鹏等的打印机适用能力,在局部领域上实现了超越。
龙芯浏览器在linux、arm版本等,实现了与ie浏览器功能的高度符合,能支持全部网银操作等,也比其他国产芯的生态场景更加完备。
生态和技术是做出来的,绝不是等出来的。


附件: 龙芯eda.png (2023-9-2 20:29, 684.37 KB) / 下载次数 0
https://www.txrjy.com/forum.php?mod=attachment&aid=NTk0NjI2fGUxYWZjN2UwfDE3MzI0MTMwOTB8MHww
时间:  2023-9-2 20:51
作者: happyegg

fhby 发表于 2023-9-1 02:11
境内12nm是什么意思?

境内12nm,就是你能知道的那几家能做的,可以做,不能说。
时间:  2023-9-2 22:37
作者: happyegg


3a6000游戏.jpg


附件: 3a6000游戏.jpg (2023-9-2 22:36, 148.74 KB) / 下载次数 0
https://www.txrjy.com/forum.php?mod=attachment&aid=NTk0NjM2fGQzMjBhY2E2fDE3MzI0MTMwOTB8MHww
时间:  2023-9-12 09:55
作者: wxlsnq

学习了
时间:  2023-9-14 10:17
作者: DingEugene

指令翻译,是个好思路,长见识了。
时间:  2023-9-17 15:02
作者: zhangshihui

学习了




通信人家园 (https://www.txrjy.com/) Powered by C114