Philipp Klaus Krause
unread,Feb 7, 2018, 9:02:45 AM2/7/18You do not have permission to delete messages in this group
Sign in to report message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to
stdcbench has improved substantially since my first post to comp.lang.c.
The current version consists of 2 modules, which on typical systems
should contribute about equally to the score.
c90base:
It benchmarks a commonly-implemented subset of what the standard
requires for freestanding implementations of C90. It consists of three
submodules:
1) Huffman/RLE decompression (adapted from real-world code)
2) Integer matrix multiplication (synthetic)
3) Insertion sort (adapted from real-world code)
c90lib:
Benchmarks the standard library.
I consists of two submodules:
1) Computation of lnlc-width (adapted from real-world code)
2) Peephole optimizer (simplified from real-world code)
C99 features (e.g. bool, restrict) are used where available, but not
necessary.
So far, stdcbench seems to achieve the goals: benchmark a wide range of
important standard c functionality, without giving too much emphasis to
any particular aspect.
Scores are reported for each module and as total.
Example output from a i7-7500U-based system (benchmark compiled with GCC
7.2.0 using -O2 -march=native):
stdcbench 0.2
stdcbench c90base score: 7827
stdcbench c90lib score: 6548
stdcbench final score: 14375
Example output from a STM8AF5288 at 16 Mhz (benchmark compiled with SDCC
3.6.9 using -mstm8 --opt-code-speed --max-allocs-per-node 10000):
stdcbench 0.2
stdcbench c90base score: 6
stdcbench c90lib score: 6
stdcbench final score: 12
stdcbench already seems quite reasonable for benchmarking integer
performance. However, there is still work to do:
1) Come up with module(s) for floating-point performance. What matters
for embedded systems? How should correctness be verified for floating-point?
2) Find out why the c90lib module hangs on C8051F120 (possible compiler
bug).
3) State run/reporting rules.
4) Benchmark a few interesting systems
6) Create a website or write a paper about the benchmark and the results.
Philipp