Auto-vectorization of SUM intrinsic in gfortran
Wilfredo Sifuentes
wsifuent@gmail.com
Fri Jan 28 17:19:00 GMT 2011
Thank you Tim
As you said with -ffast-math option it works but others lines that
seems to be parallelizable doesn´t e.g.
Look at the two contiguous lines:
INGTAR(HI,1:NETP)= ZERO !Compiller says : not vectorized:
complicated access pattern.
VAEMB(1:NEMB,HI,1:NETP)= ZERO ! Compiler says: note: LOOP VECTORIZED.
The code I am working is quit old (and big) and I am only researching
the (easy) ways to do it faster in actual computers
Regards
Wilfredo
2011/1/28 Tim Prince <n8tm@aol.com>:
> On 1/28/2011 11:03 AM, Wilfredo Sifuentes wrote:
>>
>> Dear all,
>> In spite that some information on the WWW says that the SUM intrinsic
>> function of Fortran 90 can be parallelizable, I found that gfortran
>> 4.5 do not parallelize the following line (even if I fix or change
>> “AHID” variable to “1” ):
>>
>> temporal= SUM(PERLIN(1:NLIN,AHID,1:NETP,1:NBLO))
>>
>> Where PERLIN is defined as: REAL*8 PERLIN(MAXLIN,0:1,MAXETP,MAXBLO).
>> The compiler report: “note: not vectorized: unsupported use in stmt.”
>> Am I missing something?
>>
>> Regards
>> Wilfredo
>
> I don't remember the diagnostic, but SUM vectorization would never occur
> without options implying -fassociative-math (unfortunately, specifying that
> one by itself doesn't help; -ffast-math does, but is too big a hammer).
> Even beyond that, more information from you may be useful.
>
> --
> Tim Prince
>
>
More information about the Gcc-help
mailing list