delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2000/03/17/15:19:15

Date: Fri, 17 Mar 2000 20:50:33 +0100
From: Javier Bardal Prieto <u0204956 AT golum DOT inforg DOT uniovi DOT es>
Subject: Re: Fastest integer type
To: djgpp-workers AT delorie DOT com
Message-id: <200003171950.UAA20742@golum.inforg.uniovi.es>
Reply-To: djgpp-workers AT delorie DOT com

salvador wrote:

> Jesus Gil y Gil wrote:
>
> > You should run the benchmark that I posted 3 days ago
>
> I didn't see the benchmarks, only the results. And I think this isn't
useful for
> any real program. I don't know about any program that is just thousand
adds in a
> loop. Even more: the results are clearly different to what you get with
any
> complicated benchmark, the AMD K6 and PII aren't so different as your
benchmark
> seems to indicate.
> I think the best way is to just use some "typedef BasicType int;" compile,
> meassure and then try with other type. That's assuming the operations
feets in
> any integer size.
> Are you sure your benchmarks isn't involving type conversions? (zero and
sign
> extend as example) this could make ints faster no matters what's the real
thing.
>
> SET

I don't know of what are you talking about when you say complicated
benchmark, the
benchmarks ussualy used, as Dr.Hardware, Norton Utilities (for MS-DOS)
etc... Gives
bad results, because these tests only tests the operations itself and not
the cost
of reading the operands and writing the results, and only a few reads the
operands,
but the really big problem is NO WRITING, becase this is the most AMD K6
FAULT!!!!,
I don't know why you don't see the benchmak, may be because I send the
binaries to
make the process faster and the size were about 40kb, so I send know only
the source

and the compilation instruccions.

And no there are no sign corrections, there aren't conversions not
controlled.
You say that this test isn't releveant because real programs don't make this
operaitons very much, you are wrong, video, image and audio compression
programs, 3d

programs and games, 2d games, all make intensive use of this operations, and
by my
experience the results of the benchmarks are very very representative.

Now here is the benchmark post without binaries:
Due to discussions about Intel, AMD, Cyrix, etc... processors
efficiency, I have done a benchmark, that I expect clarify the dudes.
In my experience the AMD K6 processors have a WRITING latency very high,
the same as Pentium, but Pentium II and III does not, the Pentium's II
and III write at the same speed than read, the K6 reads 3 times more
quickly than Pentium's II and III, but writes at the same speed than a
Pentium 166.
This benchmark makes a simple but very frequent task,
It has two source arrays, one is the array A and the other the array B,
and another array, the destination , the array C
The test consists only in adding, multiplying and dividing all the
elements of the array A with the correspondence in the array B, and
store the result in the array C.
The size of the vectors, is decreased dinamically, at the same time, the
test is executed more times. This mode shows the cache efficiency.
It uses arrays of chars, shorts, longs, floats, doubles and fixed point
numbers, so the test is very complete.
The benchkmark is in spanish, but it's very easy to understand it.
I used gcc2.95.2 and Djgpp 2.03
The compiler options are:

gcc -O9 -fomit-frame-pointer -funroll-loops -m386 -mcpu=i386 -march=i386
-ffast-math bench.c -obench

DO NOT CHANGE IT!!!!
gcc generates highly optimized code with this settings, and changing it
to a specific processor model only has 2% of speed up. So for a uniform
testing I recommend to do not change it.

The final index reported by the test is the most generic result, and
says millions of operations per second, and involves all data types,
cache sizes....
Suposse you obtain an index of 9.6 for a K6-300MHz, and an index of 17.2
for a Pentium II 350MHz
This index tries to tell: The Pentium II 350 processor is 17.2/9.6 = 1.8
times more powerfull that the K6-300

The previous results to the final index reveals more detailed
information about the processor, cache size, integer and float
performance, etc...

The parameters to induce to it are two:
  - Memory to be used by the test: Another time I recommend to DO NOT
CHANGE IT, and use a value of 8, this means 8 Mb, the larger cache size
I have noticed is 2 Mb so this is sufficient, and changing it will MAKE
THE RESULTS NO COMPARABLE between others with diferent size, because
this affects to the final index.
   - Times to execute the test: I have allways used 8 times, this value
