Help - Search - Members - Calendar
Full Version: recommended compiler
Hydrogenaudio Forums > Lossy Audio Compression > Ogg Vorbis > Ogg Vorbis - General
stipe
is it ICL, or MSVC?

and what version?
Sebastian Mares
AFAIK, the binaries compiled with the Intel Compiler (ICL) will run faster than the ones created by Microsoft's VC++ compiler.
Also, if you plan to use Quality 5 and above, I would use Garf's tuned version. If not, use the 1.0.1 binaries.
LordofStars
I also remember vorbis being faster compiled with gcc. Am I crazy?
stipe
i don't think so. 99% of gcc compiles are slower than msvc and icl ones.
LordofStars
Honestly I do remember john33 creating a faster vorbis compile with gcc 2.9.x

I would have to do a bit of digging but it seems to be true in my mind
john33
The GCC compile was certainly pretty fast. IIRC, it was faster than the VC6 compile, but only slightly slower than the ICL7 one. The nice thing about the different compilers with vorbis is that files encoded with them are almost identical, unlike LAME where there can be quite a difference in the encoded output.
jrp
QUOTE(john33 @ Nov 24 2003, 01:03 PM)
... LAME where there can be quite a difference in the encoded output.

Yes, I can imagine. I tried compiling up various versions of Lame with VC++ from Visual Studio.Net 2003 and it throws up a lot of warnings about possible problems with assigning doubles to floats and integer overflows, which suggests that there are compiler dependencies.
cabbagerat
QUOTE
unlike LAME where there can be quite a difference in the encoded output.

I have always wondered why this is not considered a huge bug in LAME and taken very seriously by the developers. Good code should not break when moved to a different compiler or platform. I know that LAME is free and hence I have no right to complain, but I just wonder why the developers and users pay so little attention to what is clearly a major bug.

QUOTE
i don't think so. 99% of gcc compiles are slower than msvc and icl ones.

Maybe this is a special problem with Vorbis, but I have found over and over that GCC (mostly 3.x) produces faster binaries than MSVC on almost all code. ICL tends to be faster still.
Gabriel
QUOTE
LAME where there can be quite a difference in the encoded output

This is only the case if you are using experimental switches from your compiler, or switches breaking C compliance.
Otherwise the result between compilers is quite similar (about 0.1-0.2% difference in bitrate)
Ivan Dimkovic
QUOTE
This is only the case if you are using experimental switches from your compiler, or switches breaking C compliance.
Otherwise the result between compilers is quite similar (about 0.1-0.2% difference in bitrate)


Hmmm.... very strange, I remember that I had similar problems with AAC encoder (different output between ICL and MSVC) but after code rewrite the outputs are now bit-to-bit identical. Never found out what caused these differences.
dev0
How big are the speed improvments, Ivan?

I generally prefer MSVC6 compiles under Win32 (except for the well tested lame compile), but the only objective reason for that is my paranoia.
Ivan Dimkovic
I just noticed that I didn't answer this question smile.gif

Well, this is a tricky question - usually, if you do not employ some already optimized DSP code (like Intel's IPP library) you'd usually get some 30% of speed improvement in a typical floating point audio encoder.

However, if you already optimize the code with some vector-friendly functions that support SSE/MMX/... - you'd get smaller improvement by switching from MSVC to ICL - usually 10% or less.
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.