On Sat, 2002-10-12 at 20:25, Joerg Schilling wrote:
> >From: Joerg Schilling <[EMAIL PROTECTED]>
> >>From: Markus Plail <[EMAIL PROTECTED]>
> 
> >>I have about 18% load at 16x with the new version. It says libedc is
> >>able to do 147x speed. The closed source version does 422x and a36 was
> >>about 125x IIRC. I am using a Athlon XP1800+ with CL2 DDRAM.
> 
> >Please run another test. Use 1.11a36 and replace sector.c by the sector.c
> >version that comes with 1.11a37.
> 
> >Doe to the content dependance of the encoding speed, it may be that 1.11a36
> >will then only report ~ 100x.
> 
> Here are my tests in case somebody is interested:
> 
> 
> Pentium-233 (Notebook):
> 
> Implementation                        Speed
> =====================================
> Old Heiko libedc              1025 sectors/s,  14x
> Old libedc with my speedup    1511 sectors/s,  21x
> New Heilo lib (closed source) 1182 sectors/s,  16x
> Cdrdao led.cc                 1092 sectors/s,  15x
> 
> 
> Transmeta Crusoe Processor TM5600 600 Mhz (Notebook):
> 
> Implementation                        Speed
> =====================================
> Old Heiko libedc              2723 sectors/s,  37x
> Old libedc with my speedup    4302 sectors/s,  58x
> New Heilo lib (closed source) 10496 sectors/s, 140x
> Cdrdao led.cc                 3634 sectors/s,  49x
> 
> 
> Athlon-1000:
> 
> Implementation                        Speed
> =====================================
> Old Heiko libedc              5209 sectors/s,  70x
> Old libedc with my speedup    7042 sectors/s,  94x
> New Heilo lib (closed source) 20875 sectors/s, 279x
> Cdrdao led.cc                 6158 sectors/s,  83x

I also improved the performance of my implementation.
When building the scalar product between the P/Q coefficients
and the data vectors it is possible to compute the individual
products in advance and then just look them up in a table
(maybe that's what Heiko is also doing in his closed source).
This improves the encoding speed by up to a factor 2.

Here are some results for different CPU (time measured by encoding
100000 sectors with non zero data including scrambling):

440 MHz SUNW,UltraSPARC-IIi

old lec.cc   3200 sectors/s,  42x
new lec.cc   6024 sectors/s,  80x

900 MHz SUNW,UltraSPARC-III+

old lec.cc   6583 sectors/s,  87x
new lec.cc  14285 sectors/s, 190x

1200 MHz AMD Athlon(tm)

old lec.cc   6720 sectors/s,  89x
new lec.cc  14184 sectors/s, 189x

1733 MHz AMD Athlon(tm) (multi CPU system)

old lec.cc  13586 sectors/s, 181x
new lec.cc  21598 sectors/s, 287x

600 MHz VIA Samuel

old lec.cc   2249 sectors/s,  29x
new lec.cc   2809 sectors/s,  37x

I used SUNWspro-5.0 to compile lec.cc under Solaris with '-xO5 -native'
for optimization.
Looks like the performance of the table lookup really depends on the
hardware. The Via Samuel based system shows a poor improvement. The 
other systems show a speedup of factor ~2. An exception is the 1733 MHz
AMD based system. Here the other CPUs were loaded with other jobs which
might also have had an impact on the table lookup performance.

I'll put the new lec.cc sources to the patches section of SF.

Andreas
-- 
Andreas Mueller                  Tel: +49 89 67808848
Ramsmeierstr. 1                Email: [EMAIL PROTECTED]
85579 Neubiberg, Germany


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to