Intel® Developer Zone:
Erweiterungen für die Intel Befehlssatzarchitektur

Die Intel Befehlssatzarchitektur wird stetig weiterentwickelt für mehr Funktionalität, Leistung und ein besseres Benutzererlebnis. Unten finden Sie Informationen zu geplanten Befehlssatzarchitektur-Erweiterungen, sowohl neuen als auch solchen, die zur Aufwertung zukünftiger Prozessorgenerationen geplant sind. Durch die frühzeitige Bekanntmachung dieser Erweiterungen will Intel sicherstellen, dass das Software-Ökosystem genug Zeit hat, um optimierte und neue Produkte zu entwickeln und einzuführen, wenn die Prozessoren vorgestellt werden.

Übersicht

Tools und Downloads

  • Intel® C++ Compiler

    Der Intel® C++ Compiler kann von lizenzierten Kunden über das Intel® Registration Center heruntergeladen werden. Testversionen der Intel® Produkte für die Software-Entwicklung stehen zudem als kostenlose Downloads zur Verfügung.

  • Intel Intrinsics Guide

    Der Intel Intrinsics Guide ist ein interaktives Referenztool für Intel Intrinsic-Befehle, d.h. C-artige Funktionen, die Zugriff auf zahlreiche Intel Befehle erlauben – darunter Intel® Streaming SIMD Extensions (Intel® SSE), Intel® Advanced Vector Extensions (Intel® AVX) und mehr – ohne dass Sie Assembly-Code schreiben müssen.

  • Gcc Compiler
    Der Gcc Compiler und die Glibc Bibliothek mit Unterstützung für Intel® AVX, Intel® AVX2, Intel® AVX-512 und Intel® MPX Befehle können unter GPL über die Seite Intel Software Development Emulator heruntergeladen werden.

Intel® Advanced Vector Extensions (Intel® AVX)

Der Bedarf an höherer Rechenleistung wächst in den verschiedensten Industriesegmenten stetig. Um dem steigenden Bedarf und den neuen Nutzungsmodellen Rechnung zu tragen, setzen wir mit den Intel® Advanced Vector Extensions (Intel® AVX) unsere Geschichte der Innovation in Produkten von heute fort.

Intel® AVX ist eine 256-Bit-Befehlssatzerweiterung Intel® SSE, speziell für fließkommaintensive Anwendungen. Sie wurde Anfang 2011 im Rahmen der Intel® Prozessor-Mikroarchitektur mit Codename Sandy Bridge vorgestellt und findet sich in allen möglichen Plattformen von Notebooks bis hin zu Servern. Intel AVX bietet Leistungsgewinne durch breitere Vektoren, eine neue erweiterbare Syntax und große Funktionsvielfalt. Dies bedeutet besseres Datenmanagement und Handling von Allzweckanwendungen wie Bild- und Audio-/Videoverarbeitung, wissenschaftliche Simulation, Finanzanalyse und 3D-Modellierung und -Analyse.

Intel® Advanced Vector Extensions 512 (Intel® AVX-512)

Einige zukünftige Neuprodukte bieten revolutionäre Unterstützung für 512-Bit SIMD. Programme sind in der Lage acht doppelt genaue Gleitkommazahlen und sechszehn einfach genaue Gleitkommazahlen in die 512-Bit-Vektoren zu packen sowie acht 64-Bit- und sechszehn 32-Bit-Ganzzahlen. Dies ermöglicht die Verarbeitung von doppelt so vielen Datenelementen wie Intel AVX/AVX2 mit einem eigenen Befehl verarbeiten kann und vier Mal die Kapazität von Intel SSE.

Intel AVX-512 Befehle sind von Bedeutung, da sie bei den anspruchsvollsten Rechenaufgaben die Leistungsgrenzen nach oben öffnen. Intel AVX-512 Befehle bieten den höchsten Grad an Compiler-Unterstützung durch eine nie dagewesene Vielfalt beim Design der Befehlsmerkmale.

Intel AVX-512 bietet unter anderem 32 Vektorregister, jedes 512 Bit breit, sowie acht dedizierte Maskenregister. Intel AVX-512 ist ein flexibler Befehlssatz mit Unterstützung für Broadcast, eingebettetes Masking (um Vorhersage zu ermöglichen), eingebettete Fließkomma-Rundungskontrolle, eingebettete Fließkomma-Fehlerunterdrückung, Scatter-Befehle, Hochgeschwindigkeits-Mathematik-Befehle sowie kompakte Darstellung großer Wertverschiebungen.

