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

Memory profiling techniques using Intel System Studio
Por Naveen Gv (Intel)Publicado en 10/08/20140
Intel Inspector for Systems is dynamic and static analyzer identifies difficult to find memory and threading errors to ensure functional reliability
Intel® System Studio Case Studies
Por Naveen GvPublicado en 09/25/20140
Intel® System Studio is a very useful for developing variety of embedded applications, like In vehicle infotainment (IVI), telecom , Video Surveillance etc. Few case studies are documented and published for reference.
Full Pipeline Optimization for Immersive Video in Tencent QQ*
Por Colleen Culbertson (Intel)Publicado en 09/22/20140
Download PDF Abstract Tencent (Tencent Technology Company Ltd) integrated the Intel® Media SDK to optimize performance and reduce power consumption of its video conferencing app, QQ*. The app went from a max resolution of 480p with low frames per second (fps) to 720p resolution at 15-30 fps whi...
Migrating from SSE2 Vector Operations to AVX2 Vector Operations
Por TAMAR B. (Intel)Publicado en 09/06/20140
Abstract Intel® Architecture CPUs continue to evolve and offer improved performance and power efficiency. However, software engineers often fail to explore new hardware capabilities and enable their products to take advantage of the leading edge platforms. For example, Intel recently produced ne...
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.

    No se encontró contenido
    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.

      No se encontró contenido
      Suscribirse a Artículos de la Zona para desarrolladores Intel
      No se encontró contenido
      Suscribirse a Blogs de la Zona para desarrolladores Intel®
        Self-compiled GCC available for download doesn't recognize -fmpx flag
        Por Leandro M.2
        Hi... I compiled the sources of GCC 4.7.2 available for download here at this Intel page. I can perfectly run the compiler, however it doesn't seem to understand the -fmpx flag: it throws me an "unrecognized command line option" error. The build was configured with --enable-mpx as described in this GCC wiki, but that article seems to be outdated - the code there is apparently broken with a libc++ incompatibility (I'm on OS X Mavericks and this is currently the system's default C++ library, which replaced libstdc++). Could anyone please point to me what I am missing? Thank you, Leandro ps: In the case it's useful, here is my configure call: configured by ../gcc-4.7.2/configure, generated by GNU Autoconf 2.64,   with options \" '--enable-mpx' '--enable-language=c,c++' '--enable-interwork' '--target=x86_64-apple-darwin13' '--host=x86_64-apple-darwin13' '--build=x86_64-apple-darwin13' 'build_alias=x86_64-apple-darwin13' 'host_alias=x86_64-apple-darwin13' 'target_alias=x86_64-apple-darw...
        Intel SGX related
        Por Shiva V.0
        Hello  I am new to Intel SGX technology and was exploring various features offered by it. I wanted to develop an emulator which could approximately emulate few features offered by SGX. I wanted to start off really with a very simple scenario. I wanted to know how would a read/write system call work inside an enclave. I dont see any reference manual mentioning about how general system call would work inside an enclave. I understand that there are some instructions used to create/destroy/debug/manage enclaves. But what about basic system call working. So, in particular, I want to know how would basic system calls like read/write initiated inside enclave would work -- The Flow? Who handles them? How is it handled? What are the components visible outside the enclave? How is it transformed if its containing any sensitive data? What is it transformed to -- Synthetic State means? How is the Stack Switch happens?  According to my understanding, the TCB in SGX is just Intel platform and the ...
        MPX, statically linked version of libmpx-runtime64.a
        Por c_431
        Does there exist a statically linked version of libmpx-runtime64, i.e. libmpx-runtime64.a? Where can I get it?
        Penalties in SSE4
        Por Uday Krishna G.2
        Hi, Is there any penalties with in Intel SSE4? Read in some document like accessing the partial register data from XMM register and from GPRs will cause some penalty. Is there any document to understand better on the Data transfer penalties among the SSE registers.
        New Xeons on Intel Ark
        Por emmanuel.attia9
        Hi, On Intel website, the new Xeons E5 v3 (listed here http://ark.intel.com/products/family/78583/Intel-Xeon-Processor-E5-v3-Fa... ) only display "Intel AVX" as supported extension set, it's a bit disturbing to think they would not support AVX2. Maybe these pages need to be more precise ;) Regards Emmanuel
        TSX with Haswell-E
        Por code p.3
        Are there any known motherboard and bios versions that allow me to develop using TSX with Haswell-E? Or, has the Haswell-E already had TSX permanently disabled? Or, has no disabling taken place yet at all? I really want to know so I can decide what to purchase. Thanks
        BEXTR intrinsic incompatible with GCC
        Por Nathan K.1
        The __builtin_ia32_bextr_u64() intrinsic for the BMI instruction BEXTR in ICC is incompatible with the GCC.  The GCC version expects two arguments, but ICC takes three.  #include <x86intrin.h> #include <stdint.h> // icc wants 3 args for __builtin_ia32_bextr_u64() but gcc wants 2 uint64_t bextr_intrinsic(uint64_t src, uint64_t pattern) { return __builtin_ia32_bextr_u64(src, pattern); }  nate@haswell:~/intel$ gcc-4.8 -std=gnu99 -march=native -O3 -c bextr_intrinsic_test.c -o test.o nate@haswell:~/intel$ objdump -d test.o test.o:     file format elf64-x86-64 Disassembly of section .text: 0000000000000000 <bextr_intrinsic_compatatility>:    0:    c4 e2 c8 f7 c7           bextr  %rsi,%rdi,%rax    5:    c3                       retq nate@haswell:~/intel$ icc -std=gnu99 -march=native -O3 -c bextr_intrinsic_test.c -o test.o bextr_intrinsic_test.c(11): error #165: too few arguments in function call       return __builtin_ia32_bextr_u64(src, pattern);       ...
        What is _MM_SHUFFLE macro meaning in the context of AVX
        Por Hien P.2
        Hi guys, I really do not understand yet the _MM_SHUFFLE macro meaning in the context of AVX _mm256_shuffle_ps() (For SSE, it's Ok). Any help for this? Thanks.  
        Suscribirse a Foros