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