Intel AVX-512 bietet bessere Kompatibilität mit Intel AVX als ältere Übergänge zu neuen Breiten für SIMD Operationen. Im Gegensatz zu Intel SSE und Intel AVX, die nicht ohne Leistungseinbußen kombiniert werden können, können Intel AVX und Intel AVX-512 Befehle ohne Leistungseinbußen kombiniert werden. Intel AVX Register YMM0–YMM15 bilden auf Intel AVX-512 Register ZMM0–ZMM15 ab (im x86-64 Modus), ähnlich wie Intel SSE Register auf Intel AVX Register abbilden. Daher verwenden bei Prozessoren mit Unterstützung für Intel AVX-512 Intel AVX und Intel AVX2 Befehle die unteren 128 oder 256 Bit der ersten 16 ZMM Register.

Weitere Informationen zu den Intel AVX-512 Befehlen finden Sie im Blog „AVX-512 Instructions“. Diese Befehle können im Dokument „Programmierreferenz für Befehlssatzerweiterungen für die Intel® architecture“ nachgelesen werden (siehe Registerkarte „Übersicht“ auf dieser Seite).

Intel® IPP - Threading / OpenMP* FAQ
Von Naveen GvVeröffentlicht am 04/08/20157
This page contains common questions and answers on multi-threading in the Intel IPP.
Threading Intel® Integrated Performance Primitives Image Resize with Intel® Threading Building Blocks
Von Jeffrey Mcallister (Intel)Veröffentlicht am 04/08/20150
Threading Intel® IPP Image Resize with Intel® TBB.pdf (157.18 KB) :Download Now   Introduction The Intel® Integrated Performance Primitives (Intel® IPP) library provides a wide variety of vectorized signal and image processing functions. Intel® Threading Building Blocks (Intel® TBB) adds simple …
Using Intel® IPP threaded static libraries
Von Naveen GvVeröffentlicht am 04/08/20152
Q: How to get Intel® IPP Static threaded libraries? Answer: while installing Intel Software suite product (Intel® Parallel Studio or Intel® System Studio or Intel® INDE), select custom installation to get option to select threaded libraries. To select right package of threaded libraries, right …
Intel® System Studio - Solutions, Tips and Tricks
Von Noah Clemons (Intel)Veröffentlicht am 04/01/20150
Intel® System Studio 2015 Release Notes Support Matrix Installation Guides Prerequisites Linux* and Android* Target Installation Guide Windows* Target Installation Guide What's New? General Windows* Target Specific IDE Integration Intel System St…
Intel Developer Zone Beiträge abonnieren
Kein Inhalt gefunden
Intel Developer Zone Blogs abonnieren

    Intel® Software Guard Extensions (Intel® SGX)

    Intel Leitbild

    Computer-Workloads werden immer komplexer. Verschiedene auf der ganzen Welt verteilte Teams stellen Hunderte Softwaremodule bereit. Schon seit geraumer Zeit wird an der Isolierung von Workloads auf offenen Plattformen gearbeitet. Den Anfang machte eine Architektur mit geschütztem Modus, um die Berechtigungen zwischen Betriebssystem und Anwendungen streng getrennt zu halten. Malware-Angriffe in jüngster Zeit haben jedoch gezeigt, dass Zugang zu Modi mit hohen Berechtigungen und das Erlangen der Kontrolle über die gesamte Software auf einer Plattform möglich ist.

    Intel® Software Guard Extensions (Intel® SGX) ist die Bezeichnung für Erweiterungen der Intel Architektur, die durch einen „Inverse-Sandbox“-Mechanismus die Softwaresicherheit erhöhen. Bei diesem Ansatz wird nicht wie gewöhnlich all die Malware auf einer Plattform identifiziert und isoliert. Stattdessen kann legitime Software „versiegelt“ und so vor Malware-Angriffen geschützt werden – unabhängig von den erlangten Berechtigungen der Malware. Dies geschieht im Zusammenspiel mit laufenden Bemühungen zum Schutz von Plattformen vor Malware-Angriffen. Denken Sie daran, wie man Wertsachen zu Hause in einem Tresor aufbewahrt und gleichzeitig Eindringlinge durch ausgeklügeltere Schließ- und Alarmsysteme fernhält und fängt.

    Erste Schritte (gleich bei allen ISA)

    Übersicht

    Tools und Downloads

    • Keine Änderungen am bestehenden Inhalt

    Technische Inhalte

    Kein Inhalt gefunden
    Intel Developer Zone Blogs abonnieren
    How to use XDB to do kernel debug on Yocto with Minnowboard MAX
    Von ALICE H. (Intel)Veröffentlicht am 01/12/20151
    Introduction Minnowboard MAX is an open hardware which is utilized Intel Atom processor. This hardware is a small and low cost but offer exceptional performance, flexibility, openness and standards. We can prepare micro sd card or usb flash device to expand the hardware storage and easy exchange d…
    Innovative Technology for CPU Based Attestation and Sealing
    Von adminVeröffentlicht am 08/14/20130
    Download white paper as PDF By:Ittai Anati, Shay Gueron, Simon P Johnson, Vincent R Scarlata Intel Corporation Abstract Intel is developing the Intel® Software Guard Extensions (Intel® SGX) technology, an extension to Intel® Architecture for generating protected software containers. The container i…
    Using Innovative Instructions to Create Trustworthy Software Solutions
    Von adminVeröffentlicht am 08/14/20130
    Download white paper as PDF By:Matthew Hoekstra, Reshma Lal, Pradeep Pappachan, Carlos Rozas, Vinay Phegade, Juan del Cuvillo Intel Corporation Abstract Software developers face a number of challenges when creating applications that attempt to keep important data confidential. Even diligent use of …
    Innovative Instructions and Software Model for Isolated Execution
    Von adminVeröffentlicht am 08/14/20130
    Download white paper as PDF By:Frank McKeen, Ilya Alexandrovich, Alex Berenzon, Carlos Rozas, Hisham Shafi, Vedvyas Shanbhogue and Uday SavagaonkarIntel Corporation Abstract For years the PC community has struggled to provide secure solutions on open platforms. Intel has developed innovative new te…
    Intel Developer Zone Beiträge abonnieren

    Intel® Memory Protection Extensions (Intel® MPX)

    Die bösartigen Angriffe auf Computersysteme werden immer ausgeklügelter. Immer häufiger werden dabei die Verursachung oder Ausnutzung von Pufferüberläufen bei Softwareanwendungen beobachtet.

    Intel® Memory Protection Extensions (Intel® MPX) ist die Bezeichnung für Erweiterungen der Intel architecture, mit der Software robuster gemacht werden soll. Intel MPX bietet Hardwaremerkmale, die im Zusammenwirken mit Compiler-Anpassungen prüfen können, ob für den Kompilierzeitpunkt vorgesehene Speicherreferenzen zur Laufzeit nicht unsicher werden. Zwei der wichtigsten Ziele von Intel MPX sind die Bereitstellung dieses Merkmals bei geringem Overhead für neu kompilierten Code und die Bereitstellung von Kompatibilitätsmechanismen mit Altsoftwarekomponenten. Intel MPX ist in einem zukünftigen Intel® Prozessor verfügbar.

    Intel® Memory Protection Extensions Enabling Guide
    Von Sundaram Ramakesavan (Intel)Veröffentlicht am 04/16/20150
    Abstract: This document describes Intel® Memory Protection Extensions (Intel® MPX), its motivation, and programming model. It also describes the enabling requirements and the current status of enabling in the supported OSs: Linux* and Windows* and compilers: Intel® C++ Compiler, GCC, and Visual Stu…
    Pointer Checker in ICC: requires dynamic linking of runtime libraries
    Von Kittur Ganesh (Intel)Veröffentlicht am 07/10/20140
    The -check-pointers switch, which enables the Pointer Checker feature, cannot be used with the -static flag on Linux* (/MT on Windows*) which forces all Intel libraries to be linked statically. The reason is that, by design, the Pointer Checker library “libchkp.so” must be shared by all executables…
    Using Intel® SDE's chip-check feature
    Von Mark Charney (Intel)Veröffentlicht am 10/03/20130
    Intel® SDE includes a software validation mechanism to restrict executed instructions to a particular microprocessor. This is intended to be a helpful diagnostic tool for use when deploying new software. Use chip check when you want to make sure that your program is not using instruction features t…
    Using Intel® MPX with the Intel® Software Development Emulator
    Von Ady Tal (Intel)Veröffentlicht am 07/23/20131
    Intel has announced a new technology called Intel® Memory Protection Extensions (Intel® MPX). To find out more, check out the Instruction Set Extensions web pages.  Once you know about Intel MPX, you may want to experiment with Intel® SDE. This article explains how to run Intel MPX with Intel SDE a…
    Intel Developer Zone Beiträge abonnieren
    Kein Inhalt gefunden
    Intel Developer Zone Blogs abonnieren

      Intel® Secure Hash Algorithm Extensions (Intel® SHA Extensions)

      Der Secure Hash Algorithm (SHA) ist einer der am häufigsten verwendeten Verschlüsselungsalgorithmen.  Hauptanwendungsbereiche von SHA sind beispielsweise Datenintegrität, Nachrichtenauthentifizierung, digitale Signaturen und Daten-Deduplizierung.  Der Einsatz von Sicherheitslösungen wächst weiter schnell, und SHA findet sich in mehr Anwendungen als je zuvor. Die Intel® SHA Extensions sollen die Leistung dieser rechenintensiven Algorithmen auf Prozessoren mit Intel® architecture verbessern.

      Die Intel® SHA Extensions bestehen aus sieben Intel® Streaming SIMD Extensions-(Intel® SSE-)basierten Befehlen, die kombiniert werden und so die Leistung bei der Verarbeitung von SHA-1 und SHA-256 auf Prozessoren mit Intel architecture verbessern sollen.  Angesichts der immer größeren Rolle, die SHA in unseren alltäglichen Computergeräten spielt, sollen diese neuen Befehle einen nötigen Leistungsschub zum Hashing eines einzelnen Datenpuffers bereitstellen. Der Leistungsgewinn wird nicht nur zu einem besseren Ansprechverhalten und niedrigeren Energieverbrauch bei einer gegebenen Anwendung führen – Entwickler können SHA auch in neue Anwendungen einbetten, um bei gleichzeitigem Datenschutz ihren Benutzern das gewünschte Erlebnis zu bieten. Die Befehle sind so definiert, dass sie einfach auf den Algorithmusverarbeitungsfluss der meisten Softwarebibliotheken abgebildet werden können und so die Entwicklungsarbeit erleichtern.

      Innovative Technology for CPU Based Attestation and Sealing
      Von adminVeröffentlicht am 08/14/20130
      Download white paper as PDF By:Ittai Anati, Shay Gueron, Simon P Johnson, Vincent R Scarlata Intel Corporation Abstract Intel is developing the Intel® Software Guard Extensions (Intel® SGX) technology, an extension to Intel® Architecture for generating protected software containers. The container i…
      Using Innovative Instructions to Create Trustworthy Software Solutions
      Von adminVeröffentlicht am 08/14/20130
      Download white paper as PDF By:Matthew Hoekstra, Reshma Lal, Pradeep Pappachan, Carlos Rozas, Vinay Phegade, Juan del Cuvillo Intel Corporation Abstract Software developers face a number of challenges when creating applications that attempt to keep important data confidential. Even diligent use of …
      Innovative Instructions and Software Model for Isolated Execution
      Von adminVeröffentlicht am 08/14/20130
      Download white paper as PDF By:Frank McKeen, Ilya Alexandrovich, Alex Berenzon, Carlos Rozas, Hisham Shafi, Vedvyas Shanbhogue and Uday SavagaonkarIntel Corporation Abstract For years the PC community has struggled to provide secure solutions on open platforms. Intel has developed innovative new te…
      Intel® SHA Extensions Implementations
      Von adminVeröffentlicht am 07/18/20130
      The Intel® Secure Hash Algorithm (SHA) Extensions are designed to improve the performance of SHA-1 and SHA-256 on Intel® Architecture (IA) processors. This code download provides optimized assembly and intrinsic routines using the Intel® SHA Extensions. A sample test application using published kno…
      Intel Developer Zone Beiträge abonnieren
      Kein Inhalt gefunden
      Intel Developer Zone Blogs abonnieren
        Updated Intel® Software Development Emulator
        Von Mark Charney (Intel)7
        Hello, On October 2, 2014, we released version 7.8 of the Intel® Software Development Emulator. It is available here: http://www.intel.com/software/sde   See the release notes for a full list of changes.   This release includes:   Support for AVX512 VBMI and AVX512 IFMA instructions Better support for running on Haswell hosts Updated CPUID information For more information on the new instructions see http://www.intel.com/software/isa  
        Resources about Intel® Transactional Synchronization Extensions (Intel TSX)
        Von Roman Dementiev (Intel)4
        Hi, you might find this collection of technical material about Intel TSX instructions useful: http://www.intel.com/software/tsx By a suggestion from some senior forum contributors I am making this post sticky. Best regards, Roman
        Links to instruction documentation
        Von Thomas Willhalm (Intel)25
        Intel Instruction Set Architecture Extensions  Intel® Architecture Instruction Set Extensions Programming Reference includes: Intel® Advanced Vector Extensions 512 (Intel® AVX-512) instructions (AVX512F, AVX512DQ, AVX512BW, AVX512VL, AVX512CD, AVX512PF, AVX512ER) Intel® Secure Hash Algorithm (Intel® SHA) extensions Intel® Memory Protection Extensions (Intel® MPX) The Intel 64 and IA-32 Architectures Software Developer's Manual Volume 2A and 2B (available here) are the instruction set reference. Haswell (2013) new instructionsare in theprogrammer's reference manual. In appendix C of the Intel 64 and IA-32 Architectures Optimization Reference Manual (available here), the latencies and throughput of instructions are listed. The documentation of the Intel C++ Compiler contains documentation of the intrinsics. The AVX Programming Reference and examples for using AVX are available on the AVX community page. (The interactive Intel Intrinsics Guide is also available there, which is useful…
        Include all intrinsics
        Von Glenn D.1
        I would like to see the Intel Intrinsics Guide include all of the intrinsics, not just the SSE-based intrinsics. It would be helpful if the 'interlocked' and other intrinsics were also included, especially with timing information.
        Q on memory comparison optimization
        Von Ravi K.1
        Hi All, I am using AVX/SSE instructions to replace memcmp and our workload includes comparing 64 bytes and occasionally 64 and 128 bytes. I am using following function cmp32 for 32byte comparisons and extend it 2 times for 64 or 4 times for 128 bytes and I am hardly getting 1% performance improvement. Testing was done on Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz, Ubuntu 14.04 x86_64. I tried replacing following lines vcmp = _mm256_cmpeq_epi64(xmm0, xmm1); vmask = _mm256_movemask_epi8(vcmp); with vcmp = _mm_xor_si128(xmm0, xmm1); result = _mm_testz_si128(vcmp, vcmp); performance numbers are same. Secondly I tried replacing unaligned loads with aligned loads and still no help. Any additional optimization that can be done to improve performance?? static inline int cmp32(const uint8_t *src_1, const uint8_t *src_2) { __m256i xmm0; __m256i xmm1; __m256i vcmp; int64_t vmask; xmm0 = _mm256_loadu_si256((const __m256i *)src_1…
        question about DAA(opcode 0x27) instruction's operation
        Von Gun Woo K.0
        Hi, I'm currently writing a x86 code emulator. So I need to know detailed instruction's operation.   I was writing a DAA instruction, detailed operation is like this,   old_AL ← AL; old_CF ← CF; CF ← 0; IF (((AL AND 0FH) > 9) or AF = 1)     THEN         AL ← AL + 6;         CF ← old_CF or (Carry from AL ← AL + 6);         AF ← 1;     ELSE         AF ← 0; FI; IF ((old_AL > 99H) or (old_CF = 1))     THEN         AL ← AL + 60H;         CF ← 1;     ELSE         CF ← 0; FI;   I'm just wondering about whether constant 0x99 is correct or not. Somebody(from the internet) said  0x9F was right, but the intel manual says 0x99 is right. Which one is correct?   I need exactly answer from Intel hardware engineering contacts. Thank you.  
        A Question about MSR ?
        Von zp s.1
        Hi, I am a grean-hand,I have a question about msr:when i reboot the computer,will The MSR register reset?or not?,if i write some  infomation to the msr register ,when the cpu reboot ,I need rewrite?
        Can AVX instruction be executed in parallel
        Von Manish K.6
        Hi, Can two avx instrcutions can be executed in parallel? For example, Version1:             a1= _mm256_load_ps((Rin +offset));              a2= _mm256_load_ps((Gin +offset));               a3= _mm256_load_ps((Bin +offset));             ac0 = _mm256_mul_ps(a1, in2outAvx_11);              ac1 = _mm256_mul_ps(a2, in2outAvx_12);             ac2 = _mm256_mul_ps(a3, in2outAvx_13);                          z0 = _mm256_add_ps(ac0,ac1);             z1 = _mm256_add_ps(z0, ac2);              If I changed this code to  Version 2:             a1= _mm256_load_ps((Rin +offset));              a2= _mm256_load_ps((Gin +offset));               a3= _mm256_load_ps((Bin +offset));             ac0 = _mm256_mul_ps(a1, in2outAvx_11);              ac1 = _mm256_mul_ps(a2, in2outAvx_12); /*first two instructions below,  are data independent and might run in parallel */             z0 = _mm256_add_ps(ac0,ac1);             ac2 = _mm256_mul_ps(a3, in2outAvx_13);             z1 = _mm256_add_ps(z0, ac2…
        Foren abonnieren