Quantcast
Channel: Intel Developer Zone Articles
Viewing all articles
Browse latest Browse all 327

Overview of Vectorization Reports and new vec-report6

$
0
0
Overview of vectorization report

Compiler Methodology for Intel® MIC Architecture

Vectorization Essentials, Vectorization and Optimization Reports, Overview of vectorization reports and new vec-report6

Existing –vec-report levels (0 to 5) controls emission of the following vectorization report messages:

  1. Success: “LOOP WAS VECTORIZED”
  2. Unsucessful: “loop was not vectorized: << few words of reason >>”
  3. Reason, dependence information: “dependence from xx to yy”

The least verbose is –vec-report0 (default) which emits no messages. The most verbose is –vec-report3 which emits all 3 kinds of messages.

The version 13.0 compiler implementation added one new level of report or category. Recently added level –vec-report6 emits all 3 kinds similar to vec-report3, plus adding greater detail from the vectorizer.  REVIEW THE -vec-report COMPILER OPTION

For example, under –vec-report3, an example output message might be “loop was not vectorized: unsupported data type”. With –vec-report6, it’ll be followed by “vectorization support: type TTT is not supported for operation OOO”. The customer can then attempt to change the data type and/or the operator.

A few sample messages. These are informational in nature, to help the programmer understand vector code behavior and/or failed vectorization attempt.

foo0.c(8): (col. 12) remark:loop was not vectorized: statement cannot be vectorized.

foo0.c(8): (col. 12) remark: vectorization support: call to function bar cannot be vectorized.

foo1.c(8): (col. 3) remark: LOOP WAS VECTORIZED
foo1.c(8): (col. 3) remark: vectorization support: unroll factor set to 4. vectorization support: unaligned access used inside loop body

vectorization support: call to function %s cannot be vectorized
vectorization support: call to function %s cannot be vectorized with given fp model
vectorization support: assignment cannot be vectorized for variable <<variable_name>>
vectorization support: unsupported reduction <<operator>>
vectorization support: vectorization of single precision division of product and converted double precision is not safe
vectorization support: scalar type occupies entire vector
vectorization support: reference %s has aligned access
vectorization support: reference %s has unaligned access
vectorization support: vectorization of this loop under -Os has impact on code size
vectorization support: %s
vectorization support: unroll factor set to %s
vectorization support: type long long is not supported as indices on given target architecture
vectorization support: type char is not supported for operation %s
vectorization support: type short is not supported for operation %s
vectorization support: type int is not supported for operation %s
vectorization support: type long long is not supported for operation %s
vectorization support: type float is not supported for operation %s
vectorization support: type double is not supported for operation %s
vectorization support: type complex float is not supported for operation %s
vectorization support: type complex double is not supported for operation %s
vectorization support: unaligned %s will be scalarized
vectorization support: conversion from int to float will be emulated
vectorization support: conversion from float to int will be emulated
vectorization support: streaming store was generated for %s

NEXT STEPS

It is essential that you read this guide from start to finish using the built-in hyperlinks to guide you along a path to a successful port and tuning of your application(s) on Intel® Xeon Phi™ coprocessor. The paths provided in this guide reflect the steps necessary to get best possible application performance.

Back to Vectorization and Optimization Reports


Viewing all articles
Browse latest Browse all 327

Trending Articles



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