FIAS . Impressum . Privacy

Vc-XeonPhi

Matthias Kretz [please enable javascript to see the address]
Mon Aug 26 18:49:15 CEST 2013


On Monday 26 August 2013 15:39:19 Kulakov, Igor wrote:
> > I can't compile Vc with gcc.4.7.3
> 
> /u/ikulakov/Vc/Vc-Phi/avx/vector.tcc:1341:46: error: 'template' (as a
> disambiguator) is only allowed within templates In file included from

Hmm, I only tested with GCC 4.8.1. It didn't report this issue.
Should be fixed now.

> USE_AVX is set to false.

Because the CPU is identified as Nehalem. But you're saying this CPU can do 
AVX?

> 
> 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]] on behalf of Kulakov, Igor
>[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]] on behalf of Matthias Kretz
>[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
-- 
Dipl.-Phys. Matthias Kretz

Web:   http://compeng.uni-frankfurt.de/?mkretz

SIMD easy and portable: http://compeng.uni-frankfurt.de/?vc



More information about the Vc mailing list
FIAS . Impressum . Privacy