FIAS . Impressum . Privacy

Vc at MIC

Matthias Kretz [please enable javascript to see the address]
Thu Aug 22 18:38:07 CEST 2013


Hi,

I don't see a failure in mask_sse. I see it with ICC 13.0.0.

Note that the values it prints are equal, but since it failed it must have 
compared something different than what it prints. This is a typical result 
from a miscompilation. You really should update to ICC 13.1.2 20130514! Like I 
said, I debugged several miscompilations in previous ICC versions...

-Matthias

On Thursday 22 August 2013 16:21:43 Kulakov, Igor wrote:
> > You should look through the unit tests in detail whether any of the
> > failures
> happen in functions that you use. If this is the case, let me know and I'll
> give priority to those.
> 
> So I see 3 tests fail for sse:
> 
> scatter_sse
> scatter_VC_USE_BSF_SCATTERS_sse
> mask_sse
> 
> first two fail in scatterStruct, which we don't use.
> 
> mask fails in:
> 
>  FAIL: ┍ at /home/ikulakov/Vc-0.99.71/tests/mask.cpp:353 (0x40c0c2):
>  FAIL: │ mask (m[0111]) == maskInv (m[0111]) -> true
>  FAIL: ┕ maskScalarAccess<float_v>
>  FAIL: ┍ at /home/ikulakov/Vc-0.99.71/tests/mask.cpp:353 (0x40d4bb):
>  FAIL: │ mask (m[0111 1111]) == maskInv (m[0111 1111]) -> true
>  FAIL: ┕ maskScalarAccess<short_v>
>  FAIL: ┍ at /home/ikulakov/Vc-0.99.71/tests/mask.cpp:353 (0x40ea1a):
>  FAIL: │ mask (m[0111 1111]) == maskInv (m[0111 1111]) -> true
>  FAIL: ┕ maskScalarAccess<sfloat_v>
>  FAIL: ┍ at /home/ikulakov/Vc-0.99.71/tests/mask.cpp:353 (0x40fcab):
>  FAIL: │ mask (m[0111 1111]) == maskInv (m[0111 1111]) -> true
>  FAIL: ┕ maskScalarAccess<ushort_v>
>  FAIL: ┍ at /home/ikulakov/Vc-0.99.71/tests/mask.cpp:353 (0x411152):
>  FAIL: │ mask (m[0111]) == maskInv (m[0111]) -> true
>  FAIL: ┕ maskScalarAccess<int_v>
>  FAIL: ┍ at /home/ikulakov/Vc-0.99.71/tests/mask.cpp:353 (0x4124b8):
>  FAIL: │ mask (m[01]) == maskInv (m[01]) -> true
>  FAIL: ┕ maskScalarAccess<double_v>
>  FAIL: ┍ at /home/ikulakov/Vc-0.99.71/tests/mask.cpp:353 (0x413852):
>  FAIL: │ mask (m[0111]) == maskInv (m[0111]) -> true
>  FAIL: ┕ maskScalarAccess<uint_v>
> 
> which hard to understand for me what it is and whether we use it:
> 
> template<typename V> void maskScalarAccess()/*{{{*/
> {
>     typedef typename V::Mask M;
>     for_all_masks(V, mask) {
>         const auto &mask2 = mask;
>         for (int i = 0; i < V::Size; ++i) {
>             COMPARE(bool(mask[i]), mask2[i]);
>         }
> 
>         const auto maskInv = !mask;
>         for (int i = 0; i < V::Size; ++i) {
>             mask[i] = !mask[i];
>         }
> line 353:        COMPARE(mask, maskInv);
> 
>         for (int i = 0; i < V::Size; ++i) {
>             mask[i] = true;
>         }
>         COMPARE(mask, M(true));
>     }
> }/*}}}*/
> 
> I guess we do, since other tests are ok.
> 
> Regards,
> Igor
> ________________________________________
>[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: Thursday, August 22, 2013 8:49 AM
>[please enable javascript to see the address]; Kisel, Ivan Prof. Dr.
> Subject: Re: Vc at MIC
> 
> On Wednesday 21 August 2013 21:48:19 Kulakov, Igor wrote:
> > We see significant differences in tracking results with Vc-0.99 and
> > Vc-0.7.2 using ICC-13.1.0. For example number of broken fast tracks
> > (clones for ref set) is factor of 7(!) different. (see numbers below)
> > Meanwhile with VC_IMPL=Scalar both Vc-0.99 and Vc-0.7.2 give same result.
> > 
> > Do you have any suggestions how to proceed?
> 
> Wow, that's bad.
> It's hard to guess where this is coming from so I need you to find the
> guilty function(s) in Vc.
> 
> You should look through the unit tests in detail whether any of the failures
> happen in functions that you use. If this is the case, let me know and I'll
> give priority to those.
> 
> If not, then something breaks that doesn't have a test or where the test
> isn't thorough enough. You'd have to find the place where it breaks and
> deduce the function in Vc that is broken. It might be a miscompilation in
> which case this may turn into a Heisenbug...
> 
> Q: The results below are for AVX?
> 
> Cheers,
>         Matthias
> 
> > Vc-0.99:
> >  ---- Global Performance 10 events Statistic ----
> > 
> > Track category         :  Eff   / Clones | All Reco | All MC
> > Allset    efficiency   : 0.920  / 0.290  | 7119  | 7740
> > Refset    efficiency   : 0.982  / 0.136  | 910  | 927
> > Extra     efficiency   : 0.911  / 0.310  | 6209  | 6813
> > Rest      efficiency   : 0.898  / 0.727  | 79  | 88
> > Ghost     probability  : 0.129 | 917
> > All reco tracks/ev : 711.900
> > Reconstruction Time Real =    767.606 ms, CPU =    767.000 ms,
> > parallelization speedup: 0.998
> > 
> > Vc-0.7.2:
> >  ---- Global Performance 10 events Statistic ----
> > 
> > Track category         :  Eff   / Clones | All Reco | All MC
> > Allset    efficiency   : 0.944  / 0.113  | 7304  | 7740
> > Refset    efficiency   : 0.980  / 0.020  | 908  | 927
> > Extra     efficiency   : 0.939  / 0.126  | 6396  | 6813
> > Rest      efficiency   : 0.909  / 0.773  | 80  | 88
> > Ghost     probability  : 0.127 | 929
> > All reco tracks/ev : 730.400
> > Reconstruction Time Real =    146.283 ms, CPU =    145.000 ms,
> > parallelization speedup: 0.981
> > 
> > ________________________________________
>[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: Friday, August 16, 2013 10:33 AM
>[please enable javascript to see the address]
> > Subject: Re: Vc at MIC
> > 
> > On Tuesday 13 August 2013 20:19:52 Zyzak, Maksym wrote:
> > > I have compiled Vc-0.99.71 on the computer with MIC cards. And the test
> > > are
> > > failed. For the compilation I used icc 13.1.0.
> > 
> > I recommend to always update ICC to the latest version. I use ICC 13.1.2
> > 20130514. There were some really strange miscompiles with the older
> > compilers.
> > 
> > > The CPU is Intel(R) Xeon(R)
> > > CPU E5-2680. The log of test is given below. Can you please suggest what
> > > can be the problem? Should I use another version of Vc?
> > 
> > There are failing tests for me as well, but the failures are in very
> > special features. Fixing those requires a lot of work. Most of the recent
> > failures I fixed were ICC bugs.
> > 
> > --
> > 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
> 
> _______________________________________________
> Vc mailing list
>[please enable javascript to see the address]
> https://compeng.uni-frankfurt.de/mailman/listinfo/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