昨天的帖子无故被删,今天再发一次。
龙芯以及某位G字头网友在评测中直接表示3a6000对标十代酷睿四核处理器10100,但通过评测数据研究发现,3a6000实际性能(spec 2006 int rate1)离十代酷睿10100处理器有较大差距,先说结论:
这位G字头网友通过将10100降频17%,再通过定制化的GCC la664架构优化编译参数提升12.9%,最后再通过龙芯官方提供的未公开源码的GCC特定优化版本提升7%的跑分性能,实现和降频后的10100相似性能水平。而使用官方版本的GCC,3a6000单核性能为10100的71%,10900K的61%。
一、10100最高睿频4.3G,全核睿频4.1G。这位G字头网友的评测文章中,10100 spec 2006 int 跑分仅为42.5,并标注10100频率为3.6G。而其他网友以及评测博主显示10100的spec 2006 int rate1跑分在50分左右,G字头网友解释为需要中高端主板和热管或水冷散热10100才能达到49.x分(详情请参考图片1)。但实际上10100的TDP是65瓦,spec 2006 int rate1为单核跑分,单核TDP为16瓦,我们即使认为单核睿频功耗翻倍,最多也就32瓦,即使是供电最烂的寨板,也不至于无法提供32瓦的CPU供电,铝制散热器也是可以轻松解决32瓦散热问题。显然这位G字头网友是非常清楚的,但是毕竟不能直接造假,所以调出一个和3a6000优化后相似性能的频率,至于读者由于自己不清楚10100是4.3G这显然是读者自身的问题。
二、三级缓存问题,十代酷睿中10100为6M三级缓存,10900K为20M三级缓存,3a6000为16M三级缓存,spec2006跑分是一个三级缓存敏感的测试。通过查阅资料可以知道10900K在不超频的情况下spec 2006 int单核跑分在58分以上,所以究竟10900K单核性能能代表十代酷睿,还是10100单核性能能代表十代酷睿?
三、编译优化,3a6000在下面两个编译优化参数下有两种不同的跑分,其中Test1 spec 2006 int单核跑分为35.7,Test2跑分为40.1(参考图片2,目前3a6000已有开发板在某宝发售,也欢迎各位龙粉用数据来挑战,挑战时请附带编译参数和sepc截图):
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版本:网页链接
通过龙芯提供的GCC源码以及GCC更新记录,可以知道龙芯的mtune参数主要有:loongarch64、LA464、LA664。LA664编译选项主要开启了SIMD向量化并行等一系列优化选项,从而能高效地从大L1和L3进行数据预取,造成缓存性能高。龙芯通用的设置为-mtune=loongarch64,LA464为3a5000 微架构的优化参数,LA664为3a6000微架构优化参数。
但是,如果仅用龙芯官方提供的GCC源码,以及开启微架构优化,spec 2006 int单核跑分仍然只有40分左右,这位G网友实际的43分是使用龙芯在评测机器中提供的已编译完成的spec工具完成的,我们可以推测这个未发布的GCC版本采用了更加激进的优化策略,而这种优化策略可能会带来计算结果的不可靠(Intel的ICC在某几个版本中就存在计算结果错误的情况)。
龙芯以及某位G字头网友在评测中直接表示3a6000对标十代酷睿四核处理器10100,但通过评测数据研究发现,3a6000实际性能(spec 2006 int rate1)离十代酷睿10100处理器有较大差距,先说结论:
这位G字头网友通过将10100降频17%,再通过定制化的GCC la664架构优化编译参数提升12.9%,最后再通过龙芯官方提供的未公开源码的GCC特定优化版本提升7%的跑分性能,实现和降频后的10100相似性能水平。而使用官方版本的GCC,3a6000单核性能为10100的71%,10900K的61%。
一、10100最高睿频4.3G,全核睿频4.1G。这位G字头网友的评测文章中,10100 spec 2006 int 跑分仅为42.5,并标注10100频率为3.6G。而其他网友以及评测博主显示10100的spec 2006 int rate1跑分在50分左右,G字头网友解释为需要中高端主板和热管或水冷散热10100才能达到49.x分(详情请参考图片1)。但实际上10100的TDP是65瓦,spec 2006 int rate1为单核跑分,单核TDP为16瓦,我们即使认为单核睿频功耗翻倍,最多也就32瓦,即使是供电最烂的寨板,也不至于无法提供32瓦的CPU供电,铝制散热器也是可以轻松解决32瓦散热问题。显然这位G字头网友是非常清楚的,但是毕竟不能直接造假,所以调出一个和3a6000优化后相似性能的频率,至于读者由于自己不清楚10100是4.3G这显然是读者自身的问题。
二、三级缓存问题,十代酷睿中10100为6M三级缓存,10900K为20M三级缓存,3a6000为16M三级缓存,spec2006跑分是一个三级缓存敏感的测试。通过查阅资料可以知道10900K在不超频的情况下spec 2006 int单核跑分在58分以上,所以究竟10900K单核性能能代表十代酷睿,还是10100单核性能能代表十代酷睿?
三、编译优化,3a6000在下面两个编译优化参数下有两种不同的跑分,其中Test1 spec 2006 int单核跑分为35.7,Test2跑分为40.1(参考图片2,目前3a6000已有开发板在某宝发售,也欢迎各位龙粉用数据来挑战,挑战时请附带编译参数和sepc截图):
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版本:网页链接
通过龙芯提供的GCC源码以及GCC更新记录,可以知道龙芯的mtune参数主要有:loongarch64、LA464、LA664。LA664编译选项主要开启了SIMD向量化并行等一系列优化选项,从而能高效地从大L1和L3进行数据预取,造成缓存性能高。龙芯通用的设置为-mtune=loongarch64,LA464为3a5000 微架构的优化参数,LA664为3a6000微架构优化参数。
但是,如果仅用龙芯官方提供的GCC源码,以及开启微架构优化,spec 2006 int单核跑分仍然只有40分左右,这位G网友实际的43分是使用龙芯在评测机器中提供的已编译完成的spec工具完成的,我们可以推测这个未发布的GCC版本采用了更加激进的优化策略,而这种优化策略可能会带来计算结果的不可靠(Intel的ICC在某几个版本中就存在计算结果错误的情况)。