From: Jan Hubicka <hubicka@atrey.karlin.mff.cuni.cz>
To: egcs@cygnus.com
Subject: Benchmark suite...
Date: Tue, 20 Oct 1998 05:46:00 -0000 [thread overview]
Message-ID: <19981020144547.21146@atrey.karlin.mff.cuni.cz> (raw)
Hi
After a week spent by tunning my patch I decided that I really need some testsuite.
It is quite time consuming to test changes at real programs, since lots of thinks
needs to be compiled. I would like to have some testsuite to verify my changes.
So I've put together few programs and made a script to compile/test them.
Because others seemsed to like benchmark suite idea too, I've decided to make something
more definitive, wich should possibly become part of egcs, if it turns out to be usefull.
I've made benchmarking library that uses interupt to stop test, so you might change time
of test as you wish and benchmarking is quite accurate since speed of system calls is not
significant. Also I've made script able to automatically run tests at various data types
(long long, long, short and char), display results and compare them immediately with
saved files. So you might see the changes before test is finished. It is also able to
run specified tests, so when you see some problem in one test, you don't need to run whole
suite etc...
My goal is not to make comparsion benchmark for various compilers, so I am not doing any overall
results. It is targeted only for developpers who want to see behaviour of their changes.
Thats why I want to make it consisting mainly of simple tests, where you may browse the assembly
result and see whats is going wrong and so on.
So far I've implemented just very few tests mostly grabbed from my programs - Mset calcualtion
loop, quicksort and recursive hanoi. Jeffrey pointed out that complex tests are also neccesary
so I've added also mathing algorithm from XaoS and palette approximation from Allegro.
I would love to have more tests. Both simple loops wich needs some tricks to optimize
and complex code (like complression algorithm or whatever else)
Current version is avalable at my ftp site ftp://ftp.ta.jcu.cz/pub/linux/hubicka/experimental/egcs-bench.tgz
I have only gcc2.7.2.3 and egcc here, but results seems to be very interesting. I will
send comparsions of current snapshot tommorow.
So here is place for yours ideas :) I am open to all suggestions....
PS: here is comparsion of gcc2.7.2 and egcs1.0 at Pentium/120. For every test
the number of loops per socond is printed and comparsion to gcc (100%=no change,
50% = twice as slow, 200% = twice as fast).
First line is signed types, second unsigned. The types are sorted by size, so
for integer test it is:
long long, long, short, char
and for fp it is long double,double,char.
Benchmarks Tue Oct 20 14:36:33 MET DST 1998
egcc -O2 -pipe
Integer tests
Hanoi (tests/hanoi.c)
836.6337 101% 1270.2970 96% 854.0000 107% 1036.0000 106%
827.0000 100% 1265.0000 96% 905.0000 110% 1204.9020 116%
Mandelbrot set calculation loop (tests/mset.c)
764000.0000 92% 2093137.2549 90% 1726732.6733 111% 1666000.0000 99%
767647.0588 92% 2100990.0990 91% 1826732.6733 116% 1902970.2970 113%
Unrolled mandelbrot set calculation loop (tests/umset.c)
864000.0000 95% 2406930.6931 91% 2190099.0099 116% 2080198.0198 102%
856435.6436 96% 2428431.3725 91% 2244554.4554 119% 2310891.0891 113%
Quicksort (tests/qsort.c)
37.8641 84% 96.0396 128% 67.3267 89% 109.9010 102%
38.2353 84% 95.0495 125% 67.3267 89% 110.8911 99%
Bressemham line drawing algorithm (tests/bressemham.c)
6554613.8614 100% 8417720.0000 103% 7112316.8317 101% 8328500.0000 99%
6642680.0000 102% 8444198.0198 103% 7191702.9703 103% 8421333.3333 100%
Palette approximation (tests/pal.c)
-------.---- ---% 7.2072 112% -------.---- ---% -------.---- ---%
-------.---- ---% -------.---- ---% -------.---- ---% -------.---- ---%
XaoS internal loop (tests/xaos.c)
-------.---- ---% 449.0196 91% -------.---- ---% -------.---- ---%
-------.---- ---% -------.---- ---% -------.---- ---% -------.---- ---%
Floating point tests
Mandelbrot set calculation loop (tests/mset.c)
2853465.3465 107% 2888118.8119 109% 2903960.3960 109%
Unrolled mandelbrot set calculation loop (tests/umset.c)
6158415.8416 136% 6052475.2475 134% 5890196.0784 131%
Quicksort (tests/qsort.c)
38.6139 77% 32.6733 66% 28.1553 78%
Complex type tests
Mandelbrot set calculation loop using complex numbers (tests/cmset.c)
2947000.0000 88% 3051485.1485 92% 2975247.5248 89%
Unrolled mandelbrot set calculation loop using complex numbers (tests/cumset.c)
5826732.6733 97% 5884158.4158 99% 5399009.9010 91%
Honza
next reply other threads:[~1998-10-20 5:46 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
1998-10-20 5:46 Jan Hubicka [this message]
[not found] ` <Pine.GSO.4.02A.9810211109070.1323-100000@ohara.informatik.rwth-aachen.de>
1998-10-21 6:01 ` Jan Hubicka
1998-10-21 23:18 ` Michael Meissner
1998-10-22 6:02 ` joel
1998-10-22 21:15 ` Jan Hubicka
1998-10-23 14:37 ` Jeroen Dobbelaere
1998-10-23 2:57 ` Scott A Crosby
1998-10-23 17:45 ` Jan Hubicka
1998-11-04 23:31 ` Joern Rennecke
1998-11-11 19:15 ` Scott A Crosby
1998-10-21 3:27 Klaus-Georg Adams
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=19981020144547.21146@atrey.karlin.mff.cuni.cz \
--to=hubicka@atrey.karlin.mff.cuni.cz \
--cc=egcs@cygnus.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).