Intel Advisor
{{Short description|Software analysis tool}}
{{Infobox software
| name = Intel Advisor
| developer = [http://software.intel.com/en-us/intel-sdp-home/ Intel Developer Products]
| released =
| latest release version = 2021.4
| latest release date = {{Release date and age|2021|10|01}}{{cite web|title=Intel® Advisor Release Notes and New Features|url=https://software.intel.com/content/www/us/en/develop/articles/intel-advisor-release-notes.html}}
| operating_system = Windows and Linux (UI-only on macOS)
| genre = Profiler
| license = Free and commercial support
| website = {{url|https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/advisor.html}}
}}
Intel Advisor (also known as "Advisor XE", "Vectorization Advisor" or "Threading Advisor") is a design assistance and analysis tool for SIMD vectorization, threading, memory use, and GPU offload optimization. The tool supports C, C++, Data Parallel C++ (DPC++), Fortran and Python languages. It is available on Windows and Linux operating systems in form of Standalone GUI tool, Microsoft Visual Studio plug-in or command line interface.{{Cite web|title=Command Line Use Cases|url=https://www.intel.com/content/www/us/en/develop/documentation/advisor-user-guide/top/command-line-interface/command-line-use-cases.html|access-date=2021-01-05|website=Intel|language=en}} It supports OpenMP (and usage with MPI). Intel Advisor user interface is also available on macOS.
Intel Advisor is available for free as a stand-alone tool or as part of the Intel oneAPI Base Toolkit. Optional paid commercial support is available for the oneAPI Base Toolkit.
Features
= Vectorization optimization =
Vectorization is the operation of Single Instruction Multiple Data (SIMD) instructions (like Intel Advanced Vector Extensions and Intel Advanced Vector Extensions 512) on multiple objects in parallel within a single CPU core. This can greatly increase performance by reducing loop overhead and making better use of the multiple math units in each core.
Intel Advisor helps find the loops that will benefit from better vectorization, identify where it is safe to force compiler vectorization.{{Cite web|title=Optimize Vectorization Aspects of a Real-Time 3D Cardiac...|url=https://www.intel.com/content/www/us/en/develop/documentation/advisor-cookbook/top/optimize-vectorization-aspects-of-a-real-time-3d-cardiac-electrophysiology-simulation.html|access-date=2021-01-07|website=Intel|language=en}} It supports analysis of scalar, SSE, AVX, AVX2 and AVX-512-enabled codes generated by Intel, GNU and Microsoft compilers auto-vectorization. It also supports analysis of "explicitly" vectorized codes which use OpenMP 4.x and newer as well as codes or written using C vector intrinsics or assembly language.{{Cite web|last=|first=|date=|title=HPC Code Modernization Tools|url=https://indico.cern.ch/event/392043/attachments/784430/1075311/HPC_codes_modernization_tools_2.pdf|access-date=|website=}}{{Cite web|title=Новый инструмент анализа SIMD программ — Vectorization Advisor|url=https://habr.com/ru/company/intel/blog/255731/|access-date=2021-01-05|website=habr.com|language=ru}}
= Automated Roofline analysis =
Intel Advisor automates the Roofline Performance Model first proposed at Berkeley{{Cite web|url=https://people.eecs.berkeley.edu/~waterman/papers/roofline.pdf|title=Roofline: An insightful Visual Performance model for multicore Architectures|last=Williams|first=Samuel|date=April 2009|website=University of Berkeley|access-date=2017-03-29|archive-date=2016-12-06|archive-url=https://web.archive.org/web/20161206105533/https://people.eecs.berkeley.edu/~waterman/papers/roofline.pdf|url-status=dead}} and extended at the University of Lisbon.{{Cite web|url=http://www.inesc-id.pt/ficheiros/publicacoes/9068.pdf|title=Cache-aware Roofline model: Upgrading the loft|last=Ilic|first=Aleksandar|website=Instituto de Engenharia de Sistemas e Computadores Investigação e Desenvolvimento em Lisboa}}
File:Roofline_in_Intel_Advisor.png
Advisor "Roofline Analysis" helps to identify if given loop/function is memory or CPU bound. It also identifies under optimized loops that can have a high impact on performance if optimized.{{cite web |title=Roofline Analysis in Intel Advisor 2017: youtube how-to video |website = YouTube|url=https://www.youtube.com/watch?v=h2QEM1HpFgg}}{{cite web |title=Intel Advisor Roofline step-by-step Tutorial |url=https://software.intel.com/en-us/advisor-tutorial-roofline}}{{cite web |title=Using Roofline Model and Intel Advisor, presented by Sam Williams, Roofline performance model author |url=https://exascaleproject.org/event/using-the-roofline-model/}}{{Cite web|title=Case Study: SimYog Improves a Simulation Tool Performance by 2x with...|url=https://www.intel.com/content/www/us/en/develop/articles/case-study-simyog-improves-simulation-tool-performance-with-advisor.html|access-date=2021-01-07|website=Intel|language=en}}
Intel Advisor also provides an automated memory-level roofline implementation that is closer to the classical Roofline model. Classical Roofline is especially instrumental for high performance computing applications that are DRAM-bound. Advisor memory level roofline analyzes cache data and evaluates the data transactions between different memory layers to provide guidance for improvement.{{Cite web|title=Memory-Level Roofline Model with Intel® Advisor|url=https://www.intel.com/content/www/us/en/develop/articles/memory-level-roofline-model-with-advisor.html|access-date=2021-01-05|website=Intel|language=en}}
Intel Advisor roofline analysis supports code running on CPU or GPU.{{Cite web|title=CPU / Memory Roofline Insights Perspective|url=https://www.intel.com/content/www/us/en/develop/documentation/advisor-user-guide/top/optimize-cpu-usage/cpu-roofline-perspective.html|access-date=2021-01-05|website=Intel|language=en}}{{Cite web|title=GPU Roofline Insights Perspective|url=https://www.intel.com/content/www/us/en/develop/documentation/advisor-user-guide/top/design-for-gpu-offload/gpu-roofline-perspective.html|access-date=2021-01-05|website=Intel|language=en}} It also supports integer based applications - that is heavily used in machine learning, big data domains, database applications, financial applications like crypto-coins.{{Cite web|title=Integer Roofline Modeling in Intel® Advisor|url=https://www.intel.com/content/www/us/en/develop/articles/a-brief-overview-of-integer-roofline-modeling-in-intel-advisor.html|access-date=2021-01-05|website=Intel|language=en}}
= Threading prototyping =
Software architects add code annotations to describe threading that are understood by Advisor, but ignored by the compiler. Advisor then projects the scalability of the threading and checks for synchronization errors. Advisor Threading "Suitability" feature helps to predict and compare the parallel SMP scalability and performance losses for different possible threading designs. Typical Suitability reports are shown on Suitability CPU screen-shot on the right side. Advisor Suitability provides dataset size (iteration space) modeling capabilities and performance penalties break-down (exposing negative impact caused by Load Imbalance, Parallel Runtimes Overhead and Lock Contention).{{cite web|title=How to model suitability using Advisor XE 2015?|url=https://software.intel.com/en-us/articles/how-to-model-scalability-using-intel-advisor-xe-2015?language=it}}File:IntelAdvisorSuitabilityCPU.png
= Offload modelling =
Advisor adds GPU offload performance modeling feature in the 2021 release. It collects application performance characteristics on a baseline platform and builds analytical performance model for target (modelled) platform.
This provides performance speedup estimation on target GPUs and overhead estimations for offloading, data transfer and scheduling region execution and pinpoints performance bottlenecks.{{Cite web|title=Offload Modeling Resources for Intel® Advisor Users|url=https://www.intel.com/content/www/us/en/develop/articles/offload-modeling-resources-for-intel-advisor-users.html|access-date=2021-01-05|website=Intel|language=en}}{{Cite web|title=Identify Code Regions to Offload to GPU and Visualize GPU Usage (Beta)|url=https://www.intel.com/content/www/us/en/develop/documentation/advisor-cookbook/top/design-and-optimize-application-with-offload-advisor.html|access-date=2021-01-05|website=Intel|language=en}}{{Cite web|title=Offload Modeling Perspective|url=https://www.intel.com/content/www/us/en/develop/documentation/advisor-user-guide/top/design-for-gpu-offload/offload-modeling-perspective.html|access-date=2021-01-05|website=Intel|language=en}} This information can serve for choosing offload strategy: selecting regions to offload and anticipate potential code restructuring needed to make it GPU-ready.
Customer usage
Intel Advisor is used by Schlumberger,{{cite web |title=Schlumberger* - Parallelize Oil and Gas software with Intel Software products |url=http://goparallel.sourceforge.net/wp-content/uploads/2013/12/Intel_ESS_Schlumberger_Case_Study_LRs_002.pdf}} Sandia national lab, and others{{cite web |title="Leading design" company Advisor XE case study |url=http://download-software.intel.com/sites/default/files/advisor-xe-case-study.pdf |archive-url=https://web.archive.org/web/20140416175636/http://download-software.intel.com/sites/default/files/advisor-xe-case-study.pdf |url-status=dead |archive-date=April 16, 2014 }} for design and parallel algorithm research and Vectorization Advisor capabilities known to be used by LRZ and ICHEC,{{Cite web|url=http://software.intel.com/en-us/intel-advisor-xe/reviews|title = Design Code for Parallelism and Offloading with Intel® Advisor}} Daresbury Lab,{{cite web|title=Computer-Aided Formulation case study: getting helping hand from the Vectorization Advisor|url=http://software.intel.com/articles/get-a-helping-hand-from-the-vectorization-advisor}} Pexip.{{cite web|title=Pexip Speeds Enterprise-Grade Videoconferencing|url=https://software.intel.com/sites/default/files/managed/77/ea/pexip-case-study.pdf}}
The step-by-step workflow is used by academia for educational purposes.{{cite web |title=Supercomputing'2012 HPC educator with Slippery Rock University |url=http://sc12.supercomputing.org/hpceducator/NiftyParallelism/index.html}}
See also
- [https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/inspector.html Intel Inspector]
- [https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/vtune-profiler.html Intel VTune Profiler]
- [https://software.intel.com/content/www/us/en/develop/tools/oneapi/base-toolkit.html Intel oneAPI Base Toolkit]
- oneAPI (compute acceleration)
- Intel Developer Zone (Intel DZ; support and discussion)
References
{{reflist}}
External links
- {{Official website}}
- [http://software.intel.com/articles/get-a-helping-hand-from-the-vectorization-advisor "Get a Helping Hand from the Vectorization Advisor" - Hartree case study with reference to Unilever and other CAF applications]
- [https://doc.itc.rwth-aachen.de/display/VE/aiXvectorize "aixVectorize" Vectorization and Tuning workshop at RWTH] {{Webarchive|url=https://web.archive.org/web/20171015030705/https://doc.itc.rwth-aachen.de/display/VE/aiXvectorize |date=2017-10-15 }}:
- [https://doc.itc.rwth-aachen.de/download/attachments/20775798/Programming_SIMD_Advisor_part2.pdf?version=1&modificationDate=1448273651000&api=v2 aixVectorize "HPC Codes Modernization using Intel (Vectorization) Advisor" tutorial foils] {{Webarchive|url=https://web.archive.org/web/20160304220749/https://doc.itc.rwth-aachen.de/download/attachments/20775798/Programming_SIMD_Advisor_part2.pdf?version=1&modificationDate=1448273651000&api=v2 |date=2016-03-04 }}
- [https://doc.itc.rwth-aachen.de/download/attachments/20775798/aixVectorize_Vector_Tutorial.tgz?version=1&modificationDate=1447405798000&api=v2 aixVectorize aixVectorize labs and samplecode] {{Webarchive|url=https://web.archive.org/web/20151222133548/https://doc.itc.rwth-aachen.de/download/attachments/20775798/aixVectorize_Vector_Tutorial.tgz?version=1&modificationDate=1447405798000&api=v2 |date=2015-12-22 }}
- [http://goparallel.sourceforge.net/wp-content/uploads/2013/12/Intel_ESS_Schlumberger_Case_Study_LRs_002.pdf Schlumberger* - Parallelize Oil and Gas software with Intel Software products]
- [http://download-software.intel.com/sites/default/files/advisor-xe-case-study.pdf Anonymous "leading design" company case study with Advisor XE] {{Webarchive|url=https://web.archive.org/web/20140416175636/http://download-software.intel.com/sites/default/files/advisor-xe-case-study.pdf |date=2014-04-16 }}
- [http://web.kudpc.kyoto-u.ac.jp/manual/en/compiler/intel_advisor Kyoto University SuperComputing center user guide on Advisor XE usage on Linux] {{Webarchive|url=https://web.archive.org/web/20140416210338/http://web.kudpc.kyoto-u.ac.jp/manual/en/compiler/intel_advisor |date=2014-04-16 }}
- [https://software.intel.com/en-us/articles/how-to-use-intel-advisor-xe-2015-to-model-suitability-on-an-intel-xeon-phi-coprocessor How to use Intel® Advisor XE 2015 to model suitability on an Intel® Xeon Phi™ coprocessor]
- [https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/inspector.html Intel Inspector Product Page]
{{Intel software}}