From 991b62808450c54ac721f345d82426fde3e6289f Mon Sep 17 00:00:00 2001 From: Matt Turner Date: Sat, 15 Nov 2008 04:45:48 +0000 Subject: -- Reorder benchmarks to simplify results calculation logic -- Fix up sysinfo template stuff -- More cleanbench.c cleanups git-svn-id: svn://mattst88.com/svn/cleanbench/trunk@59 0d43b9a7-5ab2-4d7b-af9d-f64450cef757 --- Makefile | 7 ++----- cleanbench.c | 56 ++++++++++++++++++++++++++--------------------------- sysinfo.c.template | 7 ++----- sysinfo.sh | 10 ++++------ sysinfoc.c.template | 2 -- 5 files changed, 36 insertions(+), 46 deletions(-) delete mode 100644 sysinfoc.c.template diff --git a/Makefile b/Makefile index 1cdb017..d29593a 100644 --- a/Makefile +++ b/Makefile @@ -10,22 +10,19 @@ all: ${OBJS} $(GCC) ${OBJS} -o cleanbench -lm clean: - - /bin/rm -f *.o cleanbench sysinfo.c sysinfoc.c + - /bin/rm -f *.o cleanbench sysinfo.c remake: clean all # Source files -sysinfoc.c: Makefile - ./sysinfo.sh $(GCC) $(GCCFLAGS) - sysinfo.c: Makefile ./sysinfo.sh $(GCC) $(GCCFLAGS) hardware.o: hardware.c hardware.h Makefile $(GCC) $(GCCFLAGS) -c hardware.c -cleanbench.o: cleanbench.h cleanbench.c hardware.h Makefile sysinfo.c sysinfoc.c +cleanbench.o: cleanbench.h cleanbench.c hardware.h Makefile sysinfo.c $(GCC) $(GCCFLAGS) -c cleanbench.c emfloat.o: emfloat.h emfloat.c Makefile diff --git a/cleanbench.c b/cleanbench.c index 47f4466..66e58ed 100644 --- a/cleanbench.c +++ b/cleanbench.c @@ -15,13 +15,13 @@ static double getScore(int fid); enum { NUMSORT, - STRINGSORT, - BITFIELD, FPEMULATION, - FOURIER, - ASSIGNMENT, IDEA, HUFFMAN, + STRINGSORT, + BITFIELD, + ASSIGNMENT, + FOURIER, NEURAL, LINEAR } tests_t; @@ -31,13 +31,13 @@ main(int argc, char *argv[]) { const char* test_name[] = { "NUMERIC SORT ", - "STRING SORT ", - "BITFIELD ", "FP EMULATION ", - "FOURIER ", - "ASSIGNMENT ", "IDEA ", "HUFFMAN ", + "STRING SORT ", + "BITFIELD ", + "ASSIGNMENT ", + "FOURIER ", "NEURAL NET ", "LU DECOMPOSITION" }; @@ -48,13 +48,13 @@ main(int argc, char *argv[]) */ const double bindex[] = { 38.993, /* Numeric sort */ - 2.238, /* String sort */ - 5829704, /* Bitfield */ 2.084, /* FP Emulation */ - 879.278, /* Fourier */ - 0.2628, /* Assignment */ 65.382, /* IDEA */ 36.062, /* Huffman */ + 2.238, /* String sort */ + 5829704, /* Bitfield */ + 0.2628, /* Assignment */ + 879.278, /* Fourier */ 0.6225, /* Neural Net */ 19.3031 /* LU Decomposition */ }; @@ -66,13 +66,13 @@ main(int argc, char *argv[]) */ const double linux_bindex[] = { 118.73, /* Numeric sort */ - 14.459, /* String sort */ - 27910000, /* Bitfield */ 9.0314, /* FP Emulation */ - 1565.5, /* Fourier */ - 1.0132, /* Assignment */ 220.21, /* IDEA */ 112.93, /* Huffman */ + 14.459, /* String sort */ + 27910000, /* Bitfield */ + 1.0132, /* Assignment */ + 1565.5, /* Fourier */ 1.4799, /* Neural Net */ 26.732 /* LU Decomposition */ }; @@ -91,7 +91,7 @@ main(int argc, char *argv[]) " : : Pentium 90 : AMD K6/233\n" "--------------------:------------------:-------------:------------"); - for (test = NUMSORT; test < NUMTESTS; test++) { + for (test = 0; test < NUMTESTS; test++) { printf("%s :", test_name[test]); if (!bench_with_confidence(test, &bmean, &bstdev, &bnumrun)) { @@ -101,12 +101,12 @@ main(int argc, char *argv[]) } printf(" %15.5g : %9.2f : %9.2f\n", bmean, bmean / bindex[test], bmean / linux_bindex[test]); - if ((test == FOURIER) || (test == NEURAL) || (test == LINEAR)) { + if (test >= FOURIER) { fpindex *= bmean / bindex[test]; linux_fpindex *= bmean / linux_bindex[test]; } else { intindex *= bmean / bindex[test]; - if ((test == NUMSORT) || (test == FPEMULATION) || (test == IDEA) || (test == HUFFMAN)) { + if (test <= HUFFMAN) { linux_intindex *= bmean / linux_bindex[test]; } else { linux_memindex *= bmean / linux_bindex[test]; @@ -120,7 +120,7 @@ main(int argc, char *argv[]) "==============================LINUX DATA BELOW===============================\n", pow(intindex, .142857), pow(fpindex, .33333)); hardware(); -#include "sysinfoc.c" +#include "sysinfo.c" printf( "MEMORY INDEX : %.3f\n" "INTEGER INDEX : %.3f\n" "FLOATING-POINT INDEX: %.3f\n" @@ -154,13 +154,13 @@ static int bench_with_confidence(int benchmark, { void (*funcpointer[])(void) = { DoNumSort, - DoStringSort, - DoBitops, DoEmFloat, - DoFourier, - DoAssign, DoIDEA, DoHuffman, + DoStringSort, + DoBitops, + DoAssign, + DoFourier, DoNNET, DoLU }; @@ -280,13 +280,13 @@ return FALSE; static double getScore(int benchmark) { double (*getScore[])(void) = { getNumSortScore, - getStringSortScore, - getBitfieldScore, getEmFloatScore, - getFourierScore, - getAssignmentScore, getIDEAScore, getHuffmanScore, + getStringSortScore, + getBitfieldScore, + getAssignmentScore, + getFourierScore, getNNETScore, getLinearScore }; diff --git a/sysinfo.c.template b/sysinfo.c.template index 775b39c..b576f54 100644 --- a/sysinfo.c.template +++ b/sysinfo.c.template @@ -1,5 +1,2 @@ -printf("**System used for compilation:\n"); -printf("**%SYSTEM%\n"); -printf("**C compiler: %CCVERSION%\n"); -printf("**libc: %LIBCVERSION%\n"); -printf("**Date of compilation: %DATE%\n"); +printf("C compiler : %CCVERSION%\n"); +printf("libc : %LIBCVERSION%\n"); diff --git a/sysinfo.sh b/sysinfo.sh index 80b5d89..ab7149f 100755 --- a/sysinfo.sh +++ b/sysinfo.sh @@ -61,7 +61,7 @@ if ($* hello.c -o hello) >/dev/null 2>&1; then fi fi -rm -f sysinfo.crm sysinfoc.c hello +rm -f sysinfo.crm sysinfo.c hello # this bombs out on Ultrix which expect "cut -d" @@ -71,8 +71,6 @@ compdate=`date|cut -b1-55` # let's hope that ctrl-c is not part of any string here # this also will barf later if " is in any of the strings -for i in sysinfo.c sysinfoc.c ; do - sed -e "s%CCVERSION%$gccversion" -e "s%LIBCVERSION%$libcversion"\ - -e "s%SYSTEM%$compsystem" -e "s%DATE%$compdate"\ - ${i}.template > $i -done +sed -e "s%CCVERSION%$gccversion" -e "s%LIBCVERSION%$libcversion"\ + -e "s%SYSTEM%$compsystem" -e "s%DATE%$compdate"\ + sysinfo.c.template > sysinfo.c diff --git a/sysinfoc.c.template b/sysinfoc.c.template deleted file mode 100644 index b576f54..0000000 --- a/sysinfoc.c.template +++ /dev/null @@ -1,2 +0,0 @@ -printf("C compiler : %CCVERSION%\n"); -printf("libc : %LIBCVERSION%\n"); -- cgit v1.2.3