Re: [eigen] PGI compilation error |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] PGI compilation error
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Tue, 23 Feb 2010 09:07:05 -0500
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=8BuA6jG3WSP4iM3tsoPHzPm6cyiFMCaTMh4rW3cMEzU=; b=hXRlCesGY/DmUKXwVa+2dWXSUdGhKEjW527E3p9pt6qKcQjcm/jHFpKihgx0Qvgb+7 vVwwTL6giwHZ91ymN7foeNI/F+vLU0whIMnVFL6409zEAtm3mv0CJYuy/Q5nscL1vbj1 mLwW2j92Me7KVH8QA90jjGyuk+MTsJ2Rzq3Ds=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=ci85nV8OzBBvXkbohg3wJoMR3FggMAGLnZdr2/77LjVhy5Are6qiK1oddKRcav9SP6 JqFNXf1AZCnLhtQFw0H3Pl3LUE2LxJdojfij0bJgRFr+CSF6HUxSy84JnUEz49CeyItl zEsw5ggmRzkISiaulNTQEzT22igYABKgjrSQ0=
Sorry, I'm not sure I'm following correctly.
Is the current problem that _mm_malloc is not found?
If yes, then the easy fix is to tell Eigen to not try using it. There
are other solutions for the same need.
Just edit Eigen/src/Core/util/Memory.h, find this:
#ifdef EIGEN_VECTORIZE_SSE
#define EIGEN_HAS_MM_MALLOC 1
#else
#define EIGEN_HAS_MM_MALLOC 0
#endif
and replace the '1' by '0' to tell Eigen not to use it.
In the worst case Eigen can always use ei_handmade_aligned_malloc.
Cheers,
Benoit
2010/2/23 Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>:
> The revision number is correct - you are in the development branch
> where I applied the fix.
>
> Regarding PGI, I don't have the compiler myself and right now I am
> unable to find out on the web which methods are used for aligned
> memory management (src\Core\util\Memory.h,
> free/_mm_free/_aligned_free,...). As soon as you can provide us with
> the information I can easily patch Eigen.
>
> Until then, the only chance to compile Eigen is disabling
> vectorization by defining EIGEN_DONT_VECTORIZE. Well, assuming there
> don't occur any other errors... ;)
>
> - Hauke
>
> On Tue, Feb 23, 2010 at 2:51 PM, Philippe Marti
> <philippe.marti@xxxxxxxxx> wrote:
>> Hello,
>>
>> I hope that's the right information, I'm not used to mercurial:
>>
>> hg identify:
>> a2598077ebca tip
>>
>>
>> For the PGI compiler:
>> pgCC 9.0-4 64-bit
>>
>> Regards,
>> Philippe
>> On Tue, Feb 23, 2010 at 1:49 PM, Aron Ahmadia <aja2111@xxxxxxxxxxxx> wrote:
>>> Hi Philippe,
>>>
>>> Can you verify the hg version of Eigen that you are working from and
>>> the error again? I don't have access to a PGI compiler here but you
>>> may as well note the version number of the compiler :)
>>>
>>> A
>>>
>>> On Tue, Feb 23, 2010 at 1:07 PM, Philippe Marti
>>> <philippe.marti@xxxxxxxxx> wrote:
>>>> Well ok, compiling the tests works fine with and the first tests
>>>> passed (interrupted afterwards as I'm not supposed to run to heavy
>>>> stuff on the login nodes)
>>>>
>>>> And I get the error posted previously for PGI.
>>>>
>>>> Oh and it also works for Pathscale. Just PGI is complaining.
>>>>
>>>> Thanks,
>>>> Philippe
>>>>
>>>> On Tue, Feb 23, 2010 at 12:41 PM, Philippe Marti
>>>> <philippe.marti@xxxxxxxxx> wrote:
>>>>> Oh, Wait before you start digging to deep. It's a little bit messy
>>>>> here to get to load the right compilers/library etc on the cluster. I
>>>>> might have forgotten something.
>>>>>
>>>>> I'll check that the gcc version is working
>>>>>
>>>>> regards,
>>>>> Philippe
>>>>>
>>>>> On Tue, Feb 23, 2010 at 12:38 PM, Hauke Heibel
>>>>> <hauke.heibel@xxxxxxxxxxxxxx> wrote:
>>>>>> This error is a little bit odd. It means that you have defined
>>>>>> EIGEN_VECTORIZE_SSE (see src/core/util/Memory.h) and thus you should
>>>>>> have included 'xmmintrin.h' (see Core) where (at least AFAIK) _mm_free
>>>>>> and _mm_malloc are declared as external or included via 'malloc.h'.
>>>>>>
>>>>>> As I said, I am a little bit at a loss...
>>>>>>
>>>>>> - Hauke
>>>>>>
>>>>>> On Tue, Feb 23, 2010 at 12:21 PM, Philippe Marti
>>>>>> <philippe.marti@xxxxxxxxx> wrote:
>>>>>>> The default branch is the 3.0 one right?
>>>>>>>
>>>>>>> I tried the to compile the tests with PGI, here are the first errors
>>>>>>> (not sure about what you need):
>>>>>>>
>>>>>>> "/users/pmarti/tmp/ei3/eigen/Eigen/src/Core/util/Memory.h", line 94: error:
>>>>>>> identifier "_mm_malloc" is undefined
>>>>>>> result = _mm_malloc(size, 16);
>>>>>>> ^
>>>>>>>
>>>>>>> "/users/pmarti/tmp/ei3/eigen/Eigen/src/Core/util/Memory.h", line 165: error:
>>>>>>> identifier "_mm_free" is undefined
>>>>>>> _mm_free(ptr);
>>>>>>> ^
>>>>>>>
>>>>>>> "/users/pmarti/tmp/ei3/eigen/Eigen/src/Core/arch/SSE/PacketMath.h",
>>>>>>> line 142: warning:
>>>>>>> controlling expression is constant
>>>>>>> { ei_assert(false && "packet integer division are not supported by SSE");
>>>>>>> ^
>>>>>>>
>>>>>>> "/users/pmarti/tmp/ei3/eigen/Eigen/src/Core/arch/SSE/PacketMath.h",
>>>>>>> line 247: error:
>>>>>>> identifier "_mm_cvtss_f32" is undefined
>>>>>>> template<> EIGEN_STRONG_INLINE float ei_pfirst<Packet4f>(const
>>>>>>> Packet4f& a) { return _mm_cvtss_f32(a); }
>>>>>>>
>>>>>>> ^
>>>>>>>
>>>>>>> "/users/pmarti/tmp/ei3/eigen/Eigen/src/Core/arch/SSE/PacketMath.h",
>>>>>>> line 248: error:
>>>>>>> identifier "_mm_cvtsd_f64" is undefined
>>>>>>> template<> EIGEN_STRONG_INLINE double ei_pfirst<Packet2d>(const
>>>>>>> Packet2d& a) { return _mm_cvtsd_f64(a); }
>>>>>>>
>>>>>>> Philippe
>>>>>>>
>>>>>>> On Tue, Feb 23, 2010 at 11:38 AM, Hauke Heibel
>>>>>>> <hauke.heibel@xxxxxxxxxxxxxx> wrote:
>>>>>>>> I tried to fix the aligned issue in the default branch. You may try to
>>>>>>>> grab that version and give it a shot.
>>>>>>>>
>>>>>>>> - Hauke
>>>>>>>>
>>>>>>>> On Tue, Feb 23, 2010 at 11:23 AM, Philippe Marti
>>>>>>>> <philippe.marti@xxxxxxxxx> wrote:
>>>>>>>>> PGI: pgCC 9.0-4 64-bit target on x86-64 Linux
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> "/users/pmarti/Documents/Code/git/FSDynamoCode/External/eigen/Eigen/src/Core/util/Macros.h",
>>>>>>>>> line 193: catastrophic error:
>>>>>>>>> #error directive: Please tell me what is the equivalent of
>>>>>>>>> __attribute__((aligned(16))) for your compiler
>>>>>>>>> #error Please tell me what is the equivalent of
>>>>>>>>> __attribute__((aligned(16))) for your compiler
>>>>>>>>> ^
>>>>>>>>>
>>>>>>>>> 1 catastrophic error detected in the compilation of
>>>>>>>>> "/users/pmarti/Documents/Code/git/FSDynamoCode/Programs/ThermalConvectionRun.cpp".
>>>>>>>>> Compilation terminated.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
>
>