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

【知乎】龙芯6000性能已经赶上十代酷睿了,兆芯海光的性能为啥还这么差?

2023-11-01 19:00 作者:ACFUN-AK  | 我要投稿


龙芯6000性能已经赶上十代酷睿了,兆芯海光的性能为啥还这么差?

关注者

7

被浏览

6,985

Eidosper 也关注了该问题

关注问题写回答

邀请回答

好问题

添加评论

分享

修改问题


4 个回答

默认排序




传说中的胖子


战斗工程猫

已关注


没意义。很无聊。

所谓龙芯的“追上十代酷睿”,不就是guee搞的那个测试,SPECCPU2006的cint(单实例整数)龙芯跑43分,他比较的10100F跑42分嘛。

酷睿这边:选桌面级最低型号10100F,有可能还锁频;编译谈不上优化。

龙芯这边:还没发布且很可能无法后继制造的型号;用定向优化过的编译;用台积电12纳米堆16MB三级缓存拿对10100F的6MB三缓的优势。

来随手列一点证据。

AnandTech SPEC2006 得分比较

十代酷睿里明明有同样采用16MB三缓的i7-10700,58.5分。单实例跑分cint分(不是多核跑分cint_rate)并不受核数影响,为何龙芯不比它?是因为cint06受缓存容量影响比较大而不能选,还是因为10700基频低会导致关睿频的分数低得太明显了不能选,留给他们狡辩。

而且这个表述本身就比较……便宜。为什么不表述为“有8gen2的七成”呢。无非是为了利用不关注的人的陈旧印象罢了。就一个字,便宜。

另外,有趣的是,龙芯官方承认是按跑分而非业务profile优化。现在不提供SPECCPU 2017分数是没按它调整好。还要说什么。



发布于 2023-10-31 13:56・IP 属地广东

已赞同 10收起评论

分享

收藏喜欢


收起

发布一条带图评论吧


2 条评论

默认

最新

查看被折叠评论




Eidosper


冰消雪融,花为汝开~

已关注


客观来说龙芯采用了“力大飞砖”的策略,例如3A5000配备了高达16MB的三级缓存,这是什么概念呢?4core花了145mm2这又是什么概念呢?


AMD的7950x旗舰CPU是16core配64MB三级缓存(每core 4MB),采用vcache的7900x3d也不过是8core96MB缓存。

intel的10100f的4c8t区域也就是75mm2,tsmc12大体也能认为是intel14同级别制程。


龙芯单core配4MB的缓存那可以理解成是“范大将军弹药量”,基本上是IA两家顶配才会有的。像12490这种6core也只有20MB的缓存。

而兆芯这边的缓存就比较小了,一些对于cache容量敏感的跑分子项会吃大亏的。


我们不妨先看看10代酷睿最低的10100:

总面积125mm2左右,含有GPU。

龙芯这边6000暂时还没有数据,5000有:

3A50003A600010100die面积145mm2左右未知125mm2左右去GPU后面积145mm2左右同上75mm2左右制程TSMC 12nmTSMC 12nmIntel 14nm主频2.5GHz2.5GHz3.6GHz(睿频4.3GHz)核心数4C4T4C8T4C8T三级缓存16MB未知6MB

可以大致了解到,3A5000在基本同代制程的情况下,以二倍面积、二倍多的缓存去对标10100。



发布于 2023-10-31 20:17

赞同 12收起评论

分享

收藏喜欢


收起

发布一条带图评论吧


3 条评论

默认

图吧垃圾王

其实设计能力落后的情况下堆缓存算不上错,之前垃圾佬也分析过,其实45nm时代的775 CPU就已经给过每core 3M L2的缓存规模,用起来也算是相当不错了能效也还行,甚至笔记本的移动版一些程度上能反杀桌面端的金牌奔腾在笔记本跑分能效的情况。

龙芯真正的问题是持续攻击其他国产芯片比如这个问题,这恐怕除了龙芯圈以外不会有人喜欢。

最新

最终范式

3a6000的面积相比3a5000缩小了20%

3 小时前 · IP 属地浙江

回复2

碎虚

3A6000确实算是巨大提升了,同工艺下性能大幅提升,die面积还减少了

