Open main menu

CDOT Wiki β

Changes

GPU621/Intel Advisor Assistant

602 bytes added, 22:24, 8 December 2021
no edit summary
== Group Members ==
1 [mailto:rramirez2@myseneca.ca?subject=GPU621 Ricardo Ramirez] 2 [mailto:pparichehreh1@myseneca.ca?subject=GPU621 Parsa Parichehreh] 3 [mailto:jpkoradiya@myseneca.ca?subject=GPU621 Jigarkumar Pritamkumar Koradiya]
== Introduction to Intel Advisor ==
• Threading
 
[[File:Intel Advisor Selector.png]]
== How to install Intel Advisor ==
The Intel Advisor is part of the oneAPI Base Toolkit. It is also possible to download a standalone tool which is available on Intel’s official website at  https://www.intel.com/content/www/us/en/developer/tools/oneapi/advisor.html and it is also a part of the Intel OneAPI Base Toolkit.
== Advantages of Using Intel Advisor ==
== How It Displays Information ==
A key feature of Intel Advisor is that it offers information to the user via a graphical user interface (GUI) or and Command Lineas well. Here in an example taken from the Intel Website site where we can see an example of vectorization and code insights offered by their applicationthe advisor:
[[File:IntelAdv01IntelAdvVectandCode.png]]
Here this offers several important pieces of information such as:
Memory Access Patterns will check for memory access issues with such as non-contiguous parts.
Dependencies analysis will check for real data dependencies in loops which the compiler failed to vectorize.
 
[[File:Survey Report Example.png]]
 
Here above we have a survey report run on MatLab code. This displays quick information on code, such as points where Intel Advisor feels would benefit from vectorization.
 
It shows as well information on number of times a loop was iterated on and recommendations which a programmer could use to vectorize their code:
[[File:Intel Advisor Unrolled.png]]
== Important Features of Intel Advisor ==
Below are few of the main features of the Intel Advisor:
===Optimize Vectorization for Better Performance===
Vectorization is one of the most important features of the Intel Advisor, it is an operation of Single instruction Multiple Data(SIMD) instructions on multiple data objects in parallel in single core of a CPU. This can very effectively increase performance by reducing loop overhead and making better use of math unit.
• Get actionable user code-centric guidance to improve vectorization efficiency.
//Screenshot if possible ===Model, Tune, and Test Multiple Threading Designs===
The Threading Advisor tool is applied to the model and tests the performance of various multi-threading designs such as OpenMP, Threading Building Blocks (TBB), and Microsoft Task Parallel Library (TPL) without limiting the development of the project. The tool achieves this by helping you with prototyping, testing the project's scalability for larger systems, and optimizing faster. It will also help identify issues before implementing parallelization.
The tool is primarily used for adding threading to the C, C++, C#, and Fortran languages.
[[File:IntelAdv02Image27.png]]
Flow Graph Analyzer – FGA is a ===Optimize for Memory and Compute===
The analysis gives a realistic visual representation of application performance against hardware-imposed conditions, such as memory bandwidth and computer capacity.
[[File:IntelAdv03.png]]
====Roofline Chart Data= The Roofline chart plots an application's achieved performance and arithmetic intensity against the machine's maximum achievable performance.===
The Roofline model is a visual performance model used to deliver performance estimations of a given application running on multi-core or many-core.
• Arithmetic intensity (x-axis) - measured in number of floating-point operations (FLOPs) or integer operations (INTOPs) per byte, based on the loop algorithm, and transferred between CPU/VPU and memory
• Arithmetic intensity (x-axis) - measured in number of floating-point operations (FLOPs) or integer operations (INTOPs) per byte, based on the loop algorithm, and transferred between CPU/VPU and memory
• Performance (y-axis) - measured in billions of floating-point operations per second (GFLOPS) or billions of integer operations per second (GINTOPS)
[[File:IntelAdv04.png]]
===Efficiently Offload Your Code to GPUs===
The Offload Advisor is an extended version of the Intel® Advisor, a code modernization, and performance estimation tool that supports OpenCL and SYCL/Data-Parallel C++ languages on CPU and GPU.
• It will Estimate estimate data-transfer costs and get guidance on how to optimize data transfer.
• Identify offload opportunities where it pays off the most.
[[File:IntelAdv05.png]]
===Create, Visualize, and Analyze Task and Dependency Computation Graphs===
Flow Graph Analyzer (FGA) is a rapid visual prototyping environment for applications that can be expressed as flow graphs using Intel Threading Building Blocks (Intel TBB) applications.
• Apart from TBB, it helps visualize DPC++ asynchronous task graphs, provides insights to task scheduling inefficiencies and analyzes open MP task dependencies for better performance
== Example of How to Use Intel Advisor Sources==Intel Advisor is available in either stand alone or as part of OneApi. Using it as part of its integration into Visual Studio, here we run through some basic steps using the code from Workshop 03 (Matmul) for demonstration:Step One – Launching AdvisorLaunching Intel Advisor, found under Tools/Intel Advisor: [[File:IntelAdv06.png]] Which opens the following window: [[File:IntelAdv07.png]]
Here we will select Vectorization Design code for parallelism and Code Insights first and get the when running a survey offloading with Intel® advisor. Intel. (using the play key on the left menun.d.). Retrieved November 29, 2021, from https: [[File:IntelAdv08//www.intel.com/content/www/us/en/developer/tools/oneapi/advisor.html#gs.hpo78b.png]]
Selecting the Characterization section on the right and running that will give Run a roofline analysis. Intel. (n.d.). Retrieved November 29, 2021, from https://www.intel.com/content/www/us /en/develop/documentation/advisor-tutorial-roofline/top/run-a Roofline report:-roofline-analysis.html.
[[FileDesign code for parallelism and offloading with Intel® advisor. Intel. (n.d.). Retrieved December 6, 2021, from https:IntelAdv09//www.intel.com/content/www/us/en/developer/tools/oneapi/advisor.html.png]]
== Progress ==Get started with Intel advisor. Intel. (n.d.). Retrieved December 6, 2021, from https://www.intel.com/content/www/us/en/develop/documentation/get-started-with-advisor/top.html.
6
edits