Testing multi-core optimized encoders for next BonkEnc release
2009-06-29 20:31:02
Hi, I am currently testing encoders built and optimized using the Intel Compiler 11.1. I plan to include them in BonkEnc 1.0.13. ICL 11 supports automatic parallelization and thus allows encoders like LAME or Vorbis to make use of multi-core processors. Note that this approach to multi-core support does not introduce additional quality reduction into the encoding process. Other approaches encode multiple frames in parallel, but have to disable certain encoder features in exchange (e.g. LAME-MT which disabled the bit reservoir). However, automatic parallelization does not scale as good as those other methods. Not all parts of the algorithms can be parallelized and thus we will not see four times faster encoding on a quad core with this one. On my desktop system (Windows XP Pro x64, Phenom II X4 920) I still measured great performance improvements when ripping and converting. On a laptop (Windows Vista Home Premium, Athlon64 X2 QL-64) the improvement was not as impressive but still significant. Curiously, aoTuV was extremely slow on the Phenom and twice as fast on the actually inferior laptop. Here are the numbers (encoding time for a 44 min CD): [blockquote]System: Windows XP Pro x64, AMD Phenom II X4 920 Input Output GCC ICL ICL (single core) ------------------------------------------------- CD LAME 5:45 3:27 4:01 CD Vorbis 9:26 2:39 7:27 CD FLAC 2:25 2:22 WAV FLAC 1:18 0:41 System: Windows Vista Home Premium, AMD Athlon64 X2 QL-64 Input Output GCC ICL ------------------------------------------------- CD LAME 5:33 5:26 CD Vorbis 4:48 3:50 WAV FLAC 1:30 1:21 [/blockquote] I am using the following compiler options to build the encoders: /Q3 /Qparallel /Qipo /Qprof-use /arch:IA32 /QaxSSE4.1,SSSE3,SSE3,SSE2 You can find a preview release of BonkEnc 1.0.13 at bonkenc.org/updates/bonkenc-1.0.13-pre.zip . It includes ICL 11.1 compiles of LAME 3.98.3, FLAC 1.2.1, Vorbis aoTuV b5.7, FAAC 1.28 and Bonk 0.12. It would be great to have some speed comparisons for other systems. So if you could compare BonkEnc 1.0.12 vs. this prerelease and post the numbers here, I would be very grateful. What do you think about this idea in general? Are the compiler options safe or should I exclude any specific optimizations? Any other things you would like to mention? Looking forward to read your suggestions and opinions on this. Robert