can be changed without affecting the results, a larger value means more
precission test, I recommend to put 8 times, so the test will be more
homogeneus.

EASIEST WAY TO MAKE THE TEST ON YOUR COMPUTER:
I invited people to make the test in their computers, in plain dos, NO
WINDOWS, and post the results.
I send a zip file with the executable done and the BAT files to make the
process as easy as possible, only that you must to do is:
 - Extract the zip file
 - Execute the command:
      execute.bat my_processor

At the end of the process you will obtain a file named: my_processor.txt

with the results of the test for your processor, It will be wonderfull
if you post your results to this news group.

I have problems posting the benchmark source, bench.c is 17kb and djgpp
mail-list
seems to reject it.

begin 644 bench.zip
M4$L#!!0``@`(`(0=;2AYAJ!DJ`P``"1!```'`!4`8F5N8V AT N8U54"0`#]U7,
M.&E6S#A5>`0`%@3U`<U;;6_;MA;^7J#_@>B0PK*=V$G:='>1#/2VZ1:@:88D
M&X;[@D$6I40+166FW,MVZW^_Y#F415)R[,9M4G](1![J\#D\Y'E(BOPNYPF;
MTY2$HJ)YN7,U>?SH.SN/Y5,O,ZD^W*1^P0]B5.6%GSWGN5(!F:*:S9.*Z$+O
M8T8J_7#H9'\L>4HJ_5?E/WY$R_F4I>3UA1+U AT L>/_GK\B!!B<O\\A-1E"GK*
MC,8?>D_A>?@45`18X,^HAV\$/9#N5.]_%VE22P<=XKF6C^K\W3'\L/PLK>8S
M#I5_TA"+..<--%;R2U(EPTH,*S:LY+#*AA4];&3GQ_\Z&OYZ].KH_/3L^,=#
MVYZ<YTE>#K.<.]G'D'U15C$;OLDY/ES`/Z?<Z4TZBU5)GHKA\9DCHF)>#&DQ
M9T-*\_>.*-&B1(L27R2T2&B1\$5,BY AT 6,5^4:5&F19DODEHDM4 AT N1*,1.8EE
M7I3"!RP!L03(LH59`F@)J&4+M AT 3<$H#+%G()T"5 AT ERWP$M!+@"];^"48(,$"
MV9B@?-=A`@<3.)C`6R9P,(&#";QE`@<3.)C`6R9P,(&#";QE`@<3.)C`6R9P
M,(&#";PQ(55#OV4!=IL"+"A:%F#/*<""HF4!=IX"+"A:%F#_*<""HF4!=J$"
M+"A:%F`O*L`"(\U8&5?D&A,YKTA^/4R&[]-$C08UW"Y.SWYOAMZQ_0[D8,:<
MB_R2IQ2'*@RQ7[6&9-@\"^N96<_2>LZL9^JI%E?EK"(BP>SD*IZ1?C*=9_$0
M_DWQGQ%CX;Y`N4"Y:.2`L\]0S%#,?+%$L42Q;,1H?S]#>8;RK)&;%N]3+$"Q
M`&T*W,Q42V>])R=I4<[RF,2D2D65*I-2KCK493S]H#)^>!(<*H-CKDIN,?ID
M^-1R2.!J AT B93>M(_TF1>:44,=)+>=ECD7,7MRPF)YU69Q(J49C$M`T=]IK1?
M&YU6+5'/2O1WQWO/X$\PVC=NT!9&/?1&T.OU=,L%1<Q8F3BOBORC8AHH&`SV
MGA\$3['H6+Z!WWB,V::!4:UIYP!J,8Y%B?&O+6$H0=?9`KE,0%%0>\L608_Z
M.G9-7;NFC5U3UZYI8]?4 AT 3]M[.H44!0X=DT;NY*O8U?BVI4T=B6N74EC5^+`
M3QJ[.@44!8Y=1I0KJ.#-Z-TO;]^2O_\V'G22"28#>`.G'=8(>E>2J_@#*<R0
M%/-,31]27J4[_^%/C)WJE\J\ZFWOFHQ/\+=*(JOM1G;;8;%*=!6`1JE+L*X2
MT.2F@%Q5(.LJ`"ZI2]"N$F:NMFC'ZS`:>TVD6"Z)9Y>Q8FH5&@51[%"5,Q5O
M;DJ1JY<+W4SD)K[,N0HLHGXM*V>])!H?)J&:R26#0=.(]>#[=_+?"'IK_9#H
MA_&B'-!0M'OH^^JE'<@LY]"R?OK+J AT JT]*,]NWJ<,T9F AT FQ+-.K\6H'(KT-X
M4STH[%:)5:;!+ZGM2XQ]2$_JP:DLYUT8:CMW=(C.,C875SVU%BCG55/LT_^N
M<I;V>DK%-EH3A-O70:NMG-X+G!WUE$0-?FR7GGI)3=D/GO5M58'3P5,F4OO=
M:Y=\?IXK_\]*\4-35RW:&N^.;XCU5Q49(FTC:T.K>"^=I6+.*MV5:CXLFSGZ
M2%'9G-/2JJRKA:R)1#3>&?N925>FZ,ID79E95Z9L,JTUA542BM;=6PTJ6*&H
M;OP11E9A3^?UC#F">7P$\_CZ+9C"1S"%CQ);`+/W"&;OD;`%,'&/8.(>,5L`
M<_8(YNQ19 AT M@NA[!=#V2MJ`-V9Z^ZQDR0.8`F4>[Z>ZS!C4'U!Q0VS*8LP-P
M#L!M&<S8`3L'[+8,YNL`GP-\6P:S=;"`@P6VK&V$-8'7<V2PH0`;"KO9"S"@
M``,*N]D+0%\`^L)N]@*@%P"]L)N]`-P%X"[L9B\`=`&@"ZO9^_:/7!R=7Y!7
M/[T\<T;-]I?]6<.K"78)!#N7'1:1;A:K85GT AT BTU,=C>W?O^D-A%IJN+))U%
MZA*&XZ&0HBB2;&_;,<I:[KLA%>:Q"CE9[!Y$\-1O\S2&5/W"9'_7,].*'8.!
M&U"/(VLMY([^0033*7OUM)Q]=$,CY8T/X7]HWH.$0T*-3[3^QBM+Z6?0HA^;
M>Z"#1TW\?TBD_15(U0#Y1I".5B!5@[@+Z76S<898^K"@&SG;92;H1-<C_<^8
MK1+JG]&L$HO=("L,O-)S>_(#V7JQLY<1O7.$3WK[")_46V2;]+;^P2B!A:9*
M;;U0"6B2`!C:V=T:0A_>=P:,V1"P&KI[FJ)'K5(V`>(*:O[2)MDE5$T3(+6`
M&&[3=MHE%(P)$%Y`D/<<XTTM(1!-4/--1RTAD!#6PCMK"8&@L!;NU@(L,(@:
MA^C$PB$Z89?&]3,TW9Y>,-<3*`P^^\%HSPY?]0ZEVX%QRC"(:NFV%>5N(X?S
MGT[/+NZ='40'.X AT 6 DOT QP\?[Y_L+V_]^+`"O^BQ1!+BR5+BUF>%'=G"E%[:L$7
M_8X%VVU4<3=2L.:A%L%\_;"V\%#M AT X&X-:R)!Z.*%M+^"J0/1A4MI*,52#>D
M"H%4(2`R":0*`9%)(%6(+JHXAUV9#:G"_=KA406.F,_@"JUM(I`KS)+&B^*Z
MJHE`KC#+'2^*:QP3 AT 5R!2R'A<876&0KD"K/^Z*@E%,@59FW244LHD"MPW>+4
M(I`K&H_HQ,(C.O&M<,7;TW<_WCM5L`ZJ8#Y5-'&?^?3 AT BAQ*L)W$[DX#;"D-
M6)MN7Y,%V+VRP*+QZZ8>L%LC%GLP%F AT A[:]`^F`LT$(Z6H%T0Q9 AT R`(,8 AT Y#
M%F`0<QBR`.MB@;=ZHWU3%G`_;'LL``/F,TA`*YLP)`&S?>6%9UW3A"$)F*TM
M+SQK&!.&)(#;7LPC`:TS9$@"9J.IHY:0(0F83:B.6D*&)(`;5$XM#$F@<8A.
M+!RB$]\*";PY_NWH];VS AT  DOT Q@`;F<!>1R%I"WL8"\.PO(AV8!>:\LL&C\NJD'
M\M:()1^,!19(>S74R>3[H+_PM4XMP?Q@?-#&/*KA!F&X>[`$[X:L()$5)`0A
MB:P@(0A)9`79Q0IO<IG235G!/;BT(2MH91.)K&`^47CQ6M<TD<@*YO.%%Z\U
MC(E$5L!/&])C!:TSE,@*YC-"1RVA1%8PGQ AT Z:@DEL@)^?G!JD<@*C4-T8N$0
MG?AF6.'MZ<O[WT;*.E AT A\UEA!!L_.TTWSWQRZ"R1W%I"^2Z[.U=D2[G"_ AT K_
M-<DBNU>R6/BD;OI!=BM99`]&%BVD_15('XPB6DA'*Y!N2`X9DD,&L2A#<L@@
M%F5(#EDG.<!!GPW)P3WPZI$#CIC/8`>M;9(A DOT Y AT OVU[<UE5-,F0'\]7;B]L:
MQR1#=L`OXIG'#EIGF"$[F`_0';6$&;*#^3C=44N8(3O AT AVNGE@S9H?&(3BP\
MHA/?"CN\/OWEGV^/[IT>:`<]T)7T0%?2`UV''NC=Z8$NI0?G"-:7YX<E4<LZ
M(6/1QA>,9:TC7 AT -Z:RRC#\8/+:3]%4@?C!]:2$<KD&[(#Q3Y AT 4(THL@/%*(1
M17Z AT 7?SP&E1OR`_NY0N/'PSXSR`(K6Y"D2#,\2HO=.NZ)A0)PAR]\D*W!C*A
M2!!X+(MZ!*%UAA0)PIR(ZJ AT EI$@0YK141RTA18+`DU1.+10)HG&)3BQ<HA/W
M3Q#P97P466=DS`=R/T\C=/.:8U1VOC`?3?P\_WUAG;:R\YG9;_/S_/>9=?;*
MSI=F96;G96:!YN8UA[J\LIG_OC04[N8U!\_L?&I<Z^?Y[U/WY&3T97_M\YPG
MQ^^.3T[/.TYZKG7NI#Y;XESA\12M]56R_O+HW/;Q%*VUL5UO7CL7 AT SQ%:^V%
MU/L=SBTA7]$Z\^9Z;NQ<1O(4K15 AT ZR#JW*;R_7GT^GAS=SKWF39QIW/U:1-W
M.K>D-G&G<V5J$W<Z-[,V<:=SM<QWY\O?OL3P="X);N)/YS[A)OYTKAYNXD_G
M'N(F_G2N.V[B3^>^9@#7=RU5%WE:W)2DTA%_H3"]U)=2S&56KV[((T7.F%X1
M$)H2Z_"\TG!)]*L]:]6 AT 9P%FWM<ZB,]I7NA;,"5)2DYT)Q+&9_L9.3G]^1R4
MX<$X/!&',6"TOT(5="/15H7G)O#`A%A/E>Y(7:CPZQM^=F/KJ8*NU($*MVQQ
MKU:NJ4IWI AT Y5N+['A7VVGBKL3J*E"F>".`6DZZF*9WE5I%6>Q$1?VIG%JWTY
M:+EDT&K904<#[>ZMP'(SUT\94QU6WQ\B:[35H,/D`S]`S8M86$NF6FL])$;U
M\#&FHGEH$IJ!U4)5;?4G<U;E-TRUX&)(+5./+8:MA"V#EB!Z_;>M_G7^/A>@
M>"5Z=`XZ!)T`?TU#N8US?!;Y0[Z'X:/?/?3UM>88PXZ.(4OB";DI9\1<R"&]
MX[-`!QB-3CWB1?__`U!+`0(6`Q0``@`(`(0=;2AYAJ!DJ`P``"1!```'``T`
M``````$```"D AT 0````!B96YC:"YC550%``/W5<PX57@``%!+!08``````0`!
+`$(```#B#```````
`
end

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019