Quantcast
Channel: Intel® Cilk™ Plus
Viewing all articles
Browse latest Browse all 77

changes in CEAN implications re vectorization in next release?

$
0
0

I note that premier.intel.com is open for submissions for the first time in months, so I submitted a ticket.  It still looks like setting up premier for beta 16 has not been completed, as the form requires choosing compiler version 15.0 or earlier from the pull-down.

I'm curious whether Cilk(tm) Plus is under deprecation, in view of the comments at IDF last year that Intel would not sponsor publications on it, and the lack of follow-through to make gcc -fcilkplus viable.

As to changes in behavior in the beta test:

CEAN seems to require vectorization now even when the compiler recognizes that its vector code is not competitive with scalar (opt-report shows a speedup factor of 0.68 in the case I submitted).

CEAN no longer vectorizes a case where the compiler diagnoses a possible (but non-existent) "output dependence."  It used to be that CEAN was equivalent to aggressive pragmas like ivdep or simd.  In spite of the announcement that OpenMP 4 pragmas will now be allowed for cilk_for, none of the pragmas are accepted, or, if accepted, have any effect, when applied to a CEAN assignment.

CEAN code with ? operator equivalent to C++ std::max is now considered vectorizable in some cases.  This is a good step, as the max and min functions are an important locus of performance incompatibility between C and C++ and between Intel and gnu.  In fact, I got a reply recently from a gnu expert agreeing that the gcc options needed for vectorization can't be recommended.

The new cilk_for _Simd keyword is advertised as an important feature, but I would think it would do something useful in my cases if Cilk(tm) Plus were to be considered important for the future.  In my cases, it is either ignored (with a diagnostic the vectorization is not attempted), or it acts differently from #pragma omp simd in C or C++ and produces either slow vgather code or strange comments about invoking lambda processing, which also is slow.


Viewing all articles
Browse latest Browse all 77

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>