We’re pleased to announce new version of Vectorization Assistant tool: Intel® Advisor XE 2016 Update 1.
Intel Advisor XE now supports Microsoft Windows* 10 and integrates into Microsoft Visual Studio* 2015.
We significantly improved performance and responsiveness of data loading and finalization in Survey, Trip Counts, MAP and Dependencies reports.
We have improved recommendations accuracy, and made them separate for C++ and Fortran codes. So that you’ll see more relevant code samples and recommendations.
You can now create Data Snapshot to transfer read-only result as a single file from a remote server to your workstation:
Linux OS system administrators and users will enjoy new capability to load/unload Advisor as an Environment Module when setting up product environment.
Summary pane
Advisor XE Vectorization Summary pane has gotten plenty of improvements. For example, now it has a list of top time consuming loops, so you can quickly focus on the hotspots and jump into details by clicking a loop hyperlink:
In “Refinement analysis data” section on Summary pane, we have added new column “Site Name”. This is a hyperlink to corresponding site (selected loop) on “Refinement” Tab.
Survey analysis
We have improved data representation in Survey report: parent-child relationship, filtering and highlighting. Also, we improved co-existence of Threading and Vectorization Advisor layouts.
Advisor XE now differentiates inlined functions in the Survey Top Down grid, so you know more about your application call tree:
Sometimes compiler can estimate loop trip count to be 1, and don’t generate actual loop in binary code. With Advisor XE 2016 Update 1 you can see those loops in Bottom Up and Top Down windows. Source location for completely unrolled loops and loops with trip count=1 is attributed to an outer loop source line:
We have improved outer loops vectorization analysis by introducing special Loop Type: “Inside Vectorized”. It helps to distinguish outer SIMD loops from their child loops, where vectorization is only done along the induction variable of parent loop.
With new ability to sort by loop selection column you can clearly see which loops from your long list were selected and manage that accordingly before running Dependencies or Memory Access Patterns analysis. Just click on the “Selection” column title (with the black drop icon):
Refinement analysis
We extended filtering capability to Refinement report, so you can manage Dependencies and Memory Access Patterns reports more efficiently:
Improved variable resolution in Memory Access or Dependencies Analysis allows you to see nested data objects, like C++ class members and understand which particular object has been loaded/stored in unit-stride or irregular manner:
We have added new “stride” type: Uniform Stride, that is accessing to the same memory location within a loop iterations: