Optimizing Applications using Intel® Compiler for Intel® Xeon® Processors

por Amanda K Sharp, Publicado: 10/13/2015, Última atualização: 03/25/2019

Optimization Steps

The key to performance measurement is two-fold, know exactly what you are measuring and collect your baseline data. Next, profile your application and identify a specific and realistic performance goal based on the profiling data. Follow these steps to optimize your software.

Vectorization Toolkit

Fundamental Concepts

The Intel Compilers provide a number of features for generating vectorized code. Auto-vectorization is the method used by the Intel Compilers to generate vectorized code for a given application without requiring code changes. Developers can also implement simple coding changes in the source code to enforce vectorization behavior. 

Intel Compiler Auto-vectorization (C++ | Fortran)

Vectorization Essentials

Common Vectorization Tips

Performance Essentials with OpenMP Vectorization (webinar)

Intermediate Techniques

Proven techniques for code optimizations and change recommendations are listed here. Note that these recommendations depend entirely upon the application. 

Fortran Array Data and Arguments and Vectorization

Explicit Vector Programming in Fortran

Data Alignment to Assist Vectorization

Outer Loop Vectorization

Random Number Function Vectorization

Optimization Reports

Code changes may be required in order to facilitate vectorization even further. Once a developer has made changes to the code, how does one that the changes elicit the expected behavior? Use of special compiler optimization reports to guide source code changes and verify that the code does indeed vectorize.

Vectorization and Optimization Reports

Advanced Methods

The techniques offering the most control require greater application knowledge and skill in knowing where they should be applied. But these more intensive techniques, such as intrinsics, can result in greater performance when properly used.

Intel Intrinsics Guide

References

Intel® Fortran Vectorization Diagnostics

Vectorization Diagnostics for Intel® C++ Compiler

Intel® Fortran Compiler Developer Guide and Reference

Intel® C++ Compiler Developer Guide and Reference

 

Informações de produto e desempenho

1

Os compiladores da Intel podem ou não otimizar para o mesmo nível de microprocessadores não Intel no caso de otimizações que não são exclusivas para microprocessadores Intel. Essas otimizações incluem os conjuntos de instruções SSE2, SSE3 e SSSE3, e outras otimizações. A Intel não garante a disponibilidade, a funcionalidade ou eficácia de qualquer otimização sobre microprocessadores não fabricados pela Intel. As otimizações que dependem de microprocessadores neste produto são destinadas ao uso com microprocessadores Intel. Algumas otimizações não específicas da microarquitetura Intel são reservadas para os microprocessadores Intel. Consulte os Guias de Usuário e Referência do produto aplicáveis para obter mais informações sobre os conjuntos de instruções específicos cobertos por este aviso.

Revisão do aviso #20110804