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

Pointer Checker to debug buffer overruns and dangling pointers (Part 1)
By Milind Kulkarni (Intel)Posted 11/08/20120
Article topic Pointer Checker to debug buffer overruns and dangling pointers Next article Pointer Checker to detect buffer overflows and dangling pointers (part 2) Overview A buffer overflow or overrun is a program anomaly caused when memory is accessed or written outside the region allocated fo...
Intel® Intrinsics Guide
By adminPosted 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...
Case Study: Computing Black-Scholes with Intel® Advanced Vector Extensions
By shuo-li (Intel)Posted 09/06/20120
1. Introduction In its relentless effort to lead innovation and deliver greater compute capacity and lower power consumption to satisfy the growing demands across the industry segments and the evolving usage models, Intel introduced a new set of instructions called the Intel® Advanced Vector Exte...
Intel® Cilk™ Plus – AOBench Sample
By mark-sabahi (Intel)Posted 08/24/20120
This is the AOBench example associated with the "Intel® Cilk™ Plus – The Simplest Path to Parallelism" how-to article.  It shows an Ambient Occlusion algorithm implemented as serial loops, one using Intel Cilk Plus' cilk_for keyword to implement parallelism, one version using Intel Cilk Plus' arr...

Páginas

Assine o
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

    Páginas

    Assine o

    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

    Páginas

    Assine o
    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

      Páginas

      Assine o
      Nenhum conteúdo foi encontrado
      Assine o Blogs do Intel® Developer Zone
        Intel® Software Development Emulator, Release 6.12
        By Ady Tal (Intel)0
        Hello, we just released version 6.12 of the Intel® Software Development Emulator. It is available here:http://www.intel.com/software/sde It includes: Support to Mac OSX version 10.9. Improved the TSX statistics information. Various fixes with the emulation of floating-point instructions of Intel AVX-512. Enabled the alignment checker tool by default for instructions that require alignment. Fixed mismatch between mix and dynamic mask profiler. Updated the Intel MPX runtime libraries for Windows.  Performance improvements when modeling a CPU prior to AVX-512.  
        MOVNTI and alignment for real mode
        By Kostik B.2
        In the SDM rev. 48, vol. 2A, page 3-546, in the description of the exceptions for the MOVNTI instruction in the real-mode, it is specified that the instruction can generate #GP If a memory operand is not aligned on a 16-byte boundary, regardless of segment. There is no exceptions specified for unaligned stores for protected or long mode, except for AC enabled.  AMD reference is also silent about the unaligned stores.  Is this indeed an irregularity in real mode, or just a typo in the spec ?
        mem address directly from SSE/AVX register
        By Luchezar B.3
        Hello, I would like to make a suggestion Very often [otherwise well vectorizible] algorithms require reading/writing from/to mem addresses which are calculated per-channel (reading from table, sampling a texture, etc.).When you get to this, you are forced to make that part of the algorithm scalar by extracting each channel in turn to a GP register, performing the memory operation and then inserting the result back to a vector register.I don't think a single instruction that interprets each channel as an address and reads/writes to different memory locations at once is hardware feasible (though it would be extremely good) but at least we could have something that would ease the situation. my suggestion is instructions for memory access that get the address directly from the sse/avx register: loadd $(i + (j<<4)), %xmm0, %xmm1 - read 32-bit word from address specified in the i-th dword of xmm0 and store it in j-th quarter of xmm1stored $(i + (j<<4)), %xmm0, %xmm1 - read 32-...
        Studying Intel TSX Performance: strange results
        By Alexander K.9
        Dear all, I've made studying of Intel TSX performance - its abort cases and comparison with spin lock. The study with reference to source code is available at http://natsys-lab.blogspot.ru/2013/11/studying-intel-tsx-performance.html . I see some performance gain for TSX in comparison with spin lock. However I stll have few of questions: 1. I see huge jump of transactional aborts when transaction work set reaches 256 cache lines (Figure 1). This is 16KB which is just only a quarter of L1d cache. The workload is single threaded, running strictly on one CPU core. Also I didn't use HyperThreading. I know that the cache has 8-way associativity, however I used static memory allocations (which are continous in virtual memory and likely continous physically) and it's unlikely that I have too many collisions in cache lines to get only 16KB of available cache memory for the transaction. So how the spike can be explained? Also Figure 3 (dependency of execution time on transaction size) shows s...
        AVX-512 is a big step forward - but repeating past mistakes!
        By Agner44
        AVX512 is arguably the biggest step yet in the evolution of the x86 instruction set in terms of new instructions, new registers and new features. The first try was the Knights Corner instruction set. It had some problems and AVX512 is better, so I am quite happy that AVX512 seems to be replacing the Knights Corner instruction set. But there are still some shortsighted issues that are lilkely to cause problems for later extensions. We have to learn from history. When the 64-bit mmx registers were replaced by the 128-bit xmm registers, nobody thought about preparing for the predictable next extension. The consequence of this lack of foresight is that we now have the complication of two versions of all xmm instructions and three states of the ymm register file. We have to issue a vzeroupper instruction before every call and return to ABI-compliant functions, or alternatively make two versions of all library functions, with and without VEX. Such lack of foresight can be disastrous. Unfo...
        Poor Code Gen of FMA3 instructions in SPEC FP 06 using Intel 14.0.0 compiler suite
        By perfwise8
        I have compiled a SPEC FP 06 using the Intel 14.0.0 compiler suite.  I've observed great performance but upon looking at the code gen distributions through SDE, I note that only about 0.1% of the instructions executed are FMA3.  When I've compiled with Open64 in the past, I noted that 7% of the instructions executed were FMA variants, and between compiling with and without FMA3, the performance increased 5% approximately.  I'm using the -xCORE-AVX2 compiler flag upon my Haswell, but it's not "efficienctly leveraging" the use of FMA3.  Is there another flag I must use in order to get the Intel 14.0.0 compiler to generate FMA instructions?  I'm quite confident there's opportunity missed here and wanted to bring it to someone's attention. I posted this in this form because it's an ISA issue in the compiler and not isolated solely to the C or Fortran compilers. Perfwise
        Bloated Instruction counts in SDE as compared with that from HW PMC 0xC0
        By perfwise18
        I have noted in multiple (though infrequent but freqent enough) circumstances that the instruction counts for execution of a binary in SDE and that reported by PMC 0xC0 differ by ORDERS of magnitude.  I just ran a version of hmmer compiled with Intel 14.0 and SDE is reporting to me (v5.38 of SDE and it's run with sde -mix -top_blocks 3000 upon a Haswell system) that hmmer took 60 Trillion instructions to execute.  I know that number is bogus since in Open64 it only took 1.05 Trillion to execute as reported by the PMCs.  "perlbench" is also reporting it took 5.6 T instructions to execute in SDE, but likewise the PMCs on HW reported that only 2.1 T instructions were executed in Open64.  I don't think Intel14 is taking more than 2x the # of instructions.  Something is antenuating the instruction counts reported by SDE in both "perlbench" and in "hmmer".   I've also noted this happening in GCC v4.6 in the same benchmarks. Does anyone have an idea as to what's happening in SDE and why I'...
        AVX Optimizations and Performance: VisualStudio vs GCC
        By James S.42
        Greetings,    I have recently written some code using AVX function calls to perform a convolution in my software. I have compiled and run this code on two platforms with the following compilation settings of note: 1. Windows 7 w/ Visual Studio 2010 on a i7-2760QM    Optimization: Maximize Speed (/O2)    Inline Function Expansion: Only __inline(/Ob1)    Enable Intrinsic Functions: No    Favor Size or Speed: Favor fast code (/Ot) 2. Fedora Linux 15 w/ gcc 4.6 on a i7-3612QE    Flags: -O3 -mavx -m64 -march=corei7-avx -mtune=corei7-avx For my testing I ran the C implementation and the AVX implementation on both platforms and got the following timing results: In Visual Studio: C Implementation: 30ms AVX Implementation: 5ms In GCC: C Implementation: 9ms AVX Implementation: 57ms As you can tell my AVX numbers on Linux are very large by comparison. My concern and reason for this post is that I may not have a proper understanding of using AVX and the settings to properly them in both scenari...

        Páginas

        Assine o Fóruns