Quantcast
Channel: C#
Viewing all articles
Browse latest Browse all 1853

Add Efficient SIMD Parallelism to C++ Code Using the Vectorization Advisor - Windows* OS

$
0
0

Intel Advisor offers Vectorization Advisor, a vectorization optimization tool, and Threading Advisor, a threading design and prototyping tool, to help ensure your Fortran, C and C++ native/managed applications realize full performance potential on modern processors, such as Intel® Xeon Phi™ processors. This topic is part of a tutorial that shows how to use the Vectorization Advisor on a Windows* platform to add efficient SIMD parallelism to a C++ sample application.

Follow these steps to use the Vectorization Advisor and the vec_samples C++ sample application to:

  • Identify loops that will benefit most from vectorization.

  • Identify what is blocking effective vectorization.

  • Increase the confidence that vectorization is safe.

  • Explore the benefit of alternative data reorganizations.

Step

Step Detail

Step 1: Prepare for tutorial.

Do one of the following:

Step 2: Establish a performance baseline.

  • Run a Survey Analysis.

  • Save a result snapshot.

  • Get to know the Survey Report.

  • Assess performance.

Step 3: Disambiguate pointers.

  • Rebuild the target with the NOALIAS macro.

  • Re-run the Survey Analysis and run a Trip Counts Analysis.

  • Save a result snapshot.

  • Assess impact on performance.

Step 4: Generate instructions for the highest instruction set available.

  • Rebuild the target with the /QxHost option.

  • Re-run the Survey Analysis.

  • Save a result snapshot.

  • Assess impact on performance.

Step 5: Handle dependencies.

  • Run a Dependencies Analysis.

  • Save a result snapshot.

  • Get to know the Dependencies-focused Refinement Report.

  • Assess dependencies.

  • Rebuild the target with the REDUCTION define.

  • Re-run the Survey Analysis.

  • Save a result snapshot.

  • Assess impact on performance.

Step 6: Analyze memory access patterns.

  • Run a Memory Access Patterns Analysis.

  • Save a result snapshot.

  • Assess memory issues.

Step 7: Reorganize code.

  • Rebuild the target with the NOFUNCCALL macro.

  • Re-run the Survey Analysis.

  • Save a result snapshot.

  • Assess impact on performance.

  • Compare final performance to baseline performance.


Viewing all articles
Browse latest Browse all 1853

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>