Manta Interactive Ray Tracer Development Mailing List

Text archives Help


Re: [Manta] Compile issues


Chronological Thread 
  • From: Ingo Wald <wald@sci.utah.edu>
  • To: Christian Odom <cnsodom@gmail.com>
  • Cc: Abe Stephens <abe@sci.utah.edu>, MANTA <manta@sci.utah.edu>
  • Subject: Re: [Manta] Compile issues
  • Date: Fri, 24 Aug 2007 14:39:12 -0600

You should certainly submit a bug report, and while you're at it, also mention the m128& problem.

Given that this is, in fact, _really_ fundamental, I'd not want to wait for them to fix it. It must be a loooong-known issue.

Cheers

Ingo

PS: The castsi128 does exactly what the name sais -- it casts the type, and doesn't do anything else. So I guess their implementation is simply:
__m128 _mm_castsi128_ps(__m128i val)
{ return (_m128&)val; }
Which would explain the problem ;-)


Christian Odom wrote:


  Hi All,

we replaced all __m128&, __m128i&, sse_t& and sse_int_t& by their value versions, and that helped a little bit. But Noise.cc still crashed. So we stripped it down to

#include < emmintrin.h>

__m128 crash(void)
{
    return _mm_castsi128_ps(_mm_set1_epi32(1));
}

which results in

Unexpected RDECL: 0x6000000000f100f0 passed to sse_Get_Intrin_Rdecl
(0): internal error: 0_1141

Never having used SSE this seems surprising. Can anybody see a problem with the above?

If not we'll send it as an error case to Intel. Not sure how much it would help, but it seems fairly fundamental, and too much for us to remove from Manta in general.

Thanks

   Dirk & Christian


