Benchmark

Status
Not open for further replies.

NewUser

New member
Hi,


What is the best way to test a microcontroller for its computing speed, read and write rate
 
Last edited:
I guess a benchmark suite, rather than just one benchmark program, so that different styles of coding are
covered such as integer, floating point, DSP, decision logic, function-call intensive, memory intensive, etc etc

One thorny issue is separating raw metal performance from compiler optimization performance - unless you
want to rewrite your benchmark code in assembler for each architecture you are seeing the hardware through
the veil of the compiler's ability to optimize well for the particular architecture.

I guess its pretty moot what is meant by "best way" anyhow - best from the perspective of the chip manufacturer?
from the perspective of a C programmer?
 
For microcontroller compute speed, usually CoreMark is used. Here is a copy which runs on Teensy and most other Arduino compatible boards.

https://github.com/PaulStoffregen/CoreMark

While CoreMark tests 3 widely used scenarios, the math test is 32 bit integer only, so it doesn't tell you much if you expect to use 32 or 64 bit floating point.

Indeed CoreMark is also sensitive to compiler settings. Many chip manufacturers quote a best-case theoretical CoreMark number, not the actual speed you will get with compiled code in a real project. The numbers shown in that readme file are actual measurements on real hardware using the compiler settings normally used.

For "read and write rate", tests are usually more hardware specific and not as easily comparable. There are also many different types of peripherals and different types of testing, especially bandwidth versus latency which are often at odds with each other with packet-based protocols, so there no simple single answer to such a short and vague question. You need to be more specific and give some context for that sort of question to be meaningful.
 
Status
Not open for further replies.
Back
Top