诊断信息 15532: 循环无法进行矢量化处理:编译时间不足妨碍了循环进行优化

产品版本: Intel(R) Visual Fortran 编译器 XE 15.0.0.070

原因:

使用 Visual Fortran 编译器的优化选项 ( -O2  -Qopt-report:2 )  时出现矢量化报告,表示编译时间不足妨碍了优化。

示例:

 

下面的示例将在优化报告中生成以下注释:

subroutine foo(a, n)
    
       implicit none
       integer, intent(in) :: n
       double precision, intent(inout) :: a(n)
       integer :: bar
       integer :: i
       
       i=0
 100   CONTINUE
       a(i)=0
       i=i+1
       if (i .lt. bar()) goto 100
       
  end subroutine foo

报告来源: 循环嵌套,矢量和自动并行优化 [循环、矢量、并行]

  循环开始  
      注释编号15532: 循环无法进行矢量化处理:编译时间限制阻拦循环进行优化 考虑使用 -O3。
 
  循环结束

解决方法:

使用 -O3 优化选项并参阅诊断信息 15523: 

GOTO 语句阻拦矢量化处理,因为无法计算循环迭代次数。

另请参阅:

矢量化循环要求

矢量化要点

矢量化和优化报告

返回英特尔 Fortran 的矢量化诊断列表

 

Para obtener información más completa sobre las optimizaciones del compilador, consulte nuestro Aviso de optimización.