Changes

Jump to: navigation, search

GPU621/Intel Advisor

839 bytes added, 10:57, 28 November 2018
Vectorization Advisor
== Introduction ==
[https://software.intel.com/en-us/advisor Intel Advisor] is software tool that you can use to help you add multithreading to your applicatin application or parts of your application without disrupting your normal software development. Not only can you use it add multithreading to your application, it can be used to determine whether the performance improvements that come with multithreading are worth adding when you consider the costs associated with multithreading such as maintainability, more difficult to debug, and the effort with refactoring or reorganizing your code to resolve data dependencies.
It is also a tool that can help you add vectorization to your program or to improve the efficiency of code that is already vectorized.
= Vectorization Advisor =
The Vectorization Advisor is a tool for optimizing your code through vectorization. This tool will help identify loops that that are high-impact and under-optimized, It also reports on what blocking loops from being vectorized and details on where it is safe to ignore the compiler's warnings and force vectorization. Finally it offers in-line code specific recommendations on how to fix these issues.
== Roofline Analysis ==
After Identifying what loops benefit the most from vectorization you can simple select them individually to run more detailed report on them.
 
[[File:Select-Individual-Loops-Example.png]]
== Data Dependencies Report ==
== Annotations ==
Annotations can be inserted into your code to help design the potential parallelization for analysis. This way of designing multi threading prevents early error in the code's design to build up and cause slower performance then expected. This does not impact the design of your current code as the compiler ignores the annotations (they're only there to help model your design). This provides you with the ability to keep your code serial and prevents the bugs that can come from multiple threading while in your design phase.
[[File:Annotation-Example.pngjpg]]
== Scalability Analysis ==
Enables the evaluation of the performance and Scalability scalability of the various threading designs. This helps with identifying The evaluation of the number of CPU's versus the Grain-size provides an easy to follow results on the impact of overheadthe common bottle necks found in all multi threading code when attempting to scale up a project without the need to test it on multiple high end machines yourself.   [[File:Scalabilty-Analysis-Example.png]] == Dependencies Report == The threading advisor's dependencies report works similar to the vectorization's. lock contention It will provide information on the data dependency errors a programmer encounters when parallelizing code including data-sharing, deadlocks, and load imbalances when running races. The report also displays code snippets it finds is related to the dependency errors you can then follow these code snippets to their exact location and begin handling the errors on different hard-warea case by case basis.  = Work Flow = With these two tool we can start to come up with a work flow for optimizing our code.
[[File:ScalabiltyWork-AnalysisFlow-Example.jpgpng]]
= Vectorization =
50
edits

Navigation menu