<pre>Brian,<br><br><span style="font-family: mon,mon;"></span><span style="font-family: mon;">I've run gmpbench on my (32-bit, single-core) Ubuntu machine...<br><br></span>jdo@BlackAdder:~/gmpbench-0.1$ cat /proc/cpuinfo <br>processor : 0<br>vendor_id : AuthenticAMD<br>cpu family : 6<br>model : 10<br>model name : AMD Athlon(tm) XP 2800+<br>stepping : 0<br>cpu MHz : 2255.147<br>cache size : 512 KB<br><br>...and this gives the following divide results:<br><br> Program divide<br> divide 8192 32<br> GMPbench.base.divide.8192,32 result: 506617<br> divide 8192 64<br> GMPbench.base.divide.8192,64 result: 148316<br> divide 8192 128<br> GMPbench.base.divide.8192,128 result: 94882<br> divide 8192 4096<br> GMPbench.base.divide.8192,4096 result: 32560<br> divide 8192 8064<br> GMPbench.base.divide.8192,8064 result: 430080<br> divide 131072 8192<br> GMPbench.base.divide.131072,8192 result: 677<br> divide 131072 65536<br> GMPbench.base.divide.131072,65536 result: 373<br> divide 8388608 4194304<br> GMPbench.base.divide.8388608,4194304 result: 1.07<br> GMPbench.base.divide result: 8489.3<br><br>You might notice several things:<br>1) The results of your only slightly higher clocked X2 are generally 2 to 3 times better than mine...<br>2) ...except for the FIRST result.<br><br>It looks like the divide.8192,32 and divide.8192,64 algorithms really do not differ much on a 64-bit machine (probably because the divider is stored in a 64-bit "word" anyway).<br>For my (32-bit) machine this does matter, as a 64-bit divider is stored in 2 32-bits "words".<br><br>In short, for a 64-bit machine, the first test should probably be excluded (or at least not taken into account when calculating the final benchmark result).<br><br>CU, JDO
<br>--------------------------------- Original mail ---------------------------------<br>I have been running gmpbench on an 2.4 GHz AMD64 X2 machine with the <br>following summary results:<br><br>Running benchmarks<br> Category base<br> Program multiply<br> GMPbench.base.multiply result: 47916<br> Program divide<br> GMPbench.base.divide result: 18006<br> GMPbench.base result: 29373<br> Program rsa<br> GMPbench.app result: 2386.3<br>GMPbench result: 8372<br><br>The striking feature here is that the divide results are poor and I am <br>wondering why this is.<br><br> Program divide<br> divide 8192 32<br> GMPbench.base.divide.8192,32 result: 356495<br> divide 8192 64<br> GMPbench.base.divide.8192,64 result: 336958<br> divide 8192 128<br> GMPbench.base.divide.8192,128 result: 170276<br> divide 8192 4096<br> GMPbench.base.divide.8192,4096 result: 88660<br> divide 8192 8064<br> GMPbench.base.divide.8192,8064 result: 953276<br> divide 131072 8192<br> GMPbench.base.divide.131072,8192 result: 2170<br> divide 131072 65536<br> GMPbench.base.divide.131072,65536 result: 1202<br> divide 8388608 4194304<br> GMPbench.base.divide.8388608,4194304 result: 2.45<br> GMPbench.base.divide result: 18006<br><br>Given these results for divide, is it likely that the limits for switching <br>algorithms is wrong?<br><br>Or do I need to do more work on assembler code in support of divide <br>operations?<br><br>Any observations would be appreciated.<br><br> Brian Gladman</pre>
<div>
</div>
<BR>
--
<div> Enter the Bourne Ultimatum Sweepstakes<br>
<a href="http://www.hollywoodlife.net/index.php/sweepstakescontests/the-bourne-ultimatum/?utm_source=mail_hl_sent_footer&utm_medium=email&utm_term=070713&utm_content=hl_textlink&utm_campaign=the-bourne-ultimatum" target="_blank">View Trailer, Win Free Prizes.</a> In Theaters 08.03.07</div>