Intel® Developer Zone:
Extensões da Instruction Set Architecture da Intel

A ISA (Instruction Set Architecture) da Intel continua a evoluir para melhorar a funcionalidade, o desempenho e a experiência de uso. São mostradas abaixo as novas extensões planejadas para a ISA e as que estão sendo planejadas para aprimoramentos em futuras gerações de processadores. Com a publicação antecipada destas extensões, a Intel ajuda a garantir que o ecossistema de software tenha tempo para inovar e chegar ao mercado com produtos novos e aprimorados quando os processadores forem lançados.

Visão geral

Ferramentas e downloads

  • Compilador Intel® C++

    O Compilador Intel® C++ está disponível para download a partir do Intel® Registration Center, para todos os clientes licenciados. Versões de avaliação de produtos Intel® para desenvolvimento de software estão também disponíveis para download gratuito.

  • Guia Intel Intrinsics

    O Guia Intel Intrinsics é uma ferramenta de referência interativa sobre as instruções intrínsecas Intel, que são funções em estilo C que dão acesso a muitas instruções Intel, inclusive as Intel® Streaming SIMD Extensions (Intel® SSE), Intel® Advanced Vector Extensions (Intel® AVX) e outras, sem a necessidade de escrever código em assembly.

Intel® Advanced Vector Extensions (Intel® AVX)

A necessidade de desempenho computacional maior continua a crescer em todos os segmentos da indústria. Para atender a esta demanda crescente e para desenvolver modelos de uso, nós continuamos com o nosso histórico de inovação com o  Intel® Advanced Vector Extensions (Intel® AVX) nos produtos de hoje.

O Intel® AVX é uma nova extensão do conjunto de instruções de 256 bits para Intel® SSE e foi criado para aplicativos que usam ponto flutuante intensamente. Ele foi lançado no começo de como parte da família de processadores com a microarquitetura Intel® de codinome Sandy Bridge e está presente em plataformas que vão desde notebooks até servidores. O Intel AVX aumenta o desempenho por causa do uso de vetores mais amplos, uma nova sintaxe extensível e uma poderosa funcionalidade. O resultado é um melhor gerenciamento de dados e de aplicativos de uso geral, como processamento de imagens e áudio/vídeo, simulações científicas, análises financeiras e modelagem e análise em 3D.

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

No futuro, alguns novos produtos darão um salto significativo em direção ao suporte para SIMD de 512 bits. Os programas podem processar oito números de ponto flutuante de precisão dupla e 16 de precisão simples com vetores de 512 bits, bem como oito inteiros de 64 bits e 16 inteiros de 32 bits. Isto permite o processamento do dobro do número de elementos de dados que o IntelAVX/AVX2 pode processar com uma instrução simples e quatro vezes a capacidade das Intel SSE.

As instruções Intel AVX-512 são importantes por que elas fornecem recursos de maior desempenho para as tarefas computacionais mais exigentes. As instruções Intel AVX-512 oferecem o mais alto grau de suporte para compiladores, pois elas incluem um nível sem precedentes de abrangência das capacidades das instruções.

Os recursos do Intel AVX-512 incluem 32 registradores vetoriais com largura de 512 bits e oito registradores de máscara dedicados. O Intel AVX-512 é um conjunto flexível de instruções que suporta difusão, mascaramento integrado para permitir a predicação, controle integrado de arredondamento de ponto flutuante, supressão integrada de falhas de ponto flutuante, instruções de espalhamento, instruções matemáticas de alta velocidade e representação compactada de valores de alto deslocamento.

O Intel AVX-512 oferece um nível de compatibilidade com o Intel AVX maior do que as transações anteriores para novas larguras de operações SIMD. Ao contrário das Intel SSE e Intel AVX, que não podem ser misturadas sem perda de desempenho, a mistura de instruções Intel AVX e Intel AVX-512 é suportada sem penalidades de desempenho. Os registradores YMM0 a YMM15 da Intel AVX correspondem aos registradores ZMM0 a ZMM15 da Intel AVX-512 (no modo x86-64), de modo muito semelhante ao mapeamento entre os registradores das Intel SSE e os registradores das Intel AVX. Portanto, nos processadores que suportam o Intel AVX-512, as instruções Intel AVX e Intel AVX2 operam nos 128 ou 256 bits inferiores dos primeiros 16 registradores ZMM.

Mais detalhes sobre as instruções Intel AVX-512 podem ser encontrados no "Instruções AVX-512". As instruções estão documentadas na Referência de programação para as extensões do conjunto de instruções da arquitetura Intel® (veja a aba "Visão geral" nesta página).

Applying Vectorization Techniques for B-Spline Surface Evaluation
Por roman-lygin (Intel)Publicado em 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...
Using Intel® Math Kernel Library with MathWorks* MATLAB* on Intel® Xeon Phi™ Coprocessor System
Por Ying H (Intel)Publicado em 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 ti...
Installation of Intel® System Studio on Windows* Host
Por Naveen Gv (Intel)Publicado em 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 ins...
How to install Intel® System Studio on Windows* OS
Por adminPublicado em 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...
Assine o Artigos do Espaço do desenvolvedor Intel
Nenhum conteúdo foi encontrado
Assine o Blogs do Intel® Developer Zone

    Intel® Software Guard Extensions (Intel® SGX)

    Declaração de Visão da Intel

    As cargas de trabalho computacionais dos dias de hoje estão cada vez mais complexas, com centenas de módulos de software fornecidos por diferentes equipes espalhadas pelo mundo todo. O isolamento de cargas de trabalho em plataformas abertas tem sido um esforço contínuo, começando com a arquitetura de modo protegido para criar uma separação de privilégios entre os sistemas operacionais e os aplicativos. Recentes ataques de malware, entretanto, têm demonstrado a capacidade de penetrar em modos altamente privilegiados e obter o controle de todo o software da plataforma.

    Intel® Software Guard Extensions (Intel® SGX) é o nome das extensões da Arquitetura Intel® projetadas para aumentar a segurança do software por meio de um mecanismo de “inverse sandbox”. Nesta abordagem, ao invés de tentar identificar e isolar todos os malwares da plataforma, o software legítimo pode ser lacrado em um envoltório e protegido contra os ataques do malware, independentemente do nível de privilégio dele. Isto complementa os esforços constantes para a segurança da plataforma contra a intrusão de malware, de modo similar ao da instalação de cofres em casa para proteger itens valiosos, em adição à instalação de fechaduras e sistemas de alarme mais sofisticados para impedir a entrada de intrusos.

    Primeiros passos (comuns a todos os ISA)

    Visão geral

    Ferramentas e downloads

    • Nenhuma mudança do conteúdo existente

    Conteúdo técnico

    Nenhum conteúdo foi encontrado
    Assine o Blogs do Intel® Developer Zone
    Nenhum conteúdo foi encontrado
    Assine o Artigos do Espaço do desenvolvedor Intel

    Intel® Memory Protection Extensions (Intel® MPX)

    Os sistemas computacionais estão sujeitos a ataques mal-intencionados cada vez mais sofisticados, e uma das formas mais comuns desses ataques é causar ou tirar proveito dos transbordamentos de buffer de aplicativos de software.

    Intel® MPX (Intel® Memory Protection Extensions) é o nome das extensões da Arquitetura Intel® projetadas para aumentar a robustez do software. O Intel MPX fornece recursos de hardware que podem ser usados em conjunto com mudanças de compilador para impedir que as referências de memória usadas durante a compilação não se tornem inseguras no tempo de execução. Dois dos mais importantes objetivos do Intel MPX são fornecer este recurso com baixa sobrecarga para códigos recém compilados, e fornecer mecanismos de compatibilidade com componentes de sobrecarga preexistentes. O Intel MPX estará disponível em um futuro processador Intel®.

    Nenhum conteúdo foi encontrado
    Assine o Artigos do Espaço do desenvolvedor Intel
    Nenhum conteúdo foi encontrado
    Assine o Blogs do Intel® Developer Zone

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

      O SHA (Secure Hash Algorithm - algoritmo de hash seguro) é um dos algoritmos criptográficos mais comumente usados.  Os usos principais do SHA são em integridade de dados, autenticação de mensagens, assinaturas digitais e remoção de dados duplicados.  À medida que o uso generalizado de soluções de segurança continua a crescer, o SHA é visto em mais aplicativos do que nunca. As Intel® SHA Extensions foram projetadas para aumentar o desempenho destes algoritmos de computação intensa em processadores baseados na arquitetura Intel®.

      As Intel® SHA Extensions são uma família de sete instruções baseadas em Intel® Streaming SIMD Extensions (Intel® SSE) que são usadas juntas para acelerar o processamento de SHA-1 e SHA-256 nos processadores baseados na arquitetura Intel®.  Por causa da crescente importância do SHA no dia a dia dos nossos dispositivos computacionais, estas novas instruções fornecem o aumento de desempenho necessário para fazer o hash de um único buffer de dados. Os benefícios de desempenho não apenas ajudam a melhorar a responsividade e a diminuir o consumo de energia de um dado aplicativo, mas também permitem que os desenvolvedores adotem o SHA em novos aplicativos para proteger dados e atingir suas metas de experiência de uso. As instruções são definidas de modo a simplificar o seu mapeamento no fluxo de processamento do algoritmo da maioria das bibliotecas de software, o que facilita o desenvolvimento.

      Nenhum conteúdo foi encontrado
      Assine o Artigos do Espaço do desenvolvedor Intel
      Nenhum conteúdo foi encontrado
      Assine o Blogs do Intel® Developer Zone
        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.  
        Performance penalty for mixed AVX512 code?
        Por Russell Van Zandt7
        There is a known performance penalty for mixing AVX with legacy code on today's Haswell processors. Will this same problem exist in the Skylake chips and AVX512? Will the delay be even longer for the ZMMs, since there are twice as many to save & restore and they are twice as long? The workaround instruction for this, VZEROUPPER, is not listed as changed in Intel's Instruction Extensions manual. Won't there be changes like zeroing the high portion of the ZMM register? This is documented by Intel: in section 11.3, "Mixing AVX with SSE Code" Intel's Architecture Optimizations Manual (248966-029) in a long 2008 discussion in this forum "Software consequences of extending XMM to YMM" with discussion from Mark Buxton from Intel: https://software.intel.com/en-us/forums/topic/301853 Intel writes: "These save and restore operations have a high penalty. Frequent execution of these transitions causes significant performance loss" and on this forum commented that the penalty was "someth...
        Possible XED Decode Bug (from Pin rev 65163)
        Por 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 ...
        Scaling TSX to multi-socket systems
        Por 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
        Por 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?
        Por 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?
        Por 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
        Por 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".
        Assine o Fóruns