8 小时前 · IP 属地上海

回复1

常成

3a6000是128KB L1 I/D,512KB L2,16M L3

10 小时前 · IP 属地湖南

回复喜欢




不爱钓鱼的猫


 关注

你赞同过 TA 的内容


龙粉一贯的特点都是只有他家能研发CPU,其他国产厂商都没研发CPU的能力,这个特点从龙芯的胡xx贯穿到龙粉。


好心提醒一句,老美制裁当下,连华为都不宣传9000s,近期某两家国产厂商未开发布会直接低调开卖,而只有龙芯又是媒体评测、又是软文宣传,在知乎更是一个问题一个问题的求表扬、贬低友商。就你龙那比10100还低20-30%性能3a6000板u1800RMB,价格足足是10100板u600RMB的三倍,还不能装Windows,你觉得在媒体发软文宣传能起到什么效果?真以为普通民众会为溢价三倍、软件生态一团糟的电子垃圾买单?媒体宣传对新创等保护性政策市场真的能产生影响?


然后再来锤一下3a6000是如何实现等价10100的。

先概括结论:龙芯或Guee先将十代酷睿等价成i3 10100(10100单核性能约为10900K不超频情况下的83%,多核性能10100仅为10900K不超频情况下的40%左右),并通过将10100降频17%,再通过定制化的GCC la664专属架构优化编译参数提升12.9%,最后再通过龙芯官方提供的未公开源码的GCC特定优化版本提升7%的跑分性能,实现和降频后的10100相似性能水平。而实际上使用龙芯官方版本(截止今天2023.10.31前)的GCC不开启微架构优化,3a6000单核性能为10100的71.4%(35.7/50),10900K的61%。多核成绩类似,落后10100 30%左右(10100单核有睿频优势,但是3a6000落后的总线影响了多核性能发挥)。


3a6000性能赶上十代酷睿四核处理器由龙芯官方宣称,然后由龙粉Guee测试,并在知乎上发评测报告:guee:详测龙芯3A6000——性能强到没有朋友

在评测中,可以看到这样一个数据比较:

在评测中我们发现,10100的spec 2006 int speed单核跑分为42.5,频率被降频为3.6G,而Intel官方的数据显示10100最高睿频4.3G,全核睿频4.1G。Guee在贴吧解释为需要需要中高端主板和热管或水冷散热10100才能达到49.x分。链接:科技大up主评测3a6000【龙芯吧】_百度贴吧

但实际上10100的TDP是65瓦,spec 2006 int speed为单核跑分,单核TDP为16瓦,我们即使认为单核睿频功耗翻倍,最多也就32瓦,以目前十代主板的供电水平,即使是供电最烂的寨板,也不至于无法提供32瓦的CPU供电,铝制散热器也是可以轻松解决32瓦散热问题。显然这位Guee网友是非常清楚的,但是毕竟不能直接造假,所以调出一个和3a6000优化后相似性能的频率,至于读者由于自己不清楚10100是4.3Ghz这显然是读者自身的问题。

这位Guee 10100的42.5成绩出来后,被多方质疑,Guee为了洗脱自己造假,然后对10100成绩进行了补测,分别使用H510低端主板+2666内存+热管风冷、Z490高端主板+3200内存+水冷。

H510低端主板+2666内存+热管风冷测试结果如下,成绩为48.5:

2023-06/SPEC CPU 2006/i3-10100F(UOS专业版)H510M-2666双通道-强力风冷/int-base-speed/CPU2006.023.log · guee/国产CPU的一些性能测试结果 - Gitee.com

编译参数:

C benchmarks:     -m64 -mavx2 -march=native -mtune=native -funroll-all-loops     -ftree-vectorize -flto -static -Ofast

Z490高端主板+3200内存+水冷测试结果如下,成绩为49.2:

https://gitee.com/guee/CPU-benchmarks/blob/master/2023-06/SPEC%20CPU%202006/i3-10100F%EF%BC%88UOS%E4%B8%93%E4%B8%9A%E7%89%88%EF%BC%89Z490M-3200%E5%8F%8C%E9%80%9A%E9%81%93+%E6%B0%B4%E5%86%B7%E6%95%A3%E7%83%AD/int_base_speed_B/CINT2006.003.ref.txt

