Intel® Vtunetm Amplifier and Advisor

Intel® Vtunetm Amplifier and Advisor

Performance analysis tools: Intel® VTuneTM Amplifier and Advisor Dr. Luigi Iapichino [email protected] Which tool do I use in my project? A roadmap to optimisation After having considered the MPI layer, now let’s look at the node-level performance. Three main features of HPC application for two tools: ➢ Threading parallelism; ➢ Vectorisation; ➢ Memory access. more informations: 2 Profiling tools Intel “The Parallel Universe”, 23, p.4 Profiling with Intel® VTuneTM Amplifier XE ● Powerful tool for analysing the node-level performance ➢ Multiple programming languages (C/C++, Fortran, .NET, Java, Assembly) ➢ Support for all latest Intel® processors (incl. Intel® Xeon Phi and Skylake micro-architectures) ● Performance analysis at different levels ➢ High-level (code analysis, parallelisation efficiency), no special rights needed ➢ Low-level (inspection of all architectural components), module driver is required ➢ Processor-specific analysis (e.g., utilisation of vector units) ● Minimal execution time overhead ➢ No recompilation or special linking needed ➢ H/W counter sampling and multiplexing → all interesting events gathered once ● Multiplatform (Windows/Linux, 32/64-bit) + complete command-line interface ● Can produce very large traces (~400MB per min. of exec. time) 3 Intel VTune Amplifier XE Hot-spot guided optimisation Typical workflow 1.Compile code with -g -O2 or -g -O3 2.Set the environment variables or use a wrapper script 3.Tweak code input for a short representative run 4 Intel VTune Amplifier XE Performance overview Wall-clock time Cumulative CPU time Performance bottlenecks are highlighted in red Overall CPU usage 5 Intel VTune Amplifier XE Threads behaviour Function level profiling Time line of the application 6 Intel VTune Amplifier XE Threads behaviour: locks and waits Threads sleeping Threads are spinning! Useful work Concurrency Synchronization 7 Intel VTune Amplifier XE Source code view Source line 8 Intel VTune Amplifier XE Types of analysis in VTune Vtune is a very rich tool, offering a wide range of options. Most relevant analyses for HPC users: ● Advanced hotspots (early overview) ● HPC performance ● Memory access ● Locks-and-waits ● General exploration (how is the application behaving in the core pipeline?) ● Storage device / Disk IO ... 9 Intel VTune Amplifier XE HPC-Performance analysis Main HPC diagnostics: CPU Utilisation ➢ Serial fraction ➢ OpenMP performance ➢ CPU usage hystogram Memory Access ➢ Stalls by memory hierarchy ➢ Bandwidth utilisation Vectorization ➢ FPU utilisation More targeted tools are available. 10 Intel VTune Amplifier XE Focus on OpenMP Hotspots; Bottom-up; Grouping → OpenMP region / Function / Call Stack Useful view in the source of inefficiencies of OpenMP regions. 11 Intel VTune Amplifier XE Memory access analysis Memory usage; Bottom-up; Grouping → Bandwidth Domain Where are my data, and how do they move? Explore cache misses. Optimise NUMA latency and scalability Auto detect system bandwidth Intel® Xeon PhiTM processor MCDRAM (high bandwidth memory) analysis supported. 12 Intel VTune Amplifier XE Closing remarks The tool is useful and can be used to detect: ● Hotspots in the code and possible bottlenecks ● Characterisation of the parallelisation efficiency ● Possible locks and spinning threads in the application ● More advanced profiling is provided using special kernel modules (memory bandwidth, hardware event-based sampling,…) ● Advanced: instrumenting the code for reducing the amount of profiling part in the application More on vectorisation, memory access and performance profiling: Intel® Advisor. 13 Intel VTune Amplifier XE Intel® Advisor 14 Profiling with Intel® Advisor ● Modern HPC processors explore different level of parallelism: between the cores (multi-threading), within a core (vectorisation) ● Adapting applications to take advantage of so high parallelism is defined often as code modernisation ● Intel® Advisor is a software tool for vectorisation optimisation and thread prototyping ● The tool guides the software developer to resolve issues during the vectorisation process 15 Intel Advisor Creating a new project via GUI Interface similar to VTune 16 Intel Advisor Setting up the application Command-line parameters Environment variables 17 Intel Advisor Vectorisation analysis workflow Start Edit & 1. Run Survey compile Take Snapshot 2. Check the Trip- counts 4. Check Memory Access Patterns D ee pe (Mark-up r-d ive Loops) an aly 3. Check sis Dependencies 18 Intel Advisor Five steps to efficient vectorisation 19 Intel Advisor Profiling with Advisor: summary Main features of the run Overall quality of vectorisation Hotspots for vectorisation 20 Intel Advisor Profiling with Advisor: survey How to improve performance ISA Hot-spots What prevents vectorisation Report from the loop 21 Intel Advisor Profiling with Advisor: survey – loop analytics Number of vector registers Vectorisation informations Traits Loop features 22 Intel Advisor Profiling with Advisor: survey - recommendations Useful suggestion Recommendations to enable vectorisation 23 Intel Advisor Example: loop vectorised but with low efficiency Vector length Vectorization efficiency Loop analytics 24 Intel Advisor Same loop, after extensive optimisation 25 Intel Advisor Memory access pattern Stride distribution 26 Intel Advisor Roofline model and performance Peak performance of 2-socket Ivy-Bridge node Peak: 448 GFlops/s ● How do I Stream BW: evaluate if a 78.5 GB/s code / a loop / a function has potential for optimisation? ● What are my optimisation targets? ● When am I “satisfied” with the optimisation? 27 Intel Advisor Roofline analysis: unoptimised loop 28 Intel Advisor Roofline analysis: after optimisation 29 Intel Advisor Closing remarks: vectorisation methodology in six steps 1.Measure baseline release build performance: define a metric which makes sense for the code 2.Determine hotspots using Intel® VTune: most-time consuming functions in the application 3.Determine loop candidates using compiler report: -qopt-report=5 -qopt-report-phase=loop,vec 4.Get advise using Intel® Advisor: use the vectorisation analysis capability of the tool 5.Implement vectorisation recommendations more informations: 30 Intel Advisor https://software.intel.com/en- us/articles/vectorization-toolkit Summary Intel® VTuneTM Amplifier: rich tool for profiling and improving the node- level performance of HPC applications (and much more) VTune website: https://software.intel.com/en-us/intel-vtune- amplifier-xe Intel® Advisor: focused on vectorisation and memory access. It allows to easily produce the roofline survey of an application. Advisor website: https://software.intel.com/en-us/advisor Acknowledgements Thanks to Heinrich Bockhorst (Intel) for providing me with training material, as starting point for this tutorial. 31 Summary Summary Intel® Application Performance Snapshot: first overview of an application, planning of the next optimisation steps. APS website: https://software.intel.com/sites/products/snapshots/ application-snapshot/ Intel® Trace Analyzer and Collector: analysis and modernisation of the MPI layer of the code. ITAC website: https://software.intel.com/en-us/intel-trace-analyzer Intel tutorial on ITAC: https://software.intel.com/en-us/node/561850 Acknowledgements Thanks to Heinrich Bockhorst (Intel) for providing me with training material, as starting point for this tutorial. 32 Summary.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    32 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us