Vectorization and Code Insights Perspective
- View the main performance metrics of your program in theProgram Metricspane. The section is broken down into several sub-sections:
- ThePerformance characteristicssub-section shows you execution time details. It can tell you how much space for vectorization your application has.
- TheVectorization Gain/Efficiencythat shows you estimated speedup. It can tell you how much space for improvement and optimization your application has in already vectorized loops/functions.
- View recommended changes that might help you to improve the overall performance of your application on thePer program recommendationssection.
- View top five time-consuming loops sorted by self time with performance metrics in theTop time-consuming loopssection. You are recommended to start with the loops listed in this section when checking for performance issues.
- View top five optimization recommendations with the highest confidence and loop/function self time in theRecommendationssection. The recommendation listed in the section are the recommended first steps for optimization.
How It Works
- Get integrated compiler report data and performance data by running aSurveyanalysis.It helps you identify:
- Where vectorization, or parallelization with threads, will pay off the most
- If vectorized loops are providing benefit, and if not, why not
- Un-vectorized loops and why they are not vectorized
- Performance problems in general
- Identify the number of times loops are invoked and execute and the number of floating-point and integer operations by running theCharacterizationanalysis. It measures the call count/loop count and iteration count metrics for your application. Enable to make better decisions about your vectorization strategy for particular loops, as well as optimize already-vectorized loops.
- Check for various memory issues by running theMemory Access Patterns (MAP)analysis. It can warn you about non-contiguous memory accesses, unit stride vs. non-unit stride accesses, or other issues. Enable to identify issues that could lead to significant vector code execution slowdown or block automatic vectorization by the compiler.
- Check for data dependencies in loops the compiler did not vectorize by running theDependenciesanalysis. The Dependencies analysis checks for real data dependencies and if real dependencies are detected, provides additional details to help resolve them. Choose to identify and better characterize real data dependencies that could make forced vectorization unsafe.
- Analysis Workflowtab - Review the controls available to configure the perspective workflow for your application.
- Vectorization Summary- Review a results summary that includes the most important information about your application performance.
- Surveyreport - Review the controls available to help you focus on the performance data most important to you.
- Refinementreport - Review the controls available to help you investigate the dependencies and memory issues of your application.