编译参数:

C benchmarks:     -m64 -mavx2 -march=native -mtune=native -funroll-all-loops     -ftree-vectorize -flto -static -Ofast

从上述测试结果看,和初步推测的一致,由于是单核成绩,高端主板和低端主板最大的差别在供电,低端主板的供电完全足够10100发挥出该有的单核性能(至于差的0.7分,内存的影响可能更多一点)。B站的部分数码博主的10100最佳成绩为51分,应该也属于正常误差范围。

通过淘宝简单查询我们可以知道:普通4热管散热器在30 RMB左右,6热管散热器在60 RMB左右,高端6热管双塔散热器在80+RMB以上,散热器价格并不贵,普通人完全可以负担。

结论一:10100使用低端主板+热管风冷散热+2666可以正常释放性能,spec2006 int speed成绩为48.5分,guee在贴吧说的“中高端主板+水冷才能测出49.x成绩”属于刻意隐藏了低端主板+风冷10100也能撤出48.5成绩。

2、三级缓存问题,十代酷睿中10100为6M三级缓存,10900K为20M三级缓存,3a6000为16M三级缓存,spec2006跑分是一个三级缓存敏感的测试。通过查阅资料可以知道10900K在不超频的情况下spec 2006 int单核跑分在58分以上,所以究竟10900K单核性能能代表十代酷睿,还是10100单核性能能代表十代酷睿?

3、编译优化,3a6000在下面两个编译优化参数下有两种不同的跑分,其中Test1 spec 2006 int单核跑分为35.7,Test2跑分为40.1(目前3a6000已有开发板在某宝发售,也欢迎各位龙粉用数据来挑战,挑战时请附带编译参数和sepc截图,数据来源:有言以对默无声:华为 VS 龙芯 国产CPU架构初步探测、对比与分析)(以下有部分内容引用“有言以对默无声”):

loongson 3A6000 Test1 -> GCC 8.3 -Ofast -static -flto -march=loongarch64 -mtune=loongarch64 -mlsx -mlasx -funroll-all-loops loongson 3A6000 Test2 -> GCC 8.3 -Ofast -static -flto -mcond-move-int -mforce-drap -mvecarg -march=la664 -mtune=la664 -msimd=lasx -ftree-vectorize -funroll-all-loops

两者的编译优化差异主要在一个mtune使用loongarch64,另外一个使用la664,查阅架构资料可以知道la664为3a6000微架构代号,而在GCC 8.3的官方版本中,我们是无法使用la664参数的,使用该参数需要使用龙芯官方提供的GCC版本:https://pkg.loongnix.cn/loongnix/pool/main/g/gcc-8/gcc-8_8.3.0-6.lnd.vec.36.debian.tar.xz

通过龙芯提供的GCC源码以及GCC更新记录,可以知道龙芯的mtune参数主要有:loongarch64、LA464、LA664。LA664编译选项主要开启了SIMD向量化并行等一系列优化选项,从而能高效地从大L1和L3进行数据预取,造成缓存性能高。龙芯通用的设置为-mtune=loongarch64,LA464为3a5000 微架构的优化参数,LA664为3a6000微架构优化参数。

部分龙粉坚持的龙芯未开启向量优化应该指的是la464,在测试中发现3a5000编译参数中开启向量优化不能带来性能提升;其次很多龙粉存在对向量化误解的情况(目前猜测应该都是受guee误导),他们观察有没有向量化并行的依据居然是跑单核跑分的时候观察其他CPU核是否有占用,这明显属于把多线程并行和向量化并行搞混了,向量化并行指的是利用处理器的128/256/512的向量指令在循环或其他批量操作时一个周期同时处理多个32/64操作数计算。

目前主流的并行技术主要包括:指令集并行(流水线、多发射、乱序执行、分支预测等,编译器或代码都不感知,各家处理器都在用)、向量化并行(使用向量指令优化循环或某些批处理,各家处理器也都在用,通过编译器优化开启)、多线程并行(需要手工代码优化,单线程任务无法通过编译器实现多线程并行优化,操作系统侧可观察到程序占用了多个CPU核心)

