Intel C++ Compiler

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Intel C++ Compiler
Entwickler Intel
Aktuelle Version 14.0
(4. September 2013)
Betriebssystem Linux, Windows und Mac OS X
Kategorie Compiler
Lizenz proprietäre Software
http://software.intel.com/en-us/intel-compilers/

Der Intel C/C++ Compiler oder kurz ICC ist ein Compiler mit Frontends für C und C++, den der Prozessorhersteller Intel zur Verfügung stellt. Erhältlich ist die aktuelle Version 14 des Compilers für die Betriebssysteme Linux, Windows und Mac OS X und die Prozessorarchitekturen IA-32, x86-64 (Intel 64, AMD64). IA-64 (Itanium2) wird mit den Versionen 11.x des Compilers unterstützt. Die Produktpakete Composer sind sowohl sprachspezifisch als auch gemeinsam für C/C++ und Fortran erhältlich und umfassen jeweils alle Intel-Performanzbibliotheken (IPP, MKL usw.). Alle genannten Compiler unterstützen OpenMP.

Die Compiler sind kompatibel zu sowohl der GCC als auch dem Microsoft Compiler unter Windows. Sie haben zusätzliche Fähigkeiten wie automatische Vektorisierung und unterstützen die SIMD-Befehlssatzerweiterungen MMX, SSE, SSE2, SSE3, SSE4 und AVX.

Für nichtkommerzielle Projekte ist die Linux-Lizenz für die Architekturen x86, x64 und IA64 kostenfrei.

Kritik[Bearbeiten]

Eine optimale Performance wird nur für Intel-CPUs erzielt. Eine CPU-Dispatch Funktion liest beim Kompilieren den CPU-Vendor-String aus, und erstellt optimierten Code nur für GenuineIntel-Prozessoren, unabhängig vom tatsächlich vorhandenen Befehlssatz.

„If the vendor string says "GenuineIntel" then it uses the optimal code path. If the CPU is not from Intel then, in most cases, it will run the slowest possible version of the code, even if the CPU is fully compatible with a better version.“[1]

Nachdem Intel 2009 einen Rechtstreit gegen AMD verlor, wird auf dieses Verhalten hingewiesen:

„Intel® compilers, associated libraries and associated development tools 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 Intel® Streaming SIMD Extensions 2 (Intel® SSE2), Intel® Streaming SIMD Extensions 3 (Intel® SSE3), and Supplemental Streaming SIMD Extensions 3 (Intel® SSSE3) instruction sets and other optimizations.“

Intel[2]

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]

Quellenangaben[Bearbeiten]

  1. Agner's CPU Blog [1]
  2. Artikel zur Verwendung von IPP auf AMD-Systemen [2]