On 8/23/07, *Ingo Wald* <wald@sci.utah.edu <mailto:wald@sci.utah.edu>> wrote:

    Not sure if it's the same compiler version, but at least "back then"
    when I last played with icc on IA64, the compiler always died as
    soon as
    you has a a reference to an sse-type (__m128 &).

    Cheers,

    Ingo



    Abe Stephens wrote:

    > It is clear that no one has built in IA64 for quite some time:
    >
    > The problem in CPUTime.cc (appearing in both icc and gcc) is due to
    > non-portable assembly code being used.  I'm not sure where
    CPUTime is
    > used, possibly in the deadline image traverser.  I also discovered
    > compilation problems in TesselatedCylinder (vla/pod error) and other
    > new code.
    >
    > It appears that some code in RayPacket.h causes the IA64 icc to
    > segfault. It appears to be SSE related as the files compile if
    SSE is
    > disabled.  This might take some time to track down (by enabling
    > MANTA_SSE and then explicitly disabling it for different
    sections of
    > the header).
    >
    > I'd like very much for Manta to continue to build on Altix/SSE,
    but I
    > don't have a large number of free cycles right now to find the
    > offending code. It's likely that there is some intrinsic which is
    > causing the issue and could be inclosed in a #if __ia64__ block.
    >
    > If you could help isolate where it is, I will certainly help fix it
    > where it occurs.
    >
    > Abe
    >
    > On Aug 23, 2007, at 12:47 PM, Christian Odom wrote:
    >
    >>
    >>
    >> On 8/23/07, *Abe Stephens* <abe@sci.utah.edu
    <mailto:abe@sci.utah.edu>
    >> <mailto:abe@sci.utah.edu ;<mailto:abe@sci.utah.edu>>> wrote:
    >>
    >>
    >>     Which source file causes the icc internal error? It looks like
    >>     icpc 9.0 segfaults when compiling CheapRNG.cc. (Unfortunately I
    >>     don't have icc ia64 10.0 here...)
    >>
    >> Here is the output from make->
    >>
    
//////////////////////////////////////////////////////////////////////////////
    >> [ 13%] Building CXX object
    Core/CMakeFiles/Manta_Core.dir/Math/CheapRNG.o
    >> (0): internal error: backend signals
    >>
    >> compilation aborted for /store/toolkit/Manta/Core/Math/CheapRNG.cc
    >> (code 4)
    >> make[2]: *** [Core/CMakeFiles/Manta_Core.dir/Math/CheapRNG.o]
    Error 4
    >> make[1]: *** [Core/CMakeFiles/Manta_Core.dir/all] Error 2
    >> make: *** [all] Error 2
    >>
    
//////////////////////////////////////////////////////////////////////////////
    >> It still seems to be CheapRNG
    >>
    >>     The gcc problem is certainly fixable by using separate code on
    >>     IA64.  Back in the day icc was much, much faster than gcc--I'd
    >>     imagine that is still the case today. Let's try to figure out
    >>     what code is causing problems with icc before switching to gcc.
    >>
    >>     Abe
    >>
    >>     On Aug 23, 2007, at 12:10 PM, Christian Odom wrote:
    >>
    >>>     Hi guys
    >>>
    >>>     Im running into a couple of compile errors on our ia64
    platforms
    >>>     when trying to compile  Rev: 1678.
    >>>
    >>>     With icc 10.0 we are still getting the dreaded->
    >>>     (0):  internal error: backend signals
>>> //////////////////////////////////////////////////////////////////////////////
    >>>
    >>>
    >>>     When using gcc 4.1.2 Im getting this mess->
    >>>
    >>>     /store/toolkit/Manta/Core/Util/CPUTime.cc: In static member
    >>>     function `static
    >>>     long long unsigned int Manta::CPUTime::currentTicks()':
    >>>     /store/toolkit/Manta/Core/Util/CPUTime.cc:90: error:
    impossible
    >>>     register
    >>>     constraint in `asm'
    >>>     /store/toolkit/Manta/Core/Util/CPUTime.cc:90: error:
    impossible
    >>>     register
    >>>     constraint in `asm'
    >>>     /store/toolkit/Manta/Core/Util/CPUTime.cc:90: error:
    impossible
    >>>     register
    >>>     constraint in `asm'
    >>>     /store/toolkit/Manta/Core/Util/CPUTime.cc:93: error:
    >>>     unrecognizable insn:
    >>>     (insn 28 40 55 2 0x2000000001631860 (parallel [
    >>>     (set (reg:SI 2 r2)
    >>>     (asm_operands/v:SI ("rdtsc") ("=a") 0 []
    >>>     [] ("/store/toolkit/Manta/Core/Util/CPUTime.cc") 90))
    >>>     (set (reg:SI 15 r15)
    >>>     (asm_operands/v:SI ("rdtsc") ("=d") 1 []
    >>>     [] ("/store/toolkit/Manta/Core/Util/CPUTime.cc") 90))
    >>>     ]) -1 (insn_list:REG_DEP_ANTI 15 (insn_list 14 (insn_list 12
    >>>     (insn_list 10 (insn_list 20 (nil))))))
    >>>     (nil))
    >>>     /store/toolkit/Manta/Core/Util/CPUTime.cc:93: confused by
    >>>     earlier errors, bailing out
    >>>     gmake[2]: *** [Core/CMakeFiles/Manta_Core.dir/Util/CPUTime.o]
    >>>     Error 1
    >>>     gmake[1]: *** [Core/CMakeFiles/Manta_Core.dir/all] Error 2
    >>>     gmake: *** [all] Error 2
>>> //////////////////////////////////////////////////////////////////////////////

    >>>
    >>>     I dont know if there is any hope for the icc compiler, but any
    >>>     thoughts on the gcc issue would be awesome.
    >>>     --
    >>>     Christian Odom
    >>>     Graduate Student
    >>>     Center for Advanced Computer Studies
    >>>     http://www.cacs.louisiana.edu ;< http://www.cacs.louisiana.edu>
    >>>     Louisiana Immersive Technologies Enterprise
    >>>     http://www.lite3d.com
    >>
    >>
    >>
    >>
    >>
    >> --
    >> Christian Odom
    >> Graduate Student
    >> Center for Advanced Computer Studies
    >> http://www.cacs.louisiana.edu
    >> Louisiana Immersive Technologies Enterprise
    >> http://www.lite3d.com
    >
    >




--
Christian Odom
Graduate Student
Center for Advanced Computer Studies
http://www.cacs.louisiana.edu
Louisiana Immersive Technologies Enterprise
http://www.lite3d.com ;<http://www.lite3d.com>







Archive powered by MHonArc 2.6.16.

Top of page