Help - Search - Members - Calendar
Full Version: Multi-threading Lame Encoder
Hydrogenaudio Forums > Lossy Audio Compression > MP3 > MP3 - Tech
Bonzi
Hi I ran across this in the lame mailing list today, I don't believe anyone has posted about this yet. Anyone with SMP that can test? The author said to expect 20% speed increase in abr/cbr modes and 34% in vbr. It also aims to be 1:1 bit compatible with lame 3.97a.
Jojo
very interesting ohmy.gif
Tec9SD
Sorry the post is so long, in the end I left the headers as they were.
One thing I noticed, all Multi-Threaded-Enabled encodes report 1 frame less than the Non-SMP-Enabled LAME (6,546 to 6,547 respectively).

My only changes to encoding were for VBR, I substituted -V 2 instead of the default --vbr-new -V 4 and for CBR, I substituted --cbr for --preset insane to make the test more relevant to HA.
Note no bit reservoir switch was used with CBR.
VBR - Microsoft Compiler:
QUOTE
       vbr_benchmark_ms.bat:
lame.3.97a.ms-mt.exe --nomt -V 2 WhatAFeeling.wav WhatAFeeling_nomt.mp3
LAME version 3.97 MMX (alpha 2, Oct 26 2004 09:22:21) (http://www.mp3dev.org/)
warning: alpha versions should be used for testing only
CPU features: MMX (ASM used), SSE
Not using Multi-threaded encoder
Using polyphase lowpass filter, transition band: 18671 Hz - 19205 Hz
Encoding WhatAFeeling.wav to WhatAFeeling_nomt.mp3
Encoding as 44.1 kHz VBR(q=2) j-stereo MPEG-1 Layer III (ca. 7.3x) qval=3
    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA
  6547/6550  (100%)|    1:42/    1:42|    1:42/    1:42|   1.6747x|    0:00
average: 132.9 kbps   LR: 1886 (28.79%)   MS: 4664 (71.21%)

Writing LAME Tag...done
ReplayGain: -7.9dB

lame.3.97a.ms-mt.exe --mt -V 2 WhatAFeeling.wav WhatAFeeling_mt.mp3
LAME version 3.97 MMX (alpha 2, Oct 26 2004 09:22:21) (http://www.mp3dev.org/)
warning: alpha versions should be used for testing only
CPU features: MMX (ASM used), SSE
Using Multi-threaded encoder
Using polyphase lowpass filter, transition band: 18671 Hz - 19205 Hz
Encoding WhatAFeeling.wav to WhatAFeeling_mt.mp3
Encoding as 44.1 kHz VBR(q=2) j-stereo MPEG-1 Layer III (ca. 7.3x) qval=3
    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA
  6546/6550  (100%)|    1:26/    1:26|    1:26/    1:26|   1.9683x|    0:00
average: 132.9 kbps   LR: 1886 (28.79%)   MS: 4664 (71.21%)

Writing LAME Tag...done
ReplayGain: -7.9dB

filecomp WhatAFeeling_nomt.mp3 WhatAFeeling_mt.mp3
total: 0002837324       errors: 0000000000
ratio: 0.000000%

VBR - Intel Compiler
QUOTE
       vbr_benchmark_icl.bat
lame.3.97a.icl-mt.exe --nomt -V 2 WhatAFeeling.wav WhatAFeeling_ICL_nomt.mp3
LAME version 3.97 MMX (alpha 2, Oct 24 2004 19:00:59) (http://www.mp3dev.org/)
warning: alpha versions should be used for testing only
CPU features: MMX (ASM used), SSE
Not using Multi-threaded encoder
Using polyphase lowpass filter, transition band: 18671 Hz - 19205 Hz
Encoding WhatAFeeling.wav to WhatAFeeling_ICL_nomt.mp3
Encoding as 44.1 kHz VBR(q=2) j-stereo MPEG-1 Layer III (ca. 7.3x) qval=3
    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA
  6547/6550  (100%)|    1:32/    1:32|    1:32/    1:32|   1.8555x|    0:00
average: 132.9 kbps   LR: 1886 (28.79%)   MS: 4664 (71.21%)

Writing LAME Tag...done
ReplayGain: -7.9dB

lame.3.97a.icl-mt.exe --mt -V 2 WhatAFeeling.wav WhatAFeeling_ICL_mt.mp3
LAME version 3.97 MMX (alpha 2, Oct 24 2004 19:00:59) (http://www.mp3dev.org/)
warning: alpha versions should be used for testing only
CPU features: MMX (ASM used), SSE
Using Multi-threaded encoder
Using polyphase lowpass filter, transition band: 18671 Hz - 19205 Hz
Encoding WhatAFeeling.wav to WhatAFeeling_ICL_mt.mp3
Encoding as 44.1 kHz VBR(q=2) j-stereo MPEG-1 Layer III (ca. 7.3x) qval=3
    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA
  6546/6550  (100%)|    1:17/    1:17|    1:17/    1:17|   2.1993x|    0:00
average: 132.9 kbps   LR: 1886 (28.79%)   MS: 4664 (71.21%)

Writing LAME Tag...done
ReplayGain: -7.9dB

filecomp WhatAFeeling_ICL_nomt.mp3 WhatAFeeling_ICL_mt.mp3

total: 0002837324       errors: 0000000000
ratio: 0.000000%

CBR - Microsoft Compiler
QUOTE
       cbr_benchmark_ms.bat
lame.3.97a.ms-mt.exe --nomt --preset insane --nores WhatAFeeling.wav WhatAFeeling_nomt_MS_API.mp3
LAME version 3.97 MMX (alpha 2, Oct 26 2004 09:22:21) (http://www.mp3dev.org/)
warning: alpha versions should be used for testing only
CPU features: MMX (ASM used), SSE
Not using Multi-threaded encoder
Using polyphase lowpass filter, transition band: 20094 Hz - 20627 Hz
Encoding WhatAFeeling.wav to WhatAFeeling_nomt_MS_API.mp3
Encoding as 44.1 kHz 320 kbps j-stereo MPEG-1 Layer III (4.4x) qval=3
    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA
  6547/6550  (100%)|    0:42/    0:42|    0:42/    0:42|   4.0674x|    0:00
average: 320.0 kbps   LR: 6516 (99.48%)   MS: 34 (0.5191%)

Writing LAME Tag...done
ReplayGain: -7.9dB

lame.3.97a.ms-mt.exe --preset insane --nores WhatAFeeling.wav WhatAFeeling_mt_MS_API.mp3
LAME version 3.97 MMX (alpha 2, Oct 26 2004 09:22:21) (http://www.mp3dev.org/)
warning: alpha versions should be used for testing only
CPU features: MMX (ASM used), SSE
Using Multi-threaded encoder
Using polyphase lowpass filter, transition band: 20094 Hz - 20627 Hz
Encoding WhatAFeeling.wav to WhatAFeeling_mt_MS_API.mp3
Encoding as 44.1 kHz 320 kbps j-stereo MPEG-1 Layer III (4.4x) qval=3
    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA
  6546/6550  (100%)|    0:27/    0:27|    0:27/    0:27|   6.1413x|    0:00
average: 320.0 kbps   LR: 6516 (99.48%)   MS: 34 (0.5191%)

Writing LAME Tag...done
ReplayGain: -7.9dB

filecomp WhatAFeeling_nomt_MS_API.mp3 WhatAFeeling_mt_MS_API.mp3
total: 0006839244       errors: 0000000000
ratio: 0.000000%

CBR - Intel Compiler
QUOTE
       cbr_benchmark_icl.bat
lame.3.97a.icl-mt.exe --nomt --preset insane --nores WhatAFeeling.wav WhatAFeeling_nomt_ICL_API.mp3
LAME version 3.97 MMX (alpha 2, Oct 24 2004 19:00:59) (http://www.mp3dev.org/)
warning: alpha versions should be used for testing only
CPU features: MMX (ASM used), SSE
Not using Multi-threaded encoder
Using polyphase lowpass filter, transition band: 20094 Hz - 20627 Hz
Encoding WhatAFeeling.wav to WhatAFeeling_nomt_ICL_API.mp3
Encoding as 44.1 kHz 320 kbps j-stereo MPEG-1 Layer III (4.4x) qval=3
    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA
  6547/6550  (100%)|    0:38/    0:38|    0:38/    0:38|   4.4296x|    0:00
average: 320.0 kbps   LR: 6516 (99.48%)   MS: 34 (0.5191%)

Writing LAME Tag...done
ReplayGain: -7.9dB

lame.3.97a.icl-mt.exe --preset insane --nores WhatAFeeling.wav WhatAFeeling_mt_ICL_API.mp3
LAME version 3.97 MMX (alpha 2, Oct 24 2004 19:00:59) (http://www.mp3dev.org/)
warning: alpha versions should be used for testing only
CPU features: MMX (ASM used), SSE
Using Multi-threaded encoder
Using polyphase lowpass filter, transition band: 20094 Hz - 20627 Hz
Encoding WhatAFeeling.wav to WhatAFeeling_mt_ICL_API.mp3
Encoding as 44.1 kHz 320 kbps j-stereo MPEG-1 Layer III (4.4x) qval=3
    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA
  6546/6550  (100%)|    0:26/    0:26|    0:26/    0:26|   6.5025x|    0:00
average: 320.0 kbps   LR: 6516 (99.48%)   MS: 34 (0.5191%)

Writing LAME Tag...done
ReplayGain: -7.9dB

filecomp WhatAFeeling_nomt_ICL_API.mp3 WhatAFeeling_mt_ICL_API.mp3
total: 0006839244       errors: 0000000000
ratio: 0.000000%


I did virtually nothing to optimize my machine for raw speed before testing so better ratios may be achievable.
FYI, The SMP LAME never used more than ~65% CPU times combined. blink.gif
I'm happy to test as much as is needed.
(I will keep the files for a couple of days in case the LAME dev. wants them.)

Hope this helps a little, tec

For the record, I would prefer to see LAME use SMP for ReplayGain calculations than encoding.
Mike Giacomelli
Looks interesting. Can these changes be added to the official 3.97 source or will this remain a side effort? I think adding SMP/SMT support to official lame versions would be a nice update.
Gabriel
It can not be added to Lame right now because some problems are not yet solved, like the fact that this version doesn not support bit reservoir.
TobWen
my god ... 7 seconds on my P4 3.4 GHz for a 4min MP3 (--alt-presets cbr 192)

crazy
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.