seq [(width)]. STMicroelectronics PGI
Annonce
Annonce
PGI Accelerator Directive Clauses
• If a subarray appears in a private
clause, it is an error to refer to any element of the array in the loop outside the bounds of the subarray.
• It is an error to refer to a variable or any element of an array or subarray that appears in a private
clause and that has not been assigned in this iteration of the loop.
• In Fortran, the upper bound for the last dimension of an assumed-size dummy array must be specified.
• In C, a missing lower bound is assumed to be zero. A missing upper bound for a dynamically allocated array must be specified.
seq [(width)]
The seq
clause tells the compiler to execute this loop sequentially on the accelerator. There is no maximum number of iterations for a seq schedule. If the seq
clause has a
width
argument, the compiler strip mines the loop and determines an appropriate schedule for the remaining loop.
shortloop
The shortloop
clause tells the compiler that any accelerator target-specific limit on the number of iterations supported in a parallel or vector loop is satisfied, either becuase the loop trip count or the value of the
width
expression is small enough.
Note
It is an error to use a shortloop clause if the limits may be violated.
unroll [(width)]
The unroll
clause tells the compiler to unroll
width
iterations for sequential execution on the accelerator.
The
width
argument must be a compile time positive constant integer.
unroll clause restrictions
The unroll
clause has these restrictions:
• If two or more loop scheduling clauses appear on a single loop mapping directive, all but one must have a
width
argument.
• Some implementations or targets may require the
width
expression for the vector clause to be a compiletime constant.
• Some implementations or targets may require the
width
expression for the vector or parallel clauses to be a power of two, or a multiple of some power of two. If this is the case, the behavior when the restriction is violated is implementation-defined.
vector [(width)]
The vector
clause tells the compiler to execute this loop in vector mode on the accelerator. There may be a target-specific limit on the number of iterations in a vector loop, the aggregate number of iterations in all vector loops, or the number of vector loops allowed in a kernel.
330
Download
Annonce