Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28744 Discussions

Interpreting -opt-report and -vec-report

jonathan3145
Beginner
1,042 Views
I've been looking at the large amount of information which is output from ifort when using the -opt-report flag, and its not obvious to me what the output means.

Additionally, Im not sure how to interpret the vec-report information, as the line numbers given dont correspond to loops.

Does anyone know where I get get some information on how to interpret these reports?

Many thanks.
0 Kudos
2 Replies
Kevin_D_Intel
Employee
1,042 Views

There are discussions in the Intel Fortran Users Guide locatable via the index:

Intel Fortran Compiler Users and Reference Guides > Optimizing Applications > Evaluating Performance > Using Compiler Reports


There are sections for IPO, PGO, HLO, HPO, Parallelism, SWP Vectorization, and OpenMP reports.

At least with the 11.1 Release the vectorizatoin diagnostics provided include line numbers corresponding to loops.

Given the following example:

[plain]subroutine foo(y)
implicit none
integer :: i
real :: y(1000)
  do i=2,1000
     y (i) = y (i-1)+1
  end do
end subroutine foo

subroutine bar(y)
implicit none
integer :: i
real :: y(1000)
  do i=2,1000
    y (i) = y (1)+i
  end do
end subroutine bar[/plain]


When compiled as:

$ ifort -V -xSSSE3 -vec-report3 -c u68442.f90
Intel Fortran Intel 64 Compiler Professional for applications running on Intel 64, Version 11.1 Build 20090827 Package ID: l_cprof_p_11.1.056
Copyright (C) 1985-2009 Intel Corporation. All rights reserved.

Intel Fortran 11.1-2582
u68442.f90(5): (col. 3) remark: loop was not vectorized: existence of vector dependence.
u68442.f90(6): (col. 6) remark: vector dependence: assumed FLOW dependence between y line 6 and y line 6.
u68442.f90(14): (col. 3) remark: LOOP WAS VECTORIZED.

The line numbers appear in the parenthesis after the file name, lines 5, 6, and 14 in the above messages. The column location corresponding to line's indentation from the left margin appears in the "(col. n)" text.
0 Kudos
mkbane
Beginner
1,042 Views

There are discussions in the Intel Fortran Users Guide locatable via the index:

Intel Fortran Compiler Users and Reference Guides > Optimizing Applications > Evaluating Performance > Using Compiler Reports


There are sections for IPO, PGO, HLO, HPO, Parallelism, SWP Vectorization, and OpenMP reports.
Brilliant! I've been looking for just that link! Now I've no idea how I ever missed it :)
I'll try and plough through all the information but I can see it will take a while to read, longer to absorb and much experience to become an expert at outstanding the reams of output from -opt-report for any substantial scientific Fortran code. I look forward to giving it all a go but all tips are most welcome!
Michael
0 Kudos
Reply