Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ANN: kForth 1.4.1 beta for x86-linux

0 views
Skip to first unread message

Krishna Myneni

unread,
Feb 22, 2007, 9:45:48 PM2/22/07
to
A beta version of kForth 1.4.1 for x86-linux systems is available for testing.
Please see the link below.

http://ccreweb.org/software/kforth/kforth.html

Some standard benchmark results are given for comparison with the earlier
version (1.3.2). On average, the new "regular" kforth is about 4% faster, while
kforth-fast has a substantial speed improvement of about 18%, compared to the
earlier version.

Note that version 1.4.0 has been available for ppc-osx systems for some time
now, but the benchmarks given below do not apply to the ppc system. David
Williams has separately published benchmarks for kForth, PFE, and gforth on ppc
systems, and these may be found at

http://www-personal.umich.edu/~williams/archive/forth/kforth/osx.bench

A few items still need to be added to the x86-linux version to bring it into
equivalence with the ppc version, and changes to the serial port library
(serial.4th), proposed by J. Zakiya, still need to be incorporated (my apologies
to Jabari for taking so long to do this).

Krishna Myneni

--
1.3.2 1.4.1 1.3.2-fast 1.4.1-fast
------------------------------------------------------------------
sieve 1685 1675 +1% 1299 1040 +20%
bubble-sort 2227 2163 +3% 1748 1406 +20%
matrix-mult 2249 2274 -1% 1798 1606 +11%
fib 2866 2642 +8% 2411 1759 +27%
pde1 10209 9819 +4% 8330 7002 +16%
tscp (*) 6518nps 7043 +7% 7771nps 9376 +17%
------------------------------------------------------------------
Average +4% +18%

(*) All times are given in milliseconds, except for tscp, which is measured in
nodes per second (inverse time) for the command "mv e2e4".

At present, the absolute times probably are not that meaningful for my system
(x86_64 linux). I seem to have unusually large overhead on my system --- maybe
too many background tasks. I hesitate to give comparison numbers for gforth
0.6.2, because I'm not sure if it is built with proper optimization on my
system. Gforth was built from source with the standard "configure", "make", and
"make install" sequence. Therefore, treat the following numbers with a grain of
salt; however, I think the overall speed ratio for kforth and gforth, shown by
the numbers above and below, is about right.

gforth 0.6.2 gforth-fast gforth-itc gforth-ditc
--------------------------------------------------------------------
sieve 705 554 970 1014
bubble-sort 944 979 1234 1209
matrix-mult 1119 1136 1410 1417
fib 1095 836 2064 1572
pde1 5721 4823 7399 7090
---------------------------------------------------------------------

Anton Ertl

unread,
Feb 23, 2007, 11:14:11 AM2/23/07
to
Krishna Myneni <krishn...@bellsouth.net> writes:
>At present, the absolute times probably are not that meaningful for my system
>(x86_64 linux). I seem to have unusually large overhead on my system --- maybe
>too many background tasks. I hesitate to give comparison numbers for gforth
>0.6.2, because I'm not sure if it is built with proper optimization on my
>system. Gforth was built from source with the standard "configure", "make", and
>"make install" sequence.

Gforth 0.6.2 is very slow with the gcc versions that are available for
x86_64 linux (at least a factor of two slower than with gcc-2.95):

sieve bubble matrix fib
0.22 0.33 0.14 0.36 32-bit gcc-2.95.1 (configure --enable-force-reg)
0.48 0.75 0.91 0.66 64-bit gcc-4.1.2 20061115

That's on the same 2GHz Athlon 64. BTW, gcc-3.x is worse than
gcc-4.x.

The development version contains workarounds for most of the gcc
problems.

- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: http://www.forth200x.org/forth200x.html
Forth-Tagung 2007: http://www.complang.tuwien.ac.at/anton/forth-tagung07/
EuroForth 2007: September 13-16, 2007

Krishna Myneni

