Manta Interactive Ray Tracer Development Mailing List

Text archives Help


Re: [MANTA] Compiler flags to use with gcc and icc


Chronological Thread 
  • From: Abe Stephens <abe@sci.utah.edu>
  • To: Shreekanth Pavar <shreekanth.pavar@ucl.ac.uk>
  • Cc: MANTA <manta@sci.utah.edu>
  • Subject: Re: [MANTA] Compiler flags to use with gcc and icc
  • Date: Wed, 28 Feb 2007 10:33:42 -0700


Shreekanth Pavar wrote:
Manta appears to be preconfigured (via cmake) to use only -03 with icc.
Why doesn't it also use -mcpu=itanium2 and -fast ?
The -g option is included in the release builds. Why is this ?
The -g option is added to make debugging feasible. If I remember correctly -g only adds debug symbols while -Od enables debug mode. Also on itanium the icc compiler by default assumes it's running on the itanium.

There are 2 SSE options visible in cmake (MANTA_SSE and MANTA_SSE_GCC)
which were preconfigured as follows:

                 gcc    icc
MANTA_SSE         OFF    ON
MANTA_SSE_GCC     OFF    OFF

For CC=icc, MANTA_SSE=ON by default
There are (or used to be) slight differences between icc support for SSE and gcc support for SSE. the _SSE_GCC flag is automatically set by the build if certain pre-build tests fail. You shouldn't have to change it manually.

Note that the build will use the c++ compiler (i.e. CXX=icpc).

However, Manta fails to compile with error "Internal Error:Backend Signals" so
we had to turn it off. Should it be on by default ?
Yes, it should, however some of the SSE code in manta breaks the itanium2 icc compiler we've used, but not any of the other platform versions.
To use SSE I assume we just need to modify the above cmake options and add any
required flags to CMAKE_CXX_FLAGS (i.e. -msse and -msse2). Is this correct ?

I'm not sure what the g++ SSE flags are on the itanium, they're probably pretty similar to the flags on other platforms. The reason that they aren't automatically used (and the reason that the build produces a warning if you try to use gcc on itanium) is that the generated code is about 55% slower than the code produced by icc.

Take a look at https://code.sci.utah.edu/svn/Manta/trunk/CMake/ConfigIA64.cmake Many of the other CMake/Config*.cmake scripts set compiler options on other platforms.

Abe





Archive powered by MHonArc 2.6.16.

Top of page