Skip to content

3b6000 XB612B0 v1.2 12核主板多核内存带宽问题 #158

@azuresky01

Description

@azuresky01

前几天测试了在新 BIOS 5.0.0431-stable202602下的3b6000 XB612B0 v1.2 12核主板。发现在单线程下内存带宽有所提高,但多线程内存带宽几乎没有变化,使得多核性能尤其是浮点不尽人意,希望后面的BIOS版本能有所改进。

具体测试结果见下:

CPU / 主板:3B6000 12-core @ 2.2 GHz / XB612B0 v1.2
测试系统:Debian sid with binutils-2.45 (binutils-2.46 causes a performance regression on Loongarch, see here)
编译器:Debian gcc 15.2.0
BIOS_old : 去年购买时的原装BIOS 5.0.0030-beta
BIOS_new: 5.0.0431-stable202602

系统性能测试软件:SPEC CPU 2017 (使用的cfg文件参考 这里)

****** 单线程性能较前提升:

前面 这里 提到SPEC2017 rate-1测试受内存带宽影响较大的有四项测试:整数的505.mcf_r和浮点的503.bwaves_r、519.lbm_r、549.fotonik3d_r。在新BIOS下这几项rate-1成绩都有较大提高:

                        BIOS_old  BIOS_new
505.mcf_r                4.19         4.84
503.bwaves_r            23.3         38.4
519.lbm_r                2.47         3.51
549.fotonik3d_r          7.34        10.9

整数rate-1成绩也由4.78提高到4.88, 浮点rate-1成绩由5.68提高到6.30。单线程浮点性能虽然提升较大,但每GHz性能仍未达到3A6000系统的水平(~7.55@2.5 GHz)。

****** 多核SPEC2017 rate-12成绩较前有较大幅度下降,但SPEC2017 rate-24性能较前基本持平。

测试时使用了3组内存:
内存1: SKhynix 16GBx2 2Rx8 DDR4 2666 RECC (前面的rate-1测试也使用了这组内存)
内存2: 紫光 16GBx2 1Rx8 DDR4 3200 UDIMM
内存3: Lenovo OEM (samsung颗粒) 32GBx2 2Rx8 DDR4 3200 UDIMM

三组内存的SPEC2017 rate-12成绩为:

                      BIOS_old     BIOS_new
内存1整数                39.2       fail
内存1浮点                33.8       fail
内存2整数                ----       27.9
内存2浮点                ----       25.6
内存3整数                ----       28.6
内存3浮点                ----       25.8

三组内存的SPEC2017 rate-24成绩为 (32GB 内存时整数最多只能测到rate-23, 502.gcc_r在rate-24时内存不够出错; 64 GB内存时可测整数rate-24):

                      BIOS_old     BIOS_new
内存1整数                44.6       ---- (rate-23)
内存1浮点                34.3       ----
内存2整数                ----       41.0 (rate-21,更多rate数时fail)
内存2浮点                ----       34.3
内存3整数                ----       45.7
内存3浮点                ----       34.4

BIOS_old的rate-24成绩呈现了明显的内存带宽瓶颈,浮点性能尤其受限。新BIOS增强了单线程内存带宽,但很多核时的内存带宽并未改善(下面做了测试),同时内存兼容性似乎也有下降。

****** 内存带宽/性能测试

利用了两个工具测试了内存3的带宽/性能:

  1. https://lemire.me/blog/2024/01/13/estimating-your-memory-bandwidth/
  2. phoronix-test-suite pts/ramspeed-1.4.3

刷了新BIOS后再刷旧BIOS内存带宽/性能也不会有变化,因此只给出BIOS_new的结果。内存带宽成绩相较作为对比的3A6000系统都有较大差距。

对比3A6000系统:
CPU / 主板:3A6000/XA61200
BIOS:edk2_202408_LoongArch64_pc_XA61200_MultiArchSupport
测试系统:Loongnix 25.1 rc2 (a variant of Debian 13)
内存:紫光 16GBx2 1Rx8 DDR4 3200 UDIMM

*** 测试1:

1 24.5 24.6
2 38.2 38.3
3 36.5 36.6
4 34.5 34.1
5 33.2 32.5
6 32.1 31.5
7 31.3 31.0
8 31.0 30.9
9 30.9 30.8
10 30.9 30.9
11 30.9 31.0
12 30.9 31.0
13 30.7 30.8
14 31.2 31.4
15 31.1 31.5
16 31.0 31.3
17 31.0 31.2
18 31.0 31.3
19 31.0 31.5
20 31.0 31.6
21 31.1 31.7
22 31.2 32.0
23 31.3 32.2
24 31.3 32.4

1-2线程时内存带宽较前有比较大的提高,但很多线程数时的成绩较前基本持平。下面是3A6000系统的成绩,很多线程数时有较大差距:

1 28.2 23.1
2 31.7 39.8
3 37.9 42.0
4 42.0 43.8
5 39.4 41.5
6 40.9 43.2
7 41.3 43.9
8 42.2 45.3

*** 测试2(整数测试,单位MB/s):

               3A6000        3B6000
Add            26070.88      17329.41
Copy           26208.26      16672.66
Scale          26197.78      13705.84
Triad          26156.14      16556.45
Average        25596.79      15870.31

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions