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

Samples for Intel® C++ Composer XE
By Jennifer J. (Intel)Posted 02/25/20130
Intel® C++ compiler is an industry-leading C/C++ compiler, including optimization features like auto-vectorization and auto-parallelization, OpenMP*, and Intel® Cilk™ Plus multithreading capabilities; plus the highly optimized performance libraries. We have created a list of articles with samples...
VecAnalysis Python* Script for Annotating Intel C++ & Fortran Compilers Vectorization Reports
By mark-sabahi (Intel)Posted 01/16/20130
  This is the Python* script used to annotate Intel® C++ and Fortran compiler 13.1 (Intel® C++/Fortran/Visual Fortran Composer XE 2013 Update 2 and later) vectorization reports produced at -vec-report7.  The attached zip file contains: vecanalysis.py  vecmessages.py README-vecanalysis.txt NOTE: Y...
Webinar: Get Ready for Intel® Math Kernel Library on Intel® Xeon Phi™ Coprocessors
By Zhang Z (Intel)Posted 12/05/20121
Intel recently unveiled the new Intel® Xeon Phi™ product – a coprocessor based on the Intel® Many Integrated Core architecture. Intel® Math Kernel Library (Intel® MKL) 11.0 introduces high-performance and comprehensive math functionality support for the Intel® Xeon Phi™ coprocessor. You can downl...
Programming for Multicore and Many-core Products including Intel® Xeon® processors and Intel® Xeon Phi™ coprocessors
By James Reinders (Intel)Posted 11/12/20120
Programming for Multicore and Many-core Products including Intel® Xeon® processors and Intel® Xeon Phi™ coprocessors (including language extensions for offloading to Intel® Xeon Phi™ coprocessors) Abstract The programming models in use today, used for multicore processors every day, are available...

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

      Intel® Software Development Emulator Download
      By Ady Tal (Intel)Posted 12/16/20114
      Intel® Software Development Emulator (released March 06, 2014) DOWNLOAD Intel® SDE for WINDOWS*  (sde-external-6.22.0-2014-03-06-win.tar.bz2) Note:  If you use Cygwin's tar command to unpack the Windows* kit, you must execute a "chmod -R +x" on the unpacked directory. DOWNLOAD Intel® SDE d...

      Páginas

      Assine o
      Nenhum conteúdo foi encontrado
      Assine o Blogs do Intel® Developer Zone
        FMA manipulation of register’s content for XMM, YMM and ZMM register sets
        By Mile M.1
        hello, there wasn’t a typical introduction thread so since it’s my first post i though to introduce myself. my name is mile (yes like the measuring unit) and i’m a student. i’m noob in this area. i’m writing a paper for school and before posting my question(s) here i’ve thoroughly researched for an answer online to the best of my abilities but i didn’t managed to find one. after browsing the forum i’ve decided to post in new topic instead going off topic in another one. during my research some things cleared up to me but i still couldn’t find clearly defined answers. i’ll probably have some trivial questions and silly assumptions so please correct me if i’m wrong or if i’m missing something. i’ve spent a lot of time drawing the diagrams and writing со if someone can help i would appreciate it greatly! i’m having a mentor studies where we don’t have lectures but isnread the professor gives us a topic which we study on our own. unfortunately i can’t bother my professor with this type ...
        gather instructions and the size of indexs for a given base gpr size
        By perfwise5
        Hi,     I have a simple question.  When performing address computations, the size of the BASE and the INDEX are required to be the same.  I presumed this was the case in the GATHER instructions.. but I don't believe it is so now.  Can someone confirm?  Namely.. I'm asking if you can use a 64-bit gpr BASE register, and use 32-bit indexes in an instruction like VGATHERDPS or VPGATHERDD.  In these 2 instructions the indexes are 32-bit values, which I presume are sign extended to 64-bits when you have a 64-bit gpr BASE specified.  I didn't find it clearly stated this was possible nor did I find it was prohibited.. so just wanted to clarify.   Thank you for any helpful and concise feedback perfwise
        ICPC 13.0.2 generates scalar load instead of packed load
        By Paul S.0
        Hi all, I'm a little puzzled about the generated assembly code for this little piece of Cilk code: void gemv(const float* restrict A[4], const float *restrict x, float * restrict y){     __assume_aligned(y, 32);     __assume_aligned(x, 32);     __assume_aligned(A, 32);     y[0:4]  = A[0:4][0] * x[0];     y[0:4] += A[0:4][1] * x[1];     y[0:4] += A[0:4][2] * x[2];     y[0:4] += A[0:4][3] * x[3]; } Looking at the generated assembly code: - The compiler changes the algorithm such that it uses the vdpps instruction (most likely due to the bad access pattern of A).  | - Loads for A are okay (only four packed loads). However, the loads and stores for x and y are quite bad. The compiler issues four scalar loads/ stores for both x and y. More precisely, here is a sequence of the generated scalar loads for x: vmovss    xmm0, DWORD PTR [rsi]                          vmovss    xmm1, DWORD PTR [4+rsi]                        vmovss    xmm2, DWORD PTR [8+rsi]                        vm...
        Will AVX-512 replace the need for dedicated GPU's?
        By Christopher H.13
        I do not expect it to replace high end graphics cards, and will likely be less efficient powerwise than a dedicated gpu (integrated or discrete). As far as I can tell performance wise it will easily make a CPU on par with a mid range GPU, which is far and above what the majority of people need. A 3Ghz 4 Core Skylake cores will have 768GFlops(3Ghz * 4Core * 2x16FMA). The GPU takes up a enough die space to allow for 8 core chips, which would double the max flops. Intel already has the OpenGL and DirectX software renderers from Larrabee. The only thing really lacking is memory bandwidth, although DDR4 and Crystalwell should help with this.
        unaligned loads avx-128 vs. -256
        By Tim Prince8
        I just saw that my cases using _mm256_loadu_ps show better performance than _mm_loadu_ps on corei7-4, where the latter was faster on earlier AVX platforms (in part due to the ability of ICL/icc to compile the SSE intrinsic to AVX-128). Does this mean that advice to consider AVX-128 will soon be of only historical value?  I'm ready to designate my Westmere and corei7 linux boxes as historic vehicles. icc/ICL 14.0.1 apparently corrected the behavior (beginning with introduction of CEAN) where run-time versioning based on vector alignment never took the (AVX-256) vector branch in certain cases where CEAN notation produced effective AVX-128 code.  It seems now that C code can match performance of CEAN, if equivalent pragmas are applied. A key to getting an advantage for AVX-256 on corei7-4 appears to be to try reduced unroll.  In my observation, ICL/icc don't apply automatic unrolling to loops with intrinsics, while gcc does.  When not using intrinsics with ICL, I found the option 'ICL ...
        Latest ASM compiler other than Intel C and C++ Compilers
        By Uday Krishna G.6
        Hi, Am trying to code my application in Assembly to run on x86. Please suggest me the suitable compiler which will support all SSE4.2 Assembly instructions(other than Intel Compiler). If any links which help in execution and procedure will be helpful. 
        Is there some books about SIMD(sse, avx and so on) optimization?
        By zhang h.2
        ~Can someone please recommend a few books on program optimization? I use  multithreading and simd to improve the performance of the program. I always learn simd through the website, and ask questions in the web site. Now I want to buy some books to learn. Is there any books on simd ? Thanks
        Instruction set extensions programming reference, revision 17,
        By Mark Charney (Intel)10
        An updated instruction set extensions programming reference, revision 17, has been posted here.  It includes information about: Intel® Advanced Vector Extensions 512 (Intel® AVX-512) instructions Intel® Secure Hash Algorithm (Intel® SHA) extensions  Intel® Memory Protection Extensions (Intel® MPX)  For more information about the technologies: http://www.intel.com/software/isa  

        Páginas

        Assine o Fóruns