PICO 2 RP2350 ARM内核单核CoreMark跑分

编译环境:WSL Ubuntu22.04 GCC10.3.1 

RP2350默认频率150MHz,超频到280MHz,在此频率下实测O3等级跑分799左右,O2等级跑分746左右。

RP2350内部有两个Cortex-M33核心,两个自研RISC-V核心,虽然一共有四个但是只能选择两个核心使用,本文只使用了一个ARM的核心进行测试。

        移植coremark,加入TinyUSB虚拟串口打印,主函数如下:

int main(void) {
    set_sys_clock_khz(200*1000,true);
    clock_configure(clk_peri,0,CLOCKS_CLK_PERI_CTRL_AUXSRC_VALUE_CLKSRC_PLL_SYS,200*MHZ,200*MHZ);
    stdio_init_all();
    int rc = pico_led_init();
    hard_assert(rc == PICO_OK);
    struct repeating_timer timer0;

    add_repeating_timer_us(-1000,sysTick,NULL,&timer0);
    main_core(0,0);
    while (true) {
        pico_set_led(true);
        sleep_ms(LED_DELAY_MS);
        printf("Hello, world!\n");
        sleep_ms(LED_DELAY_MS);
        pico_set_led(false);
        sleep_ms(LED_DELAY_MS);
    }
}

CMakeList.txt规则如下:

add_executable(blink
    blink.c
    )

# Release        - 添加 -O3 -DNDEBUG 标志
# Debug          - 添加 -g 标志
# MinSizeRel     - 添加 -Os -DNDEBUG
# RelWithDebInfo - 添加 -O2 -g -DNDEBUG 标志
# pull in common dependencies
add_subdirectory(coremark)
target_link_libraries(blink pico_stdlib coremark )

if (PICO_CYW43_SUPPORTED)
    target_link_libraries(blink pico_cyw43_arch_none)
endif()

pico_enable_stdio_usb(blink 1)
pico_enable_stdio_uart(blink 0)
# create map/bin/hex file etc.
pico_add_extra_outputs(blink)

# add url via pico_set_program_url
example_auto_set_url(blink)

coremark目录CMakeList.txt规则:


file(GLOB_RECURSE srcs CONFIGURE_DEPENDS ./*.c ./*.h)
add_library(coremark STATIC ${srcs})
target_link_libraries(coremark PUBLIC pico_stdlib)
target_include_directories(coremark PUBLIC include)

与编译rp2040不同,只需要cmake的时候这样输入:

cmake .. -DCMAKE_BUILD_TYPE=Release  -DPICO_PLATFORM=rp2350

150MHz频率跑分:

2K performance run parameters for coremark.
CoreMark Size    : 666
Total ticks      : 23378
Total time (secs): 23.378000
Iterations/Sec   : 427.752588
Iterations       : 10000
Compiler version : GCC10.3.1 20210621 (release)
Compiler flags   : -O3
Memory location  : STACK
seedcrc          : 0xe9f5
[0]crclist       : 0xe714
[0]crcmatrix     : 0x1fd7
[0]crcstate      : 0x8e3a
[0]crcfinal      : 0x988c
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 427.752588 / GCC10.3.1 20210621 (release) -O3 / STACK

200MHz频率跑分:

2K performance run parameters for coremark.
CoreMark Size    : 666
Total ticks      : 17528
Total time (secs): 17.528000
Iterations/Sec   : 570.515746
Iterations       : 10000
Compiler version : GCC10.3.1 20210621 (release)
Compiler flags   : -O3
Memory location  : STACK
seedcrc          : 0xe9f5
[0]crclist       : 0xe714
[0]crcmatrix     : 0x1fd7
[0]crcstate      : 0x8e3a
[0]crcfinal      : 0x988c
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 570.515746 / GCC10.3.1 20210621 (release) -O3 / STACK

250MHz频率跑分:

2K performance run parameters for coremark.
CoreMark Size    : 666
Total ticks      : 14018
Total time (secs): 14.018000
Iterations/Sec   : 713.368526
Iterations       : 10000
Compiler version : GCC10.3.1 20210621 (release)
Compiler flags   : -O3
Memory location  : STACK
seedcrc          : 0xe9f5
[0]crclist       : 0xe714
[0]crcmatrix     : 0x1fd7
[0]crcstate      : 0x8e3a
[0]crcfinal      : 0x988c
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 713.368526 / GCC10.3.1 20210621 (release) -O3 / STACK

280MHz频率跑分:

2K performance run parameters for coremark.
CoreMark Size    : 666
Total ticks      : 12515
Total time (secs): 12.515000
Iterations/Sec   : 799.041151
Iterations       : 10000
Compiler version : GCC10.3.1 20210621 (release)
Compiler flags   : -O3
Memory location  : STACK
seedcrc          : 0xe9f5
[0]crclist       : 0xe714
[0]crcmatrix     : 0x1fd7
[0]crcstate      : 0x8e3a
[0]crcfinal      : 0x988c
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 799.041151 / GCC10.3.1 20210621 (release) -O3 / STACK

我尝试最高超频只到了320MHz频率,跑分:

2K performance run parameters for coremark.
CoreMark Size    : 666
Total ticks      : 10949
Total time (secs): 10.949000
Iterations/Sec   : 913.325418
Iterations       : 10000
Compiler version : GCC10.3.1 20210621 (release)
Compiler flags   : -O3
Memory location  : STACK
seedcrc          : 0xe9f5
[0]crclist       : 0xe714
[0]crcmatrix     : 0x1fd7
[0]crcstate      : 0x8e3a
[0]crcfinal      : 0x988c
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 913.325418 / GCC10.3.1 20210621 (release) -O3 / STACK

测试得到Release模式下2.85CoreMark/MHz,可见相对RP2040,RP2350的性能提升不错,但和RP2040的内核架构不同,不好直接对比,下次可以试着测试一下树莓派自研RISC-V内核的性能或看看他们功率情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值