I’m new to this group and to GPU-programming.
In Fortran I have a problem about loop-parallelization.
Loop has the form
DO 10 I = 1,N K = INDXARRAY(I) ... DATAARRAY(K) = ... ... 10 CONTINUE
Complex loop carried dependence of ‘DATAARRAY’ prevents parallelization
But I know, that DATAARRAY(K) is different in each step. So this loop should be parallelizable.
I can enforce parallelization with “!$acc loop independent”.
I would prefere a solution where I would not prohibit the compiler-analyses for the whole loop but only for the lines I really analyzed. (In reality this loop is quite long and complex…)
Something like this would be nice:
DO 10 I = 1,N K = INDXARRAY(I) ... !$acc THIS LINE DOENS NOT PREVENT PARALLELIZATION! DATAARRAY(K) = ... ... 10 CONTINUE