1. Gilles Civario
  2. Questions
  3. Tuesday, 11 April 2017
  4.  Subscribe via email
Dear XIPUG community and Intel staff,
I just wanted to raise an issue that I see in most training material and documentation that is published by Intel and its partners when it comes to programming for KNL. And this issue is about Intel-specific extensions that are included into these material, in places where standardized and portable equivalent exist. For example, when it comes to vectorization, most if not all examples will use the #pragma simd compiler extensions that are specific to the Intel compiler while the OpenMP SIMD directives are a perfect alternative for that, and often offer way more options to fine tune the codes. Likewise, when dealing with memory alignment, the samples will almost always propose _mm_malloc() while something like posix_memalign() would just offer the same service in a portable way.
The whole point of my complaining / raising of awareness here is that the inclusion of vendor-specific extension within codes might be a NO-NO for some developers, and not adverting for the portable / standard counterpart is damaging the community.
I would even push this a step further: if for some reason, there is a performance advantage in using the non-standard extension versus using the portable one, then this should be seen as a defect in the compiler / run-time library and should be fixed.
Am I the only one who sees this as a (major) issue?
Could this be addressed by Intel and other content publishers to make sure that non-portable extensions are only used where no other sensible alternative exist?
There are no comments made yet.

There are no replies made for this post yet.
Be one of the first to reply to this post!
Submit Your Response
Upload files or images for this discussion by clicking on the upload button below. Supports gif,jpg,png,zip,rar
• Remove Upload Files (Maximum File Size: 2 MB)
You may insert polls into your post. The poll would then appear in the post.
Vote Options