龙芯处理器的微架构具有与以往微架构设计不同的地方,GS464V、LA464和LA664都倾向于采用较大规模的ALU,较大的一级缓存,以及激进的SIMD指令优化策略,重视通过编译器优化来改进处理器的每周期指令与数据的吞吐量,通过每周期吞吐更多、更密集的SIMD指令来减少分支预测错误带来的惩罚。-mtune=la664这类指定架构编译选项,会生成更符合该架构的代码,然而对于其它架构,例如la464,那么就是负优化,因为它的4宽度的人吞吐量不能很好处理6宽度的指令,这会在一些应用中带来性能的下降。

在实际开发过程中,我们也不可能为每个CPU单独设置一份编译参数,不可能为LoongArch架构单独出2个或多个不同优化参数的包,所以实际使用意义并不大(最大的意义可能就是跑分了)。

在测试中,同样采用-mtune=alderlake进行针对性优化的Zen3或酷睿同代微架构处理器也可以做到与同样的性能增益幅度,性能提升在10.8%左右(参考图片3,5800x使用-mtune=alderlake的5800x spec 2006 int单核跑出75.9的高分,而使用core-avx2情况下跑分是68.5分)。

R7-5800X Test 1 -> GCC 12.2 -Ofast -fomit-frame-pointer -march=x86-64 -mtune=core-avx2 -mavx -mavx2 R7-5800X Test 2-> GCC 12.2 -Ofast -march=alderlake -mtune=alderlake

同样的事情发生在兆芯的陆家嘴架构上,如果使用-mtune=lujiazui的编译选项,陆家嘴架构的spec性能同样会提高很多。

但是,如果仅用龙芯官方提供的GCC源码,以及开启微架构优化,spec 2006 int单核跑分仍然只有40分左右,这位G网友实际的43分是使用龙芯在评测机器中提供的已编译完成的spec工具完成的,我们可以推测这个未发布的GCC版本采用了更加激进的优化策略,而这种优化策略可能会带来计算结果的不可靠所以导致没发布?(Intel的ICC在某几个版本中就存在计算结果错误的情况)。

4、多核性能,B站的几位数码博主评测中我们可以发现,3a6000的多核性能也只有10100的70左右,包括7z跑分、unixBench跑分等。




最后再扯一下,龙粉的另外一个说辞,龙粉说10100大部分品牌机用铝制风冷散热,主板供电拉胯,实际体验会比测试低。不知道龙粉关注不关注LoongArch目前生态落后,应用软件偏少,目前很多应用依赖x86翻译,而目前龙芯x86翻译性能仅为原生性能的30%。所以如果扯体验10100要打8折的时候,需要关注3a6000实际很多时候要打三折。

另外再扯扯淡,为什么龙芯无法做到宣称的80%翻译性能,讨论这个问题之前,实际上要先研究近期的6000是如何提升性能的:
a、LoongArch是一种新架构,没有任何历史包袱,这就意味着龙指令集可以充分吸收目前已有架构的优点,可以对指令集做优化,删减部分效率低下的指令,同时可以使用激进的向量指令优化。LoongArch指令集比MIPS等传统指令集指令密度提升7%,并开启激进的向量优化行化,进一步提升LoongArch性能。
而这是传统x86、ARM指令集无法比拟的,尤其是x86,x86有极其复杂的兼容关系,再加上Windows系统极其变态的软硬件兼容性要求(比如win11可以直接运行03、04年的程序,甚至通过简单补丁,可以运行90年代的某些程序;又比如win10可以跑15年前的Q8300上。直到win11,最低指令集要求才是AVX2),这导致很多x86程序无法享受向量指令带来的性能优化,尤其是AVX/AVX2/AVX512指令。
b、3a6000使用“-mtune=la664”专属的微架构编译优化参数,可以将3a6000 spec 2006 int单核跑分从35.7(默认为-mtune=LA464)提升到40.1(-mtune=la664);除了微架构优化,龙芯官方也可以通过进一步优化GCC,来提升性能,比如3a6000使用龙芯内部未开源的GCC版本编译的spec2006进一步提高到43分。
但是在翻译x86程序时,由于x86自身指令集复杂的兼容性问题,以及LoongArch的x86翻译指令也只兼容到SSM4,无法直接翻译AVX/AVX2/AVX512指令,会直接导致LoongArch激进的向量优化策略失效。同时并且因为x86程序不可能使用“-mtune=la664”或使用龙芯专属优化的GCC编译,导致b中的优化也失效。而这也直接导致LoongArch在翻译x86指令时,实际性能会比理论性能更低。