unread,
Feb 23, 2007, 8:23:47 PM2/23/07
to
Anton Ertl wrote:
> Krishna Myneni <krishn...@bellsouth.net> writes:
>
>>At present, the absolute times probably are not that meaningful for my system
>>(x86_64 linux). I seem to have unusually large overhead on my system --- maybe
>>too many background tasks. I hesitate to give comparison numbers for gforth
>>0.6.2, because I'm not sure if it is built with proper optimization on my
>>system. Gforth was built from source with the standard "configure", "make", and
>>"make install" sequence.
>
>
> Gforth 0.6.2 is very slow with the gcc versions that are available for
> x86_64 linux (at least a factor of two slower than with gcc-2.95):
>
> sieve bubble matrix fib
> 0.22 0.33 0.14 0.36 32-bit gcc-2.95.1 (configure --enable-force-reg)
> 0.48 0.75 0.91 0.66 64-bit gcc-4.1.2 20061115
>
> That's on the same 2GHz Athlon 64. BTW, gcc-3.x is worse than
> gcc-4.x.
>
> The development version contains workarounds for most of the gcc
> problems.
>
> - anton

Ok. Thanks. That's a substantial difference between 32-bit and 64-bit
performance! I'll try the comparison using your latest development version on my
64-bit Opteron system, which has gcc 4.1.0.

Krishna

Anton Ertl

unread,
Feb 24, 2007, 2:07:43 AM2/24/07
to
Krishna Myneni <krishn...@bellsouth.net> writes:

>Anton Ertl wrote:
>> Gforth 0.6.2 is very slow with the gcc versions that are available for
>> x86_64 linux (at least a factor of two slower than with gcc-2.95):
>>
>> sieve bubble matrix fib
>> 0.22 0.33 0.14 0.36 32-bit gcc-2.95.1 (configure --enable-force-reg)
>> 0.48 0.75 0.91 0.66 64-bit gcc-4.1.2 20061115

0.46 0.75 0.92 0.66 32-bit gcc-4.1.2 20061115

>Ok. Thanks. That's a substantial difference between 32-bit and 64-bit
>performance!

Actually it's the difference between gcc-2.95.1 and gcc-4.1.2, as you
can see above.

Krishna Myneni

unread,
Mar 13, 2007, 12:28:01 AM3/13/07
to
Anton Ertl wrote:
> Krishna Myneni <krishn...@bellsouth.net> writes:
>
>>At present, the absolute times probably are not that meaningful for my system
>>(x86_64 linux). I seem to have unusually large overhead on my system --- maybe
>>too many background tasks. I hesitate to give comparison numbers for gforth
>>0.6.2, because I'm not sure if it is built with proper optimization on my
>>system. Gforth was built from source with the standard "configure", "make", and
>>"make install" sequence.
>
>
> Gforth 0.6.2 is very slow with the gcc versions that are available for
> x86_64 linux (at least a factor of two slower than with gcc-2.95):
>
> sieve bubble matrix fib
> 0.22 0.33 0.14 0.36 32-bit gcc-2.95.1 (configure --enable-force-reg)
> 0.48 0.75 0.91 0.66 64-bit gcc-4.1.2 20061115
>
> That's on the same 2GHz Athlon 64. BTW, gcc-3.x is worse than
> gcc-4.x.
>
> The development version contains workarounds for most of the gcc
> problems.
>
> - anton

Using the latest gforth cvs snapshot (from 12 March 2007), here are the test
results on my system (gcc 4.1.0, x86_64 linux, Opteron 1.6 GHz):

Using "./configure" (with no options),

gforth gforth-fast gforth-itc gforth-ditc
-------------------------------------------------------------------
sieve 854 549 1085 1090
bubble-sort 1158 679 1347 1255
matrix-mult 1222 334 1421 1496
fib 1271 703 1478 1675
pde1 5994 1734 6944 7359
--------------------------------------------------------------------


Using "./configure --enable-force-reg --enable-force-ll",

gforth gforth-fast gforth-itc gforth-ditc
-------------------------------------------------------------------
sieve 865 433 1101 1104
bubble-sort 1135 568 1346 1275
matrix-mult 1234 200 1428 1506
fib 1301 648 1474 1716
pde1 6010 1466 6861 7410
--------------------------------------------------------------------

The latest snapshot therefore shows tremendous improvement in gforth-fast, for
gcc 4.x.

For comparison, the kForth 1.4.1 results on the same system are reproduced again
below:

1.4.1 1.4.1-fast
------------------------------------------------------------------
sieve 1675 1040
bubble-sort 2163 1406
matrix-mult 2274 1606
fib 2642 1759
pde1 9819 7002
------------------------------------------------------------------

All times are in milliseconds.

Krishna Myneni

0 new messages