Zona para desarrolladores Intel®:
Extensiones de conjuntos de instrucciones de la Intel® architecture

Las Extensiones de conjuntos de instrucciones de la Intel architecture (ISA) continúan evolucionando para mejorar la funcionalidad, el rendimiento y la experiencia del usuario. A continuación, presentamos las extensiones planeadas para ISA que son nuevas, así como las que se están planeando para mejoras en futuras generaciones de los procesadores. Al publicar estas extensiones con anticipación, Intel ayuda a garantizar que el ecosistema del software tenga tiempo para innovar y entrar al mercado con productos mejorados y nuevos cuando se lancen al mercado los procesadores.

Visión general

Herramientas y descargas

  • Intel® C++ Compiler

    Intel® C++ Compiler está disponible para ser descargado del Intel® Registration Center para todos los clientes con licencias. Las versiones de evaluación de los Productos Intel® de desarrollo de software también están disponibles para una descarga gratis.

  • Guía de Intel Intrinsics

    La Guía de Intel Intrinsics es una herramienta de referencia interactiva para las instrucciones intrínsecas de Intel, las cuales son funciones de estilo C que proporcionan acceso a muchas instrucciones Intel, incluyendo las instrucciones Intel® Streaming SIMD Extensions (Intel® SSE), Intel® Advanced Vector Extensions (Intel® AVX), y muchas más, sin necesidad de escribir el código de ensamblaje.

  • Gcc Compiler
    El compilador 'gcc compiler' y la biblioteca 'glibc library' compatibles con las instrucciones de Intel® AVX, Intel® AVX2, Intel® AVX-512 e Intel® MPX están disponibles para ser descargados de GPL que se encuentra en la página Emulador de Desarrollo de software Intel®.

Intel® Advanced Vector Extensions (Intel® AVX)

La necesidad de un mayor desempeño computacional sigue creciendo en todos los segmentos de la industria. Para satisfacer la creciente demanda y ofrecer compatibilidad con los modelos de uso en evolución, continuamos nuestra historia de innovación con  Intel® Advanced Vector Extensions (Intel® AVX) en los productos de hoy.

Intel® AVX es una nueva extensión del conjunto de instrucciones de 256 bits para Intel® SSE y se diseñó para aplicaciones que usan Floating Point (FP - Punto flotante) de manera intensa. Se lanzó al mercado a principios del año 2011 como parte de la familia de procesadores de la microarquitectura Intel ®, con el nombre de código 'Sandy Bridge', y se encuentra en plataformas que abarcan desde notebooks a servidores. Intel AVX mejora el desempeño gracias a vectores más anchos, nueva sintaxis ampliable y funcionalidad enriquecida. Esto resulta en una mejor administración de los datos y las aplicaciones para fines generales como el procesamiento de imágenes, sonido/video, simulaciones científicas, análisis financieros, y modelos y análisis tridimensionales.

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

En el futuro, algunos productos nuevos incluirán un avance importante hacia la compatibilidad con SIMD de 512 bits. Los programas pueden contener ocho números flotantes de doble precisión y dieciseis de precisión simple dentro de los vectores de 512 bits, así como ocho enteros de 64 bits y dieciseis de 32 bits. Esto permite el procesamiento del doble de la cantidad de elementos de datos que puede procesar IntelAVX/AVX2 con una sola instrucción y cuatro veces más las capacidades de Intel SSE.

Las instrucciones de Intel AVX-512 son importantes porque abren capacidades de rendimiento superiores para las tareas computacionales más exigentes. Las instrucciones de Intel AVX-512 ofrecen el grado más elevado de compatibilidad al incluir un nivel sin precedentes de enriquecimiento en el diseño de las capacidades de instrucciones.