我们可以简单计算LoongArch翻译x86的理论性能为:100*0.80*(35.7/43)*0.93=61.7%(解释一下:80%为龙芯官方PPT说明的翻译性能,35.7/43为专属微架构或专属GCC版本优化性能,0.93为向量化带来的指令密度提升性能【这里只是算一个大概,实际上7%的指令密度提升加向量化不止7%的性能提升】)。

龙芯如果真的想靠x86翻译来解决生态问题,那么就以为着自己CPU性能要打六折(当然这个是理论性能,目前实际翻译性能应该是三折或稍多一点)。当然wine实际上也不太好用,性能也有损耗。

所以结论:龙芯要么宣称的时候降低自己的原生性能(降为优化前的分数),要么降低自己宣称的x86指令集翻译性能,这两者属于鱼和熊掌不可兼得。


编辑于 2023-10-31 12:43

赞同 4收起评论

分享

收藏喜欢


收起

发布一条带图评论吧


2 条评论

默认

最新

七月流火

但你不能否认兆芯的性能长期原地踏步吧? 龙芯至少有明显进步, 兆芯还不如龙芯呢.

19 小时前 · IP 属地江苏

回复喜欢

不爱钓鱼的猫

作者

仔细看我第二段话,有些话不好明说

11 小时前 · IP 属地浙江

回复1




好为人师


人工智能的人工智能的人工智能

 关注


龙芯追上的酷睿,可能是i3都不到,海光主要的对手是Xeon,两边不是一个对手。


发布于 2023-10-30 09:51

赞同 2收起评论

分享

收藏喜欢


发布一条带图评论吧


4 条评论

默认

最新

21世纪米客

3a6000四核定位桌面版,服务器版的3c6000,3d6000还没出。

10-30 · IP 属地上海

回复3

不爱钓鱼的猫

比服务器的话Intel铂金8373C 72核144线程、AMD EPYC9754 128核256线程,怎么比,不说Intel、AMD,就2019年的64核鲲鹏920多核成绩3d6000打得过不?

8 小时前 · IP 属地浙江

回复喜欢

不爱钓鱼的猫

当然上面难度可能太大,3c6000打得过150块钱的2690v4不?

8 小时前 · IP 属地浙江

回复喜欢

回眸一笑倒苍生

提问者

xeon的ipc也不比i3高

10-30 · IP 属地上海


Eidosper


冰消雪融,花为汝开~

已关注

你关注的 失传技术字幕组 赞同

龙芯3A5000有几个点:

  1. diesize约为147mm2

  2. 三级缓存高达16MB

  3. 不含显卡、也几乎没有多媒体等功能

  4. 主频约为2.5GHz

  5. 使用二十年前的AMD HT总线进行核间互联

其对比的酷睿10100大概是这样:

  1. diesize约为125mm2

  2. 三级缓存6MB

  3. 含有GPU、DSP等

  4. 主频为3.6GHz、可以睿频4.2GHz

  5. 使用业界先进的intel ringbus总线



编辑于 2023-10-31 20:57・IP 属地四川

已赞同 7收起评论

分享

收藏喜欢


收起

发布一条带图评论吧


2 条评论

默认

最新

图吧垃圾王

捉个BUG,龙芯圈用来对比10100(暴芯)的是3A6000,虽然主频、HT总线之类的特性依然没变就是了……

还有,环形总线也算不上特别先进的东西,垃圾佬的X79用的就是环形总线,当时这玩意最大其实也就是10核20线的水平,不少15核砍下来的12核U反倒表现被10核吊打原因是其内部使用了3条环形总线实现了10核以上的互连……

10-30 · IP 属地辽宁

回复2

Eidosper

作者

好了,我更新了3a5000的dieshot

21 小时前 · IP 属地四川 


【知乎】龙芯6000性能已经赶上十代酷睿了,兆芯海光的性能为啥还这么差?的评论 (共 条)

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