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

Enhancing In-Vehicle-Infotainment Application Reliability and Performance using Intel® System Studio
Por Naveen Gv (Intel)Publicado em 10/13/20140
Intel based solution is available to reduce the time and cost of developing in-vehicle technologies by providing application-ready solutions consisting of compute modules, automotive middleware and development kits. Intel® System Studio can be used in various stages of In-Vehicle-Infotainment dev...
Intel® System Studio Case Studies
Por Naveen Gv (Intel)Publicado em 10/13/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.
Digital Security and Surveillance on 4th generation Intel® Core™ processors Using Intel® System Studio 2015
Por Naveen Gv (Intel)Publicado em 10/08/20140
This article presents the advantages of developing embedded digital video surveillance systems to run on 4th generation Intel® Core™ processor with Intel® HD Graphics, in combination with the Intel® System Studio 2015 software development suite. While Intel® HD Graphics is useful for developing...
Memory profiling techniques using Intel System Studio
Por Naveen Gv (Intel)Publicado em 10/08/20140
Intel Inspector for Systems is dynamic and static analyzer identifies difficult to find memory and threading errors to ensure functional reliability
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
        Suggestion about memory-access-signaling mechanism
        Por Luchezar B.3
        Hello, while I was trying to solve some particular multi-thread problem, it occurred to me that it could be solved more efficiently with special assistance from the CPU. The situation is as follows: say one thread needs to block until the content of a particular 4-byte (or can be other size) location in the memory is changed. (It think the usefulness of this is very obvious and there is no need to give concrete examples to demonstrate it). What are the currently available options:  1) the thread can spin-wait, but this is very inefficient because wastes CPU time/power.  2) spin-wait but with sleeping for some small time in the spin loop. This would preserve CPU time and power, but is not good if fast reaction is needed .  3) the thread can use some OS primitive (e.g. semaphore) to sleep and any other thread that writes to the memory location will also signal the OS primitive. The problems here are that :   a) the signaling thread must know about this primitive. This can be a problem...
        TSX results - please explain
        Por hasyed12
        I am using Roman Dementiev's code as a base and modifying it to determine if TSX operations are behaving according to expectations. https://software.intel.com/en-us/blogs/2012/11/06/exploring-intel-transactional-synchronization-extensions-with-intel-software I am counting the number of times that xbegin() returns successful, the number of times it aborts and the number of times that fallback lock is used. If I increase the number of threads that are launched, the number of fallback lock's increases proportionally. Similarly, the number of aborts increases proportionally. Originally, two threads were launched. I add the following code. HANDLE thread3 = (HANDLE) _beginthreadex(NULL, 0, &thread_worker, (void *)3, 0, NULL); HANDLE thread4 = (HANDLE) _beginthreadex(NULL, 0, &thread_worker, (void *)4, 0, NULL); .. .. WaitForSingleObject( thread3, INFINITE ); WaitForSingleObject( thread4, INFINITE ); --- --- --- I was hoping to see similar results, when I increase the size o...
        An updated instruction set extensions programming reference (revision 22) was posted.
        Por Mark Charney (Intel)2
        An updated instruction set extensions programming reference (revision 22) was posted. http://www.intel.com/software/isa    
        Other loads during Gather instruction?
        Por Mark T.5
        I see that the latency for a vpgatherdd is 18 clocks. I am thinking that other load type instructions can execute while the vpgatherdd is still working, since it only performs 8 loads while the processor can issue one load per clock. Is that correct?
        Processing of data in SSE/AVX/AVX2
        Por Samuel Š.20
        Hello! Im working on my project and Im looking for the answer: When Im processing 256-bits of data, is better to use (in one core) for this one whole YMMx register or to split them for 2x128-bits and process them through 2 XMMx registers at different ports, hence on different SSE/AVX unit (in Sandy Bridge there are 3 ports per core for AVX)?  Which option is faster? And I would be glad to see if anyone of you have some documents about SSE1-5/AVX/AVX2 which go into the details. I have many documents from this official site and there are many of non-official sites about these extensions but I need more specific informations (for ex. implementation limits, reduction of code using more operands, some examples for matrix packed calculations,  and so on). Thank you!
        Processing of data in SSE/AVX/AVX2
        Por Samuel Š.3
        Hello! Im working on my project and Im looking for the answer: When Im processing 256-bits of data, is better to use (in one core) for this one whole YMMx register or to split them for 2x128-bits and process them through 2 XMMx registers at different ports, hence on different SSE/AVX unit (in Sandy Bridge there are 3 ports per core for AVX)?  Which option is faster? And I would be glad to see if anyone of you have some documents about SSE1-5/AVX/AVX2 which go into the details. I have many documents from this official site and there are many of non-official sites about these extensions but I need more specific informations (for ex. implementation limits, reduction of code using more operands, some examples for matrix packed calculations,  and so on). Thank you!
        Intel SDE control
        Por Milan R.4
        Hello, I'm using Intel SDE in Linux, version 7.8.0 and I wish to count some of the floating point instructions executed by the application. I'm using -mix tool to get the number of instructions. Is there any way to control Intel SDE, some events to start and stop the counting? I would like to instrument just a part of the application, but I don't have an access to applications' source code. Thanks and regards, Milan
        Strange IPC behavior
        Por Patrick P.5
        Following discussion https://communities.intel.com/message/257079 I am creating this thread to get some help in explaining a strange behavior in the time taken by some instructions on Intel CPU. In short, I am measuring the IPC of a program in two cases: Case 1: when I skip 29 instructions in the control flow of the program, Case 2: when I execute them. For the case 1, I get the following perf : 23431,087207 task-clock # 0,976 CPUs utilized 2 109 context-switches # 0,000 M/sec 4 CPU-migrations # 0,000 M/sec 11 888 page-faults # 0,001 M/sec 49 043 462 004 cycles # 2,093 GHz [50,06%] <not supported> stalled-cycles-frontend <not supported> stalled-cycles-backend 30 713 070 462 instructions # 0,63 insns per cycle [75,02%] 4 492 657 867 branches # 191,739 M/sec ...
        Assine o Fóruns