Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.

Intel Fortran 2013 compiler options

dingjun_chencmgl_ca
663 Views

 

Hi, Dear Sir or Madam,

I am trying to test some new features from the latest Intel 2013 Fortran compiler. For example, I am testing the folloiwng options of 2013 Fortran compilers under Windows OS:  

/align:array64byte /O3

and add  " !dir$ vector aligned " to force vectorization  before some DO loop Fortran statements for array computation.

I did not get any improvements in performances of my Fortran Applications. Could you tell me the reasons and share your successful experiences with using "Align Data" vector aligned directive.

Thanks in advance.

Dingjun

 

 

 

0 Kudos
4 Replies
NsK
Novice
663 Views

Could you share a bit of your code with us?

Nick

0 Kudos
dingjun_chencmgl_ca
663 Views

No. They are commercial codes. Sorry for that.

0 Kudos
Steven_L_Intel1
Employee
663 Views

Have you enabled vectorization reports or /Qguide to see what the compiler says about vectorization? Perhaps alignment is not the gating factor.

0 Kudos
TimP
Honored Contributor III
663 Views

Many of the new vectorization features are keyed to architecture, so you should use one more keyed to recent CPU, such as -arch:SSE4.1 (since Harpertown) or -arch:AVX (since Sandy Bridge).  array32byte should be sufficient.

!dir$ vector aligned is most likely to help with vectorization of loops containing conditionals, but it means that both true and false options have to be evaluated, followed by selection.

reductions are best done with Fortran intrinsics: sum, dot_product, maxloc, .... or by at least putting in the form required by !$omp simd reduction() directive (even if the directive isn't needed).

0 Kudos
Reply