Benchmark comparison of MicroPython boards

General discussions and questions abound development of code with MicroPython that is not hardware specific.
Target audience: MicroPython Users.
ckuehnel
Posts: 8
Joined: Sat Feb 02, 2019 3:09 pm
Location: Altendorf, Schweiz
Contact:

Re: Benchmark comparison of MicroPython boards

Post by ckuehnel » Mon Mar 11, 2019 10:07 am

PyStone result for MAiX BiT w/ MicroPython v0.1.1 (CPU clock 403 MHz):

>>> os.uname()
(sysname='MaixPy', nodename='MaixPy', release='0.1.1', version='v0.1.1 on 2019-02-20', machine='Sipeed_M1 with kendryte-k210')

>>> exec(open('pystone_lowmem.py').read())
Pystone(1.2) time for 500 passes = 98 ms
This machine benchmarks at 5102 pystones/second

User avatar
rcolistete
Posts: 352
Joined: Thu Dec 31, 2015 3:12 pm
Location: Brazil
Contact:

Re: Benchmark comparison of MicroPython boards

Post by rcolistete » Mon Mar 11, 2019 7:05 pm

Thanks, so I've updated the 1st post with benchmarks on Pyboard D, ESP32 and MAiX BiT.
My "MicroPython Samples". My "MicroPython Firmwares" with many options (double precision, ulab, etc).

User avatar
scruss
Posts: 360
Joined: Sat Aug 12, 2017 2:27 pm
Location: Toronto, Canada
Contact:

Re: Benchmark comparison of MicroPython boards

Post by scruss » Thu Jul 30, 2020 12:57 pm

I don't think there's one in the table for the ATSAMD51, so I ran these on the Seeed Wio Terminal:

Code: Select all

Seeed Wio Terminal (120 MHz ATSAMD51P19A, MicroPython 331f7c9-dirty on 2020-06-30; Ardupy with seeed)

pystone_lowmem:
Pystone(1.2) time for 500 passes = 339 ms
This machine benchmarks at 1474 pystones/second

('from utime import ...' changed to 'from time import ...' for compatibility with Ardupy)


performanceTest:
>>> performanceTest()
Count:  2192872


hsquare:
>>> Doing 50000 calculations...
calculations done after 7372 ms.
Mean time for each inverse h square calculation = 147.4400043487549 us
The Wio Terminal claims to support a 200 MHz mode, but Ardupy doesn't seem to expose any frequency control through standard libraries.

CircuitPython is much faster. It may be running at 200 MHz:

Code: Select all

Adafruit CircuitPython 6.0.0-alpha.2 on 2020-07-23; Seeeduino Wio Terminal with9


pystone_lowmem:

Pystone(1.2) time for 500 passes = 352 ms
This machine benchmarks at 1420 pystones/second


performanceTest:

Count:  582628


hsquare:

Doing 50000 calculations...
calculations done after 3200 ms.
Mean time for each inverse h square calculation = 64.0000009536743 us
Sum of inverse h square = 37885.3893280029297
Mean of inverse h square = 0.7577078342438


manitou
Posts: 73
Joined: Wed Feb 25, 2015 12:15 am

Re: Benchmark comparison of MicroPython boards

Post by manitou » Tue Oct 20, 2020 6:11 pm

Micropython/circuitpython benchmarks on teensy 4 and others
https://forum.pjrc.com/threads/59040-Ci ... post226210

ckuehnel
Posts: 8
Joined: Sat Feb 02, 2019 3:09 pm
Location: Altendorf, Schweiz
Contact:

Re: Benchmark comparison of MicroPython boards

Post by ckuehnel » Thu Feb 04, 2021 3:12 pm

Raspberry Pi Pico:

MPY: soft reboot
MicroPython v1.13-290-g556ae7914 on 2021-01-21; Raspberry Pi Pico with RP2040
Type "help()" for more information.

>>> uos.uname()
(sysname='rp2', nodename='rp2', release='1.13.0', version='v1.13-290-g556ae7914 on 2021-01-21 (GNU 10.2.0 MinSizeRel)', machine='Raspberry Pi Pico with RP2040')

>>> exec(open('Pi_Pico_Pystone_lowmem.py').read())
Pystone(1.2) time for 500 passes = 460ms
This machine benchmarks at 1086 pystones/second

>>>

aziubin
Posts: 3
Joined: Sun Feb 21, 2021 6:46 pm

Re: Benchmark comparison of MicroPython boards

Post by aziubin » Sun Mar 14, 2021 1:23 pm

STMicroelectronics NUCLEO-L476RG board:

MPY: sync filesystems
MPY: soft reboot
MicroPython v1.14-82-gcdaec0dca-dirty on 2021-02-27; NUCLEO-L476RG with STM32L476RG
Type "help()" for more information.
>>> import pyb
>>> print(pyb.freq())
(80000000, 80000000, 80000000, 80000000)
>>> import os
>>> print(os.uname())
(sysname='pyboard', nodename='pyboard', release='1.14.0', version='v1.14-82-gcdaec0dca-dirty on 2021-02-27', machine='NUCLEO-L476RG with STM32L476RG')
>>> %Run -c $EDITOR_CONTENT
Pystone(1.2) time for 500 passes = 648ms
This machine benchmarks at 771 pystones/second
>>>

User avatar
scruss
Posts: 360
Joined: Sat Aug 12, 2017 2:27 pm
Location: Toronto, Canada
Contact:

Re: Benchmark comparison of MicroPython boards

Post by scruss » Wed May 12, 2021 1:18 am

MCUDev DevEBox STM32H7XX_M
STM32H743VIT6 at 400 MHz
built with mcauser's MCUDev DevEBox STM32H7XX_M, with this patch applied from the open issues list: mpconfigboard.h - and don't forget to make submodules!

This board is arse-kickingly fast:

Code: Select all

MicroPython v1.15-99-g87e38b3cc on 2021-05-11; MCUDEV DEVEBOX STM32H7XX_M with STM32H7XX
Type "help()" for more information.
>>> machine.freq()
(400000000, 200000000, 100000000, 100000000)

---------------------------------------------------------------------------------

Pystone(1.2) time for 500 passes = 79 ms
This machine benchmarks at 6329 pystones/second

---------------------------------------------------------------------------------

performanceTest.py:
Count:  10575191 (pyb...)
Count:  10807924 (time.ticks_ms)

---------------------------------------------------------------------------------

hsquare_ms.py:

Doing 50000 calculations...
calculations done after 1124 ms.
Mean time for each inverse h square calculation = 22.4799990653992 us
Sum of inverse h square = 38023.2257843017578
Mean of inverse h square = 0.7604645729065

Jackli
Posts: 80
Joined: Thu Apr 29, 2021 9:11 am

Re: Benchmark comparison of MicroPython boards

Post by Jackli » Wed May 19, 2021 8:44 am

Thanks for sharing.

ckuehnel
Posts: 8
Joined: Sat Feb 02, 2019 3:09 pm
Location: Altendorf, Schweiz
Contact:

Re: Benchmark comparison of MicroPython boards

Post by ckuehnel » Fri Mar 01, 2024 2:24 pm

Raspberry Pi Pico W w7 RP2040 @ 125 MHz
Pystone (1.2) time for 500 passes = 384 ms
This machine benchmarks at 1302 pystones/second.

Post Reply