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).

Applying Vectorization Techniques for B-Spline Surface Evaluation
Von roman-lygin (Intel)Veröffentlicht am 05/29/20140
Abstract In this paper we analyze relevance of vectorization for evaluation of Non-Uniform Rational B-Spline (NURBS) surfaces broadly used in Computer Aided Design (CAD) industry to describe free-form surfaces. NURBS evaluation (i.e. computation of surface 3D points and derivatives for the given u…
Using Intel® Math Kernel Library with MathWorks* MATLAB* on Intel® Xeon Phi™ Coprocessor System
Von Ying H (Intel)Veröffentlicht am 05/18/20140
Overview This guide is intended to help developers use the latest version of Intel® Math Kernel Library (Intel® MKL) with MathWorks* MATLAB* on Intel® Xeon Phi™ Coprocessor System. Intel MKL is a computational math library designed to accelerate application performance and reduce development time…
Installation of Intel® System Studio on Windows* Host
Von Naveen Gv (Intel)Veröffentlicht am 10/07/20130
How to get Intel System Studio 2014 - Windows* Host package? Upon registering for the program you will receive a serial number and email with a license file. You will need either of these two to complete the installation process. If you want to use the license file you can point to it during insta…
How to install Intel® System Studio on Windows* OS
Von adminVeröffentlicht am 10/06/20130
Topic: - How to install Intel® System Studio 2014 on Windows* OS Objective: - This article is focused on explaining step wise as “How to install Intel® System Studio 2014 on Windows* OS”. Installation: - After downloading Intel® System Studio 2014 – Windows* Host from Intel® registration center (…
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
    Kein Inhalt gefunden
    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.

    Kein Inhalt gefunden
    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.

      Kein Inhalt gefunden
      Intel Developer Zone Beiträge abonnieren
      Kein Inhalt gefunden
      Intel Developer Zone Blogs abonnieren
        Possible XED Decode Bug (from Pin rev 65163)
        Von Paul J.2
        .ExternalClass .ecxhmmessage P { padding:0px; } .ExternalClass body.ecxhmmessage { font-size:12pt; font-family:Calibri; } I may have spotted a bug in XED when decoding 64-bit instructions while unit testing my own disassembler. To recreate:  I have setup the decoder to use XED_MACHINE_MODE_LONG_64 with XED_ADDRESS_WIDTH_64b. The problem appears to be that XED will more than one REX prefix and generate an instruction. For example:   41-40-26-E8-77-70-C5-A2 call 0xffffffffa2dc607f   The E8 is the call instruction op code, with a 41-40-26 prefix (hex). 41 and 40 are obviously both REX prefixes.   According to section Volume 2, 2.2.1 (REX prefixes) of the Intel 64 and IA-32 Architectures (June 2013 - Combined) "Only one REX prefix is allowed per instruction".   Is this a fault of XED or am I misunderstanding. Apologies if so!   I was using the XED decoder which came with the latest revision of Pin, r65136.   If this is of use then I've noticed faults in XED previously wh…
        Scaling TSX to multi-socket systems
        Von Stephen R.4
        Hi, This is my first time posting here, sorry if this is in the wrong subforum. To the best of my knowledge, TSX uses the L1 cache coherency protocol to monitor the read/write sets for a transaction. Something which I've been wondering for a while now is how would this scale to systems with >1 processors. I'm not familiar with how such systems maintain cache coherency at L1, but is it feasible for TSX to work correctly and efficiently in these kinds of systems? Also, is this why the server variants of Haswell are only available for single socket systems? Thanks, Stephen
        SSE4 Intrensics on Visual Studio 2008
        Von Uday Krishna G.6
        Hi, Am optimizing my code application using Intel SSE intrinsic. It works fine with Intel compiler for 64-bit and 32-bit in MSVC 2008 IDE. The same applications behaving differently with MSVC compiler for 32/64- bit run. I would like to know is there any limitation for MSVC 2008 IDE with respect to Intel SSE intrinsics( Am using upto SSE4.2).
        BNDLDX/BNDSTX, BNDSTATUS error = 2, expected behavior?
        Von c_433
        Consider the example given at https://software.intel.com/en-us/blogs/2013/07/22/intel-memory-protectio... in particular the example "Another simple example demonstrates using of bndldx and bndstx instructions.". Adapting this example to include a main function calling foo and having p and q defined in a different source file and pointed to a couple buffers each (source included at the bottom of this post), I get BNDSTATUS set to error = 2 (invalid BD entry) for some of the BNDSTX and BNDLDX instructions. I've noticed this also happens in other test/example programs. Why does this happen? Is this behavior normal and to be expected? The program otherwise works as expected and detects the bound violation, so I'm guessing there is something obvious I'm missing. Program received signal SIGSEGV, Segmentation fault. 0x000000000040071e in _GLOBAL__sub_P_00102_0_p () at externs.c:5 5       int *q = array_q;    0x0000000000400700 <_GLOBAL__sub_P_00102_0_p+0>:     55      push   rbp   …
        Latest GCC to use with the SDE for MPX?
        Von c_431
        I'm aware there are links to download binary versions of GCC at https://software.intel.com/en-us/articles/intel-software-development-emu... however the latest experimental version of GCC appears to be quite more recent than this. However I'm confused about what branch I should be using if I want to build and use the latest MPX enabled development version of GCC with the Intel SDE. Trying to use the branch svn/mpx or origin/ienkovic/mpx, these both fail to compile on my system. If I attempt to compile the main branch then GCC builds correctly but I don't get any MPX functionality. I'm using the following guides to build and install GCC: https://gcc.gnu.org/install/configure.html https://gcc.gnu.org/wiki/Intel%20MPX%20support%20in%20the%20GCC%20compiler
        Documentation bug for DIV/IDIV
        Von sirrida0
        I refer to the current Intel 64 and IA-32 Architectures Software Developer’s Manual (e.g. 325462-051US of June 2014). For IDIV your will find that the upper bounds of quotient range is wrong for 32 and 64 bit; these must be e.g. -2^31..2^32-1 instead of -2^31..2^31-1. Also, a description for signs the of the remainders are missing; AMD is more precise: "The sign of the remainder is always the same as the sign of the dividend, and the absolute value of the remainder is less than the absolute value of the divisor." For the DIV instruction there need not be anything about magnitude since all values are positive; remove "in magnitude".
        Working assembly example for MPX?
        Von c_432
        Does there already exist some small working example of an assembly program that enables MPX and demonstrates (some) of the instructions -- when executed in the SDE? I am aware that MPX appears to be enabled in libmpx. However I'd like to see this done by hand without using libmpx, assemble the program using an MPX enabled NASM and of course still run it in the SDE, just to play around with it. I've already looked for this without finding anything, if someone could point me to such an already existing example that would be great.
        When is AVX 512 on a chip, not just an emulator?
        Von Thomas H.4
        I'm having a really hard time finding anything other than rumors about this. I have seen the official statement that Broadwell chips will be available before Christmas, but I can't tell if Broadwell includes the AVX 512 extensions or not (I've heard both ways).  Anyone know for sure? Better yet can anyone point me to a link on intel.com that provides a definitive answer?
        Foren abonnieren