Vc-XeonPhi
Kulakov, Igor
[please enable javascript to see the address]
Mon Aug 26 17:39:19 CEST 2013
> I can't compile Vc with gcc.4.7.3
Sorry. I didn't switched from master branch.
Now I do:
git clone git://code.compeng.uni-frankfurt.de/vc.git
git checkout XeonPhi
and get:
/u/ikulakov/Vc/Vc-Phi/avx/vector.tcc:1341:46: error: 'template' (as a disambiguator) is only allowed within templates
In file included from /u/ikulakov/Vc/Vc-Phi/avx/vector.h:456:0,
from /u/ikulakov/Vc/Vc-Phi/include/Vc/vector.h:32,
from /u/ikulakov/Vc/Vc-Phi/include/Vc/Vc:22,
from /u/ikulakov/Vc/Vc-Phi/src/trigonometric.cpp:20:
/u/ikulakov/Vc/Vc-Phi/avx/vector.tcc: In static member function 'static Vc::v0::AVX::Vector<T> Vc::v0::AVX::Vector<T>::Random() [with T = double]':
USE_AVX is set to false.
cmake log:
[17:38:24]~/Vc/Vc-Phi/build$ cmake ..
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /cvmfs/it.gsi.de/compiler/gcc/4.7.3/bin/gcc
-- Check for working C compiler: /cvmfs/it.gsi.de/compiler/gcc/4.7.3/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /cvmfs/it.gsi.de/compiler/gcc/4.7.3/bin/c++
-- Check for working CXX compiler: /cvmfs/it.gsi.de/compiler/gcc/4.7.3/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detected Compiler: GCC 4.7.3
-- Performing Test c_compiler_can_offload
-- Performing Test c_compiler_can_offload - Failed
-- Performing Test cxx_compiler_can_offload
-- Performing Test cxx_compiler_can_offload - Failed
-- C/C++ Compiler can NOT offload to MIC.
CMake Warning at cmake/FindMIC.cmake:159 (message):
MIC SDK was not found!
Call Stack (most recent call first):
CMakeLists.txt:20 (find_package)
-- Performing Test check_c_compiler_flag__std_c__11
-- Performing Test check_c_compiler_flag__std_c__11 - Failed
-- Performing Test check_cxx_compiler_flag__std_c__11
-- Performing Test check_cxx_compiler_flag__std_c__11 - Success
-- Performing Test check_c_compiler_flag__W
-- Performing Test check_c_compiler_flag__W - Success
-- Performing Test check_cxx_compiler_flag__W
-- Performing Test check_cxx_compiler_flag__W - Success
-- Performing Test check_c_compiler_flag__Wall
-- Performing Test check_c_compiler_flag__Wall - Success
-- Performing Test check_cxx_compiler_flag__Wall
-- Performing Test check_cxx_compiler_flag__Wall - Success
-- Performing Test check_c_compiler_flag__Wswitch
-- Performing Test check_c_compiler_flag__Wswitch - Success
-- Performing Test check_cxx_compiler_flag__Wswitch
-- Performing Test check_cxx_compiler_flag__Wswitch - Success
-- Performing Test check_c_compiler_flag__Wformat
-- Performing Test check_c_compiler_flag__Wformat - Success
-- Performing Test check_cxx_compiler_flag__Wformat
-- Performing Test check_cxx_compiler_flag__Wformat - Success
-- Performing Test check_c_compiler_flag__Wchar_subscripts
-- Performing Test check_c_compiler_flag__Wchar_subscripts - Success
-- Performing Test check_cxx_compiler_flag__Wchar_subscripts
-- Performing Test check_cxx_compiler_flag__Wchar_subscripts - Success
-- Performing Test check_c_compiler_flag__Wparentheses
-- Performing Test check_c_compiler_flag__Wparentheses - Success
-- Performing Test check_cxx_compiler_flag__Wparentheses
-- Performing Test check_cxx_compiler_flag__Wparentheses - Success
-- Performing Test check_c_compiler_flag__Wmultichar
-- Performing Test check_c_compiler_flag__Wmultichar - Success
-- Performing Test check_cxx_compiler_flag__Wmultichar
-- Performing Test check_cxx_compiler_flag__Wmultichar - Success
-- Performing Test check_c_compiler_flag__Wtrigraphs
-- Performing Test check_c_compiler_flag__Wtrigraphs - Success
-- Performing Test check_cxx_compiler_flag__Wtrigraphs
-- Performing Test check_cxx_compiler_flag__Wtrigraphs - Success
-- Performing Test check_c_compiler_flag__Wpointer_arith
-- Performing Test check_c_compiler_flag__Wpointer_arith - Success
-- Performing Test check_cxx_compiler_flag__Wpointer_arith
-- Performing Test check_cxx_compiler_flag__Wpointer_arith - Success
-- Performing Test check_c_compiler_flag__Wcast_align
-- Performing Test check_c_compiler_flag__Wcast_align - Success
-- Performing Test check_cxx_compiler_flag__Wcast_align
-- Performing Test check_cxx_compiler_flag__Wcast_align - Success
-- Performing Test check_c_compiler_flag__Wreturn_type
-- Performing Test check_c_compiler_flag__Wreturn_type - Success
-- Performing Test check_cxx_compiler_flag__Wreturn_type
-- Performing Test check_cxx_compiler_flag__Wreturn_type - Success
-- Performing Test check_c_compiler_flag__Wno_unused_function
-- Performing Test check_c_compiler_flag__Wno_unused_function - Success
-- Performing Test check_cxx_compiler_flag__Wno_unused_function
-- Performing Test check_cxx_compiler_flag__Wno_unused_function - Success
-- Performing Test check_c_compiler_flag__pedantic
-- Performing Test check_c_compiler_flag__pedantic - Success
-- Performing Test check_cxx_compiler_flag__pedantic
-- Performing Test check_cxx_compiler_flag__pedantic - Success
-- Performing Test check_c_compiler_flag__Wshadow
-- Performing Test check_c_compiler_flag__Wshadow - Success
-- Performing Test check_cxx_compiler_flag__Wshadow
-- Performing Test check_cxx_compiler_flag__Wshadow - Success
-- Performing Test check_c_compiler_flag__Wundef
-- Performing Test check_c_compiler_flag__Wundef - Success
-- Performing Test check_cxx_compiler_flag__Wundef
-- Performing Test check_cxx_compiler_flag__Wundef - Success
-- Performing Test check_c_compiler_flag__Wold_style_cast
-- Performing Test check_c_compiler_flag__Wold_style_cast - Failed
-- Performing Test check_cxx_compiler_flag__Wold_style_cast
-- Performing Test check_cxx_compiler_flag__Wold_style_cast - Success
-- Performing Test check_c_compiler_flag__Wno_variadic_macros
-- Performing Test check_c_compiler_flag__Wno_variadic_macros - Success
-- Performing Test check_cxx_compiler_flag__Wno_variadic_macros
-- Performing Test check_cxx_compiler_flag__Wno_variadic_macros - Success
-- Performing Test check_c_compiler_flag__Wabi
-- Performing Test check_c_compiler_flag__Wabi - Success
-- Performing Test check_cxx_compiler_flag__Wabi
-- Performing Test check_cxx_compiler_flag__Wabi - Success
-- Performing Test check_c_compiler_flag__fabi_version_0
-- Performing Test check_c_compiler_flag__fabi_version_0 - Success
-- Performing Test check_cxx_compiler_flag__fabi_version_0
-- Performing Test check_cxx_compiler_flag__fabi_version_0 - Success
-- Performing Test Vc_VOID_PTR_IS_64BIT
-- Performing Test Vc_VOID_PTR_IS_64BIT - Success
-- Performing Test check_c_compiler_flag__ffp_contract_fast
-- Performing Test check_c_compiler_flag__ffp_contract_fast - Success
-- Performing Test check_cxx_compiler_flag__ffp_contract_fast
-- Performing Test check_cxx_compiler_flag__ffp_contract_fast - Success
-- target changed from "" to "auto"
-- Detected CPU: nehalem
-- Performing Test check_c_compiler_flag__march_nehalem
-- Performing Test check_c_compiler_flag__march_nehalem - Failed
-- Performing Test check_cxx_compiler_flag__march_nehalem
-- Performing Test check_cxx_compiler_flag__march_nehalem - Failed
-- Performing Test check_c_compiler_flag__march_corei7
-- Performing Test check_c_compiler_flag__march_corei7 - Success
-- Performing Test check_cxx_compiler_flag__march_corei7
-- Performing Test check_cxx_compiler_flag__march_corei7 - Success
-- Performing Test check_c_compiler_flag__msse2
-- Performing Test check_c_compiler_flag__msse2 - Success
-- Performing Test check_cxx_compiler_flag__msse2
-- Performing Test check_cxx_compiler_flag__msse2 - Success
-- Performing Test check_c_compiler_flag__msse3
-- Performing Test check_c_compiler_flag__msse3 - Success
-- Performing Test check_cxx_compiler_flag__msse3
-- Performing Test check_cxx_compiler_flag__msse3 - Success
-- Looking for pmmintrin.h
-- Looking for pmmintrin.h - found
-- Performing Test check_c_compiler_flag__mssse3
-- Performing Test check_c_compiler_flag__mssse3 - Success
-- Performing Test check_cxx_compiler_flag__mssse3
-- Performing Test check_cxx_compiler_flag__mssse3 - Success
-- Looking for tmmintrin.h
-- Looking for tmmintrin.h - found
-- Performing Test check_c_compiler_flag__msse4_1
-- Performing Test check_c_compiler_flag__msse4_1 - Success
-- Performing Test check_cxx_compiler_flag__msse4_1
-- Performing Test check_cxx_compiler_flag__msse4_1 - Success
-- Looking for smmintrin.h
-- Looking for smmintrin.h - found
-- Performing Test check_c_compiler_flag__msse4_2
-- Performing Test check_c_compiler_flag__msse4_2 - Success
-- Performing Test check_cxx_compiler_flag__msse4_2
-- Performing Test check_cxx_compiler_flag__msse4_2 - Success
-- Performing Test check_c_compiler_flag__mno_sse4a
-- Performing Test check_c_compiler_flag__mno_sse4a - Success
-- Performing Test check_cxx_compiler_flag__mno_sse4a
-- Performing Test check_cxx_compiler_flag__mno_sse4a - Success
-- Performing Test check_c_compiler_flag__mno_avx
-- Performing Test check_c_compiler_flag__mno_avx - Success
-- Performing Test check_cxx_compiler_flag__mno_avx
-- Performing Test check_cxx_compiler_flag__mno_avx - Success
-- Performing Test check_c_compiler_flag__mno_xop
-- Performing Test check_c_compiler_flag__mno_xop - Success
-- Performing Test check_cxx_compiler_flag__mno_xop
-- Performing Test check_cxx_compiler_flag__mno_xop - Success
-- Performing Test check_c_compiler_flag__mno_fma4
-- Performing Test check_c_compiler_flag__mno_fma4 - Success
-- Performing Test check_cxx_compiler_flag__mno_fma4
-- Performing Test check_cxx_compiler_flag__mno_fma4 - Success
-- Performing Test check_c_compiler_flag__mno_avx2
-- Performing Test check_c_compiler_flag__mno_avx2 - Success
-- Performing Test check_cxx_compiler_flag__mno_avx2
-- Performing Test check_cxx_compiler_flag__mno_avx2 - Success
-- Performing Test check_c_compiler_flag__fPIC
-- Performing Test check_c_compiler_flag__fPIC - Success
-- Performing Test check_cxx_compiler_flag__fPIC
-- Performing Test check_cxx_compiler_flag__fPIC - Success
-- Performing Test check_c_compiler_flag__xSSE2
-- Performing Test check_c_compiler_flag__xSSE2 - Failed
-- Performing Test check_cxx_compiler_flag__xSSE2
-- Performing Test check_cxx_compiler_flag__xSSE2 - Failed
-- Performing Test check_c_compiler_flag__xSSE3
-- Performing Test check_c_compiler_flag__xSSE3 - Failed
-- Performing Test check_cxx_compiler_flag__xSSE3
-- Performing Test check_cxx_compiler_flag__xSSE3 - Failed
-- Performing Test check_c_compiler_flag__xSSSE3
-- Performing Test check_c_compiler_flag__xSSSE3 - Failed
-- Performing Test check_cxx_compiler_flag__xSSSE3
-- Performing Test check_cxx_compiler_flag__xSSSE3 - Failed
-- Performing Test check_c_compiler_flag__xSSE4_1
-- Performing Test check_c_compiler_flag__xSSE4_1 - Failed
-- Performing Test check_cxx_compiler_flag__xSSE4_1
-- Performing Test check_cxx_compiler_flag__xSSE4_1 - Failed
-- Performing Test check_c_compiler_flag__xAVX
-- Performing Test check_c_compiler_flag__xAVX - Failed
-- Performing Test check_cxx_compiler_flag__xAVX
-- Performing Test check_cxx_compiler_flag__xAVX - Failed
-- Performing Test check_c_compiler_flag__mavx
-- Performing Test check_c_compiler_flag__mavx - Success
-- Performing Test check_cxx_compiler_flag__mavx
-- Performing Test check_cxx_compiler_flag__mavx - Success
-- Performing Test check_c_compiler_flag__mxop
-- Performing Test check_c_compiler_flag__mxop - Success
-- Performing Test check_cxx_compiler_flag__mxop
-- Performing Test check_cxx_compiler_flag__mxop - Success
-- Performing Test check_c_compiler_flag__mfma4
-- Performing Test check_c_compiler_flag__mfma4 - Success
-- Performing Test check_cxx_compiler_flag__mfma4
-- Performing Test check_cxx_compiler_flag__mfma4 - Success
-- Performing Test check_c_compiler_flag__mfma
-- Performing Test check_c_compiler_flag__mfma - Success
-- Performing Test check_cxx_compiler_flag__mfma
-- Performing Test check_cxx_compiler_flag__mfma - Success
-- Performing Test check_c_compiler_flag__xCORE_AVX2
-- Performing Test check_c_compiler_flag__xCORE_AVX2 - Failed
-- Performing Test check_cxx_compiler_flag__xCORE_AVX2
-- Performing Test check_cxx_compiler_flag__xCORE_AVX2 - Failed
-- Performing Test check_c_compiler_flag__mavx2
-- Performing Test check_c_compiler_flag__mavx2 - Success
-- Performing Test check_cxx_compiler_flag__mavx2
-- Performing Test check_cxx_compiler_flag__mavx2 - Success
-- Performing Test check_cxx_compiler_flag_-xAVX
-- Performing Test check_cxx_compiler_flag_-xAVX - Failed
-- Performing Test check_cxx_compiler_flag_-mavx
-- Performing Test check_cxx_compiler_flag_-mavx - Success
-- Performing Test check_cxx_compiler_flag_-xCORE-AVX2
-- Performing Test check_cxx_compiler_flag_-xCORE-AVX2 - Failed
-- Performing Test check_cxx_compiler_flag_-mavx2
-- Performing Test check_cxx_compiler_flag_-mavx2 - Success
-- Configuring done
-- Generating done
-- Build files have been written to: /u/ikulakov/Vc/Vc-Phi/build
________________________________
[please enable javascript to see the address][please enable javascript to see the address][please enable javascript to see the address]]
Sent: Monday, August 26, 2013 5:30 PM
[please enable javascript to see the address]
Cc: Ivan Kisel
Subject: RE: Vc-XeonPhi
> Oh, you're saying Vc with ICC defaults to SSE even if AVX is supported. I'll
have to make a test for this.
It looks like this..
> You can take any other node as well to test Vc-0.99 with GCC. But the GCC
results are really important. If GCC and ICC agree then there's a high chance
for a bug in Vc.
I can't compile Vc with gcc.4.7.3:
/u/ikulakov/Vc/Vc-Phi/tests/mask.cpp: In function 'void testBinaryOperators()':
/u/ikulakov/Vc/Vc-Phi/tests/mask.cpp:305:31: error: 'short_m' was not declared in this scope
/u/ikulakov/Vc/Vc-Phi/tests/mask.cpp:305:31: note: suggested alternatives:
In file included from /u/ikulakov/Vc/Vc-Phi/include/Vc/Vc:22:0,
from /u/ikulakov/Vc/Vc-Phi/tests/unittest.h:29,
from /u/ikulakov/Vc/Vc-Phi/tests/mask.cpp:20:
/u/ikulakov/Vc/Vc-Phi/include/Vc/vector.h:91:25: note: 'Vc::short_m'
Here is the cmake log:
________________________________________
[please enable javascript to see the address][please enable javascript to see the address][please enable javascript to see the address]]
Sent: Monday, August 26, 2013 4:34 PM
[please enable javascript to see the address]
Cc: Ivan Kisel
Subject: Re: Vc-XeonPhi
On Monday 26 August 2013 13:59:59 Kulakov, Igor wrote:
> 1. I get 13.6% without VC_IMLP definition at all. But in this case
> float_v::Size == 4.
Oh, you're saying Vc with ICC defaults to SSE even if AVX is supported. I'll
have to make a test for this.
> 2. Same with VC_IMPL=SSE.
> 3. VC_IMPL=AVX gives same result. I check - float_v::Size == 8.
OK, at least Vc with ICC is consistent there.
> 4. on MIC I have seg fault with Release. and Assertion `hitIndex < NHits'
> in Debug.
That assertion is a good hint why it segfaults in Release mode. You'd need to
find out whether the assertion is hit because of an incorrect assumption about
the vector size or because of a bug in Vc.
> 5. on MIC with VC_IMPL=Scalar it works nice.
:)
> 6. We have only gcc 4.4.7 on the node. Vc-0.99 requires at least GCC 4.6.
You can take any other node as well to test Vc-0.99 with GCC. But the GCC
results are really important. If GCC and ICC agree then there's a high chance
for a bug in Vc.
>
> > Maybe I can see a pattern if you give me more results. Also, if you can
> > identify small sections of code where it goes wrong we could try to
> > enhance
> > the Vc unit tests.
>
> I will look into this later.
>
> Regards,
> Igor
>
> On Aug 26, 2013, at 9:28 AM, Matthias Kretz wrote:
> > I'm currently looking into the MIC failures. The tests actually pass, but
> > libstdc++ segfaults after main returned...
> >
> > Let me make sure I understand your remaining issue:
> > You get 13.6% clones with Vc-XeonPhi using ICC and VC_IMPL=SSE, right?
> > What you you get if you use GCC 4.7/4.8 instead?
> > Any difference for AVX?
> > And how does it look on MIC?
> >
> > Maybe I can see a pattern if you give me more results. Also, if you can
> > identify small sections of code where it goes wrong we could try to
> > enhance
> > the Vc unit tests.
> >
> > -Matthias
> >
> > On Monday 26 August 2013 13:20:45 Kulakov, Igor wrote:
> >> Matthias, thank you.
> >>
> >> It has improved the situation.
> >>
> >> 1. I have only 4 test fails with Vc (not 18 as before), all of them are
> >> mic
> >> tests, none are sse. 2. The tracker runs now in Release (do not crashes)
> >> with sse. But with same 13.6% clones.
--
Dipl.-Phys. Matthias Kretz
Web: http://compeng.uni-frankfurt.de/?mkretz
SIMD easy and portable: http://compeng.uni-frankfurt.de/?vc
_______________________________________________
Vc mailing list
[please enable javascript to see the address]
https://compeng.uni-frankfurt.de/mailman/listinfo/vc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://compeng.uni-frankfurt.de/pipermail/vc/attachments/20130826/a0c7a897/attachment-0001.html>
More information about the Vc
mailing list