Las características de Intel AVX-512 incluyen registros de 32 vectores, cada uno con 512 bits de ancho y ocho registros de máscaras dedicadas. Intel AVX-512 es un conjunto de instrucciones flexible que incluye compatibilidad con máscaras de difusión integradas para habilitar la predicción, el control de redondeo de puntos flotantes integrado, la supresión de fallas de puntos flotantes integrados, las instrucciones de dispersión, instrucciones de matemáticas de alta velocidad y la representación de grandes valores de desplazamiento.

Intel AVX-512 ofrece un grado de compatibilidad con Intel AVX que es más sólido que anteriores transiciones con los nuevos anchos para las operaciones de SIMD. A diferencia de Intel SSE e Intel AVX que no pueden mezclarse sin sufrir penalidades en el desempeño, la mezcla de las instrucciones de Intel AVX e Intel AVX-512 es compatible sin penalidades. Intel AVX registra la guía YMM0–YMM15 en los registros ZMM0–ZMM15 de Intel AVX-512 (en el modo x86-64), muy similar a las guías de los registros de Intel SSE en los registros de Intel AVX. Por tanto, en los procesadores compatibles con Intel AVX-512, las instrucciones de Intel AVX e Intel AVX2 funcionan en los valores inferiores de 128 o 256 bits de los primeros registros de 16 ZMM.

Puede encontrar más información sobre los detalles de las instrucciones de Intel AVX-512 en el blog "AVX-512 Instructions" (Instrucciones de AVX-512). Las instrucciones se documentan en la Intel® Architecture Instruction Set Extensions Programming Reference (Referencia de programación de extensiones de conjuntos de instrucciones en la Intel Architecture) (vea la ficha "Overview" (Visión general) de esta página).

Vectorization Advisor FAQ
Por Kirill Rogozhin (Intel)Publicado en 03/24/20150
General questions What is Vectorization Advisor? Vectorization Advisor is one of the two major features of the Intel® Advisor XE 2016 product. Intel® Advisor XE comprises Vectorization Advisor and Threading Advisor. Vectorization Advisor is an analysis tool that lets you identify if loop...
An Embree-Based Viewport Plugin for Autodesk Maya* 2014 with Support for the Intel® Xeon Phi™ Coprocessor
Por Charles Congdon (Intel)Publicado en 02/02/20150
Download PDF Purpose This code recipe describes how to obtain, build, and use the Embree-based Viewport Plugin for Autodesk Maya* 2014 on either Microsoft Windows* or Linux*. This plugin (actually a suite of plugins) runs under Autodesk Maya 2014 on the Intel® Xeon® processor (referred to as ‘h...
IIR Gaussian Blur Filter Implementation using Intel® Advanced Vector Extensions
Por Brijender Bharti (Intel)Publicado en 01/01/20152
This white paper proposes an implementation for the Infinite Impulse Response (IIR) Gaussian blur filter using Intel® Advanced Vector Extensions (Intel® AVX) instructions. For a 2048x2048 image size, the AVX implementation is ~2X faster than the SSE code.
Quick Linking Intel® MKL BLAS, LAPACK to R
Por Ying H (Intel)Publicado en 12/17/20140
Overview R is a popular programming language for statistical computing and machine learning. There is one article we published already- Using Intel® Math Kernel Library (Intel MKL) with R to show how to integrate Intel MKL BLAS and LAPACK libraries within R to improve the math computing performa...
Suscribirse a Artículos de la Zona para desarrolladores Intel
No se encontró contenido
Suscribirse a Blogs de la Zona para desarrolladores Intel®

    Intel® Software Guard Extensions (Intel® SGX)

    Declaración de visión de Intel

    Las cargas de trabajo computarizado de hoy están incrementado en complejidad, con cientos de módulos de software entregado por distintos equipos distribuidos en todo el planeta. El aislamiento de cargas de trabajo en plataformas abiertas ha sido un esfuerzo continuo, comenzando con la arquitectura en modo protegido para crear la separación de privilegios entre los sistemas operativos y las aplicaciones. Sin embargo, los recientes ataques de software malicioso han demostrado la habilidad de penetrar en modos altamente privilegiados y de lograr controlar todo el software de una plataforma.

    Intel® Software Guard Extensions (Intel® SGX) es un nombre para las extensiones de la arquitectura Intel designado para incrementar la seguridad del software mediante un mecanismo de “zona de pruebas inversa”.  En este método, en lugar de intentar identificar y aislar todos los software maliciosos presentes en la plataforma, el software legítimo puede sellarse dentro de un enclave y protegerlo de ataques de software malicioso, sin tener en cuenta el grado de privilegio del software malicioso. Esto complementaría los esfuerzos continuos para proteger a la plataforma contra intrusiones de software malicioso, similar a la manera de instalar cajas de seguridad en nuestros hogares para proteger nuestros artículos valiosos y, al mismo tiempo, introducir sistemas de alarmas y cerraduras más sofisticadas para impedir ataques y atrapar a intrusos.

    Cómo comenzar (común para todos los ISA)

    Visión general

    Herramientas y descargas

    • No existen cambios en el contenido existente

    Contenido técnico

    No se encontró contenido
    Suscribirse a Blogs de la Zona para desarrolladores Intel®
    No se encontró contenido
    Suscribirse a Artículos de la Zona para desarrolladores Intel

    Intel® Memory Protection Extensions (Intel® MPX)

    Los sistemas PC sufren ataques maliciosos de creciente sofisticación y una de las formas más comúnmente observadas es causar o explotar el uso excesivo del búfer (o desbordamientos) en aplicaciones de software.

    Intel® Memory Protection Extensions (Intel® MPX) es un nombre para las extensiones de Intel Architecture diseñadas para incrementar la robustez del software. Intel MPX proporcionará características de hardware que se pueden utilizar en conjunto con los cambios en el compilador para comprobar que las referencias de la memoria destinadas al momento de la compilación no se conviertan en un peligro durante la ejecución (runtime). Dos de los objetivos más importantes de Intel MPX son: proporcionar esta capacidad sin impactar el código recientemente compilado y proporcionar mecanismos de compatibilidad con componentes de software legados. Intel MPX estará disponible en un procesador Intel® futuro.

    Linux* ABI
    Por Milind Girkar (Intel)Publicado en 07/18/20130
    by Milind Girkar, Hongjiu Lu, David Kreitzer, and Vyacheslav Zakharin (Intel) Description of the Intel® AVX, Intel® AVX2, Intel® AVX-512 and Intel® MPX extensions required for the Intel® 64 architecture application binary interface.
    Introduction to Intel® Memory Protection Extensions
    Por RB (Intel)Publicado en 07/16/20130
    The C and C++ languages provide for memory access via pointers, however, these languages do not ensure the safe use of pointers. Left undetected, the unsafe use of pointers puts an application at risk of data corruption or malicious attack via buffer overruns and overflows. Intel is always looki...
    Intel® Intrinsics Guide
    Por adminPublicado en 10/30/201218
    Overview The Intel Intrinsics Guide is an interactive reference tool for Intel intrinsic instructions, which are C style functions that provide access to many Intel instructions – including Intel® Streaming SIMD Extensions (Intel® SSE), Intel® Advanced Vector Extensions (Intel® AVX), and more – w...
    Intel® Software Development Emulator Release Notes
    Por Ady Tal (Intel)Publicado en 06/15/20120
    Release notes for the Intel® Software Development Emulator
    Suscribirse a Artículos de la Zona para desarrolladores Intel
    No se encontró contenido
    Suscribirse a Blogs de la Zona para desarrolladores Intel®

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

      Secure Hash Algorithm (SHA) es uno de los algoritmos criptográficos de uso más común.  Los usos principales de SHA incluyen la integridad de datos, la autenticación de mensajes, las firmas digitales y la deduplicación de datos.  A medida que crece el uso generalizado de las soluciones de seguridad, SHA ahora se puede ver en más aplicaciones que nunca. Intel® SHA Extensions se diseñaron para mejorar el rendimiento de estos algorimos de cómputos intensos en los procesadores basados en la Intel® architecture.

      Intel® SHA Extensions son una familia de siete instrucciones basadas en Intel® Streaming SIMD Extensions (Intel® SSE) que se utilizan juntas para acelerar el rendimiento del procesamiento de SHA-1 y SHA-256 en procesadores basados en la Intel architecture.  Dada la creciente importancia de SHA en nuestros dispositivos de computación de uso diario, las nuevas instrucciones se diseñaron para proporcionar un impulso necesario de rendimiento para aplicar un solo búfer de datos. Los beneficios de rendimiento no solo ayudarán a mejorar la respuesta y a disminuir el consumo de energía para una aplicación dada, si no que pueden facilitar que más desarrolladores adopten SHA en nuevas aplicaciones para proteger datos y, al mismo tiempo, contribuyan a sus metas para la experiencia de usuario. Las instrucciones se definen de manera tal que simplifican sus guías en un flujo de procesamiento del algoritmo de la mayoría de las bibliotecas de software, por tanto se habilita un desarrollo más sencillo.

      Intel® SHA Extensions
      Por adminPublicado en 07/17/20130
      Download PDF New Instructions Supporting the Secure Hash Algorithm on Intel® Architecture Processors July 2013 Executive Summary This paper provides an introduction to the family of new instructions that support performance acceleration of the Secure Hash Algorithm (SHA) on Intel® Architecture pr...
      Intel® Intrinsics Guide
      Por adminPublicado en 10/30/201218
      Overview The Intel Intrinsics Guide is an interactive reference tool for Intel intrinsic instructions, which are C style functions that provide access to many Intel instructions – including Intel® Streaming SIMD Extensions (Intel® SSE), Intel® Advanced Vector Extensions (Intel® AVX), and more – w...
      Intel® Software Development Emulator Release Notes
      Por Ady Tal (Intel)Publicado en 06/15/20120
      Release notes for the Intel® Software Development Emulator
      Intel® Software Development Emulator
      Por Ady Tal (Intel)Publicado en 06/15/201220
        What If Home | Product Overview | FAQ | Primary Technology Contacts | Discussion Forum | Blog     Product Overview This emulator is called Intel® Software Development Emulator or Intel® SDE, for short. The current version is 7.21 and was released Apr 1, 2015. This version corresponds...
      Suscribirse a Artículos de la Zona para desarrolladores Intel
      No se encontró contenido
      Suscribirse a Blogs de la Zona para desarrolladores Intel®
        How to compile avx intrinsics in linux device driver?
        Por Sonny G.2
        My setup: Linux 3.13 kernel, gcc 4.8.2. Ubuntu on core i7 How to compile avx intrinsics in linux device driver? Any exact gcc compiler flags (makefile) and what header files to include in c source? Thanks
        pin-2.14-71313 and WinSock library
        Por Pavel R.7
        Hi, I have a problem trying to start my pintool built with WinSock library (ws2_32.lib) - it immediately exits with message "Failure to open DLL file WS2_32.dll". I've prepared a simple pintool to illistrate the problem: //---------------------------------------------------------- #include "pin.H" namespace WINDOWS { #include <Ws2tcpip.h> void *p = WSAStartup; }; int main(int argc, char *argv[]) { if (PIN_Init(argc, argv)) return 1; PIN_StartProgram(); return 0; } I've placed this file to a subdirectory of source\tools, added to makefile.rules the following line TOOL_LIBS := ${TOOL_LIBS} ws2_32.lib built the pintool make -B TARGET=ia32 then tried to run with the following command: ..\..\..\pin.exe -t obj-ia32\sock_tool.dll -- c:\windows\System32\cmd /c echo ****** started Ok ****** and have got the following message: E: Failure to open DLL file Z:\pin-2.14-71313\source\tools\sock_tool\obj-ia32\WS2_32.dll E: System error 2 : The system cannot find the fi...
        Pointer Arithmetic using Intel AVX2
        Por Nicolai B.2
        Hi, is there an opportunity to operate on pointers in 256 bit AVX2 registers (e.g. incrementing, border check, masking operations) and load from pointer, stored in a vector register? Thank you in advance! Nicolai
        Intel 64 documentation bug
        Por Chris S.1
        This is for Intel 64 and IA-32 Architectures Software Developer’s Manual, Order Number: 325462-053 US January 2015. Page Vol. 1 5-29. 5.19 64-BIT MODE INSTRUCTIONS ... MOVZX (64-bits) Move doubleword to quadword, zero-extension In fact 32 to 64 bit zero extension isn't supported as per Vol. 2A 3-583. It is only spec'd for r/m8 and r/m16. There is a small chance that I'm misinterpreting that but then so is NASM which disallows this. Somebody's wrong and so I'd like an official ruling.
        How to work with AVX on windows
        Por siva rama k.10
        Hi, I am interested in AVX instructions set using in my application for speed up.But i am new to AVX. How can i know whether my system processor is able to support AVX or not? My System Configurations as OS; Windows 7 with 64-bit CPU: Inter(R) Xeon(R) CPU  W3505 @2.53GHz. Anybody can help me.. Thanks in Advance.  
        Is profiling information running on SDE accurate and trustable?
        Por WEI Z. (Intel)1
        Hi,          I am trying to look at AVX 512 performance, currently, I wrote a simple function for evaluation as below, I configured the optimization and enabled AVX-512 etc in the project properties setting(vs2013 integrated with Intel-parallel-studio ), and I see the AVX-512 instructions are used from the asm files generated by compiler. void complexVectorConjMpy(float *inputPtr1, float *inputPtr2, float *outputPtr, int numData) {     int idxData;     float data1Re, data1Im, data2Re, data2Im;     #pragma ivdep     __assume_aligned(inputPtr1, 64);     __assume_aligned(inputPtr2, 64);     __assume_aligned(outputPtr, 64);           for (idxData = 0; idxData < numData; idxData++)     {         data1Re = inputPtr1[2 * idxData];         data1Im = inputPtr1[2 * idxData + 1];         data2Re = inputPtr2[2 * idxData];         data2Im = inputPtr2[2 * idxData + 1];                  outputPtr[2 * idxData]     = data1Re * data2Re + data1Im * data2Im;         outputPtr[2 * idx...
        TSX example code doesn't work
        Por YangHun P.5
        I have intel xeon cpu E3-1230 v3 machine which has TSX. I just want to test that TSX runs well. From manual, i got this example pseucode void rtm_wrapped_lock(lock) { if (_xbegin() == _XBEGIN_STARTED) { if (lock is free) /* add lock to the read-set */ return; /* Execute transactionally */ _xabort(0xff); /* 0xff means the lock was not free */ } /* come here following the transactional abort */ original_locking_code(lock); } void rtm_wrapped_unlock(lock) { /* If lock is free, assume that the lock was elided */ if (lock is free) _xend(); /* commit */ else original_unlocking_code(lock); }My test code for RTM which is a set of TSX is like this. void main(void) { int i; int sum[20]; int data[20]; pthread_mutex_t mutex; pthread_mutex_init(&mutex,NULL); for(i=0;i<20;i++) { data[i]=i; sum[i]=0; } omp_set_num_threads(4); #pragma omp parallel for private(i) for(i=0;i<2...
        SDE 7.15 for Linux has no 64-bit libs
        Por andysem3
        The recently released SDE 7.15 for Linux seem to have 32-bit libraries instead of 64-bit in intel64/pin_ext_lib and intel64/xed_ext_lib. Is this an oversight or am I missing something?  
        Suscribirse a Foros