套路一:GCC 12/13对LoongArch指令负优化问题
Guee在2023.02月发帖说GCC12存在大量优化空间,并给出了一张极具唬人效果的图,如下图
Guee这个图有这么几个问题:
1、本质这个问题就是个内存数据未对齐导致的数据要经过寄存器绕一圈,但是他的部分代码又被编译器认为是无意义代码,部分汇编又被编译优化掉,然后形成了极大的反差:
2、因为这本质是个编译器内存对齐问题,所以可以用最简单的修改让LoongArch的汇编代码最少,如将4字节的float改成8字节的double或者8字节的long long,LoongArch汇编代码量就是最少得那一个:
float改成longlong:
float改成double
注:为什么不把x86列进来别,因为没有意义,x86是复杂指令集,MIPS、ARM、RISC-V、LoongArch都是属于精简指令集,所以在绝大部分情况下汇编代码量都应该是x86最少(但是执行的时候,x86指令需要拆解成更多的微指令),所以直接比较没有意义。
所以实际情况:Guee拿了一张由于自己代码编译优化掉字节未对齐的汇编来忽悠不懂汇编和字节码对齐问题的人
套路二:10100需要使用高端主板+水冷才能上49分
实际情况:10100用低端主板+风冷就可以轻松上48.5分
Guee实际上对10100测试过好几次,分别包括:
1、10100在散热不佳的情况下,定频在3.6Ghz Spec 2006 int 跑分为43分,具体参考Guee在知乎的那篇性能强到没朋友的评测
2、10100使用H510低端主板+风冷+DDR4 2666的情况下,spec 2006 int跑分为48.5分
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%89H510M-2666%E5%8F%8C%E9%80%9A%E9%81%93-%E5%BC%BA%E5%8A%9B%E9%A3%8E%E5%86%B7/int-base-speed/CINT2006.023.ref.txt
3、10100使用Z490高端主板+水冷+DDR4 3200的情况下,spec 2006 int跑分为分49.3
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/CINT2006.006.ref.txt
套路三:拿IPC碰瓷酷睿12/13代处理器
实际上这个这个世界上,关于如何做高性能处理器,一直存在两个派系,分别是“头脑家(brainiac,高IPC,以ARM、苹果为代表)”与“速度魔(speed-demon高频,以Intel、AMD为代表)”,当然国内实际上也有类似问题,比如龙芯高IPC,但是兆芯目前走高频路线。
两种方式实际上都可以提升芯片最终性能。但是ARM、苹果虽然是高IPC的代表,但是实际上频率并不低,比如苹果M3达到了4Ghz。同时我们研究苹果可以发现,苹果高IPC路线貌似越来越难走下去,如近期发售的M3在测试中发现综合IPC居然比M2下降了(频率从M2的3.5Ghz提升到M3的4Ghz,提升0.5Ghz,工艺从5nm提升到3nm),参考知乎大佬JamesAslan的性能评测图:
通过微架构逆向分析(JamesAslan大佬的分析),也可以发现比如M3的L1缓存从原先的3周期,变成了M3的4周期,高频设计带来部分设计项延迟加大,这个很难避免。所以回到龙芯,龙芯实际上也很难做到保持现有IPC的前提下大幅度提升频率,很可能也和苹果类似,后续提升频率时,为了高频放弃一些高IPC设计。
套路四:用Intel各代低端U代表Intel技术,典型的比如最近发帖
https://tieba.baidu.com/p/8776543033?pid=149233289545&cid=#149233289545
里面有这样一张图
但是实际上随便找找都知道,Intel各代单核性能i3向来是最差的(砍缓存、砍频率、砍核心),实际上的效果图应该是这样的(这里龙芯还用的是宣传的分数,实测分数还要降好几分):
另外3B6000从目前规划看龙芯应该是2025Q2出
Guee在2023.02月发帖说GCC12存在大量优化空间,并给出了一张极具唬人效果的图,如下图
Guee这个图有这么几个问题:
1、本质这个问题就是个内存数据未对齐导致的数据要经过寄存器绕一圈,但是他的部分代码又被编译器认为是无意义代码,部分汇编又被编译优化掉,然后形成了极大的反差:
2、因为这本质是个编译器内存对齐问题,所以可以用最简单的修改让LoongArch的汇编代码最少,如将4字节的float改成8字节的double或者8字节的long long,LoongArch汇编代码量就是最少得那一个:
float改成longlong:
float改成double
注:为什么不把x86列进来别,因为没有意义,x86是复杂指令集,MIPS、ARM、RISC-V、LoongArch都是属于精简指令集,所以在绝大部分情况下汇编代码量都应该是x86最少(但是执行的时候,x86指令需要拆解成更多的微指令),所以直接比较没有意义。
所以实际情况:Guee拿了一张由于自己代码编译优化掉字节未对齐的汇编来忽悠不懂汇编和字节码对齐问题的人
套路二:10100需要使用高端主板+水冷才能上49分
实际情况:10100用低端主板+风冷就可以轻松上48.5分
Guee实际上对10100测试过好几次,分别包括:
1、10100在散热不佳的情况下,定频在3.6Ghz Spec 2006 int 跑分为43分,具体参考Guee在知乎的那篇性能强到没朋友的评测
2、10100使用H510低端主板+风冷+DDR4 2666的情况下,spec 2006 int跑分为48.5分
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%89H510M-2666%E5%8F%8C%E9%80%9A%E9%81%93-%E5%BC%BA%E5%8A%9B%E9%A3%8E%E5%86%B7/int-base-speed/CINT2006.023.ref.txt
3、10100使用Z490高端主板+水冷+DDR4 3200的情况下,spec 2006 int跑分为分49.3
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/CINT2006.006.ref.txt
套路三:拿IPC碰瓷酷睿12/13代处理器
实际上这个这个世界上,关于如何做高性能处理器,一直存在两个派系,分别是“头脑家(brainiac,高IPC,以ARM、苹果为代表)”与“速度魔(speed-demon高频,以Intel、AMD为代表)”,当然国内实际上也有类似问题,比如龙芯高IPC,但是兆芯目前走高频路线。
两种方式实际上都可以提升芯片最终性能。但是ARM、苹果虽然是高IPC的代表,但是实际上频率并不低,比如苹果M3达到了4Ghz。同时我们研究苹果可以发现,苹果高IPC路线貌似越来越难走下去,如近期发售的M3在测试中发现综合IPC居然比M2下降了(频率从M2的3.5Ghz提升到M3的4Ghz,提升0.5Ghz,工艺从5nm提升到3nm),参考知乎大佬JamesAslan的性能评测图:
通过微架构逆向分析(JamesAslan大佬的分析),也可以发现比如M3的L1缓存从原先的3周期,变成了M3的4周期,高频设计带来部分设计项延迟加大,这个很难避免。所以回到龙芯,龙芯实际上也很难做到保持现有IPC的前提下大幅度提升频率,很可能也和苹果类似,后续提升频率时,为了高频放弃一些高IPC设计。
套路四:用Intel各代低端U代表Intel技术,典型的比如最近发帖
https://tieba.baidu.com/p/8776543033?pid=149233289545&cid=#149233289545
里面有这样一张图
但是实际上随便找找都知道,Intel各代单核性能i3向来是最差的(砍缓存、砍频率、砍核心),实际上的效果图应该是这样的(这里龙芯还用的是宣传的分数,实测分数还要降好几分):
另外3B6000从目前规划看龙芯应该是2025Q2出