Intel® C++ Compiler for Linux* Release Notes for Intel® oneAPI Beta

Published: 07/15/2019  

Last Updated: 07/15/2019

By Varsha Madananth

Overview

This document provides a summary of new and changed product features and includes notes about features and problems not described in the product documentation. 

Please see the licenses included in the distribution as well as the Disclaimer and Legal Information section of these release notes for details. Please see the following links for information on this release of the Intel® C++ Compiler 19.1 .

Change History

New in Intel® C++ Compiler 19.1 Technology Preview

Back to top

System Requirements


For classic compiler

  • 4GB RAM
  • 14GB free disk space for all features
  • One of the following Linux distributions (this is the list of distributions tested by Intel; other distributions may or may not work and are not recommended -
    • Debian* 9.0
    • Fedora* 29
    • Red Hat Enterprise Linux* 7.x
    • SUSE LINUX Enterprise Server* 12, 15
    • Ubuntu* 18.04 LTS, 16.04
    • CentOS 7.x
  • Linux Developer tools component installed, including gcc, g++ and related tools
    • gcc versions 4.8 - 8.x supported for ICC
    • gcc versions > 5.5 for ICC -nextgen
    • binutils versions 2.20-2.29 supported
  • Library libunwind.so is required in order to use the -traceback option.  Some Linux distributions may require that it be obtained and installed separately.

ForOpenMP offload

  • Ubuntu 18.04 x64, RHEL 8.0
  • gcc 4.8.5 or above
  • OpenCL drivers required: (this step is not needed if SYCL compiler & its dependency are installed already)
    • For CPU offload: Install the package and add the following to LD_LIBRARY_PATH:
      export LD_LIBRARY_PATH=[untar-folder]/sycl-bundle/lib/oclcpu:$LD_LIBRARY_PATH
    • For GPU offload: Install the package and add the following to LD_LIBRARY_PATH:
      export LD_LIBRARY_PATH=[untar-folder]/sycl-bundle/lib/oclgpu:$LD_LIBRARY_PATH
    • Or download & install the driver from github
      Follow the installation instructions on section "Installation procedure on Ubuntu" on the page
    • Create the two files with root permission under folder "/etc/OpenCL/vendors":
      $ cd /etc/OpenCL/vendors
      $ echo 'libigdrcl.so' > intel-neo.icd
      $ echo 'libigdrcl.so' > intel-neo.icd

Notes

  • The Intel compilers are tested with a number of different Linux distributions, with different versions of gcc. Some Linux distributions may contain header files different from those we have tested, which may cause problems. The version of glibc you use must be consistent with the version of gcc in use. For best results, use only the gcc versions as supplied with distributions listed above. 
  • Compiling very large source files (several thousands of lines) using advanced optimizations such as -O3, -ipo and -openmp, may require substantially larger amounts of RAM.
  • Some optimization options have restrictions regarding the processor type on which the application is run. Please see the documentation of these options for more information.

Back to top

How to use

How to use the Intel® C++ Compiler

Refer to Get started with Intel® oneAPI High Performance Computing Toolkit

The Intel® C++ Compiler for Linux* does not provide "modulefiles" for usage with the Environmental Modules software utility, but is well suited for such usage.  See Using Environment Modules with Intel Development Tools for further information.

Please see Getting Started Guide for Intel C/C++ Compiler with OpenMP offload.

Back to top

Documentation

 Full documentation for all tool components is available at the oneAPI page.

Back to top

Back to top

Samples

Product samples are now available online at Intel® Software Product Samples and Tutorials

Back to top

Technical Support

Any issues found should be reported to the oneAPI tools for internal Jira project

For details on issue submission including requesting access to the Jira project, please see Guidelines on Reporting Issues

For general discussions on oneAPI usage, please submit questions to the discussion forum on Inside Blue.

 

Back to top

New and Changed Features

The following features are new or significantly enhanced in this version.  For more information on these features, please refer to the documentation.

Early Access Intel® C++ Compiler Based on the Modern LLVM* Framework, aka ICC NextGen

-qnextgen compiler option invokes the Early Access ICC NextGen compiler. These options are only available for Windows* or Linux* ICC/ICL/ICPC drivers. This option and functionality is not available for ICC on macOS* X. 

The Intel® C++ Compiler 19.1 supports the following features under the /Qstd=c++20 (Windows*) or -std=c++20 (Linux*/OS X*) options:

C++20 features supported

The Intel® C++ Compiler 19.1 supports the following features under the /Qstd=c++20 (Windows*) or -std=c++20 (Linux*/OS X*) options:

  • std::is_constant_evaluated and __builtin_is_constant_evaluated

Features from OpenMP 5.0*

  • if clause on SIMD directive
  • NONTEMPORAL clause on SIMD directive

New features for OpenMP offload with ICC NextGen

  • Offload code to run on a target device
  • Map variables to a target device
  • Worksharing for acceleration
  • Composite and combined constructs for ATS/PVC
  • Atomic Synchronization
  • A set of runtime rountines and Environment variables
  • support for reductions (reduction updates of 8,16,32-bit types using atomic operations)
  • Load/store motion improvement for target region boundary safety check
  • Support offloading in OpenMP parallel regions and tasks
  • Intel extension of target variant dispatch

Back to top

Parallel STL for parallel and vector execution of the C++ STL

Intel(R) C++ Compiler is installed with Parallel STL, an implementation of the C++ standard library algorithms with support for execution policies.

Features/APi changes

  • More algorithms support parallel and vector execution policies: find_first_of, is_heap, is_heap_until, replace, replace_if.
  • More algorithms support vector execution policies: remove, remove_if.
  • More algorithms support parallel execution policies: partial_sort.

To learn more, please refer to article https://software.intel.com/en-us/get-started-with-pstl

Support Deprecated

Support Deprecated

Support Removed

The Loop Profiler feature will be removed in future compilers.

The following compiler options related to Loop Profiler are deprecated and will be removed in future compilers

  • profile-loops=keyword
  • profile-loops-report=value
  • profile-functions
  • guide-profile

 

Intel® Cilk™ Plus support is removed in 19.1

Back to top

Known Limitations

i915 GPU Driver Hanging Issue

The i915 GPU driver is configured to hang (by default) after a certain amount of time is spent on GPU. To make the GPU run longer than the time limit, we must disable hangcheck of the driver:
sudo echo –n 0 > /sys/module/i915/parameters/enable_hangcheck This link provides more detailed information regarding the i915 GPU driver configuration hanging issue: https://software.intel.com/en-us/forums/opencl/topic/676013

libtinfo.so.5 missing:icc -qnextgen may report missing dependency on the latest versions of Fedora (29+), Ubuntu (18.10+) and SLES15

clang: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory

Installing the library will resolve the issue. If the library installed into non-standard location, the location should be added to LD_LIBRARY_PATH.
To install this library, you can add the following packages:Fedora 29+, CentOS, RHEL variants fix:
sudo yum install ncurses-compat-libs-6.1 Ubuntu 18.10+, Debian variants:sudo apt-get install libtinfo5

 

Parallel STL

unseq and par_unseq policies only have effect with compilers that support '#pragma omp simd' or '#pragma simd. Parallel and vector execution is only supported for a subset of algorithms if random access iterators are provided, while for the rest execution will remain serial. Depending on a compiler, zip_iterator may not work with unseq and par_unseq policies.

>Pointer Checker requires a dynamic runtime library

When using the -check-pointers option, the runtime library libchkp.so must be linked in. When using options like -static or -static-intel with -check-pointers, be aware that this dynamic library will be linked in regardless of your settings. See the article at Pointer Checker in ICC for more information.

Back to top

 

Disclaimer and Legal Information

Optimization Notice

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804

INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL(R) PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. UNLESS OTHERWISE AGREED IN WRITING BY INTEL, THE INTEL PRODUCTS ARE NOT DESIGNED NOR INTENDED FOR ANY APPLICATION IN WHICH THE FAILURE OF THE INTEL PRODUCT COULD CREATE A SITUATION WHERE PERSONAL INJURY OR DEATH MAY OCCUR.

Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information.

The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request.

Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order.

Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1-800-548-4725, or go to:  http://www.intel.com/design/literature.htm 

Intel processor numbers are not a measure of performance. Processor numbers differentiate features within each processor family, not across different processor families. Go to: 

http://www.intel.com/products/processor%5Fnumber/

The Intel® C++ Compiler is provided under Intel’s End User License Agreement (EULA). 

Please consult the licenses included in the distribution for details.

Intel, Intel logo, Pentium, Core, Atom, Iris, Intel® Xeon®, Intel® Xeon Phi are trademarks of Intel Corporation in the U.S. and other countries.

* Other names and brands may be claimed as the property of others.

Copyright © 2018 Intel Corporation. All Rights Reserved.

Back to top

 

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.