Benchmark comparison of MicroPython boards
Re: Benchmark comparison of MicroPython boards
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
>>> 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
- rcolistete
- Posts: 352
- Joined: Thu Dec 31, 2015 3:12 pm
- Location: Brazil
- Contact:
Re: Benchmark comparison of MicroPython boards
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).
Re: Benchmark comparison of MicroPython boards
I don't think there's one in the table for the ATSAMD51, so I ran these on the Seeed Wio Terminal:
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
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
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
Re: Benchmark comparison of MicroPython boards
Micropython/circuitpython benchmarks on teensy 4 and others
https://forum.pjrc.com/threads/59040-Ci ... post226210
https://forum.pjrc.com/threads/59040-Ci ... post226210
Re: Benchmark comparison of MicroPython boards
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
>>>
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
>>>
Re: Benchmark comparison of MicroPython boards
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
>>>
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
>>>
Re: Benchmark comparison of MicroPython boards
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:
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
Re: Benchmark comparison of MicroPython boards
Thanks for sharing.
Re: Benchmark comparison of MicroPython boards
Raspberry Pi Pico W w7 RP2040 @ 125 MHz
Pystone (1.2) time for 500 passes = 384 ms
This machine benchmarks at 1302 pystones/second.
Pystone (1.2) time for 500 passes = 384 ms
This machine benchmarks at 1302 pystones/second.