- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I am trying to have a baseline performance of the non-vectorized version of the following code:
1532 do k = ks, ke 1533 do ii = iis, iie 1534 value = vals(ii) 1535 do j = js, je 1536 offset_1 = ( (k-1)*N2 + (j-1) ) * N1g 1537 offset_2 = offset_1 + ii 1538 do i = is, ie 1539 dF(i + offset_1) = dF(i + offset_1) + value * F(i + offset_2) 1540 end do 1541 end do 1542 end do 1543 end do
Please note that this code piece does NOT use SIMD directives, such as !DIR$ SIMD.
I compiled the code using ifort 13.1.0 with different compiler options and the profiling results are summarized as below:
Compiler Options CPU_TIME(s)
-O2 -no-vec 12.274
-O2 -no-vec -no-simd 15.791
I observed a non-trivial performance decrease (15.791/12/274=1.29). This result surprised me because:
According to the description of '-no-simd' in Intel Fortran Compiler Help:
-[no-]simd
enables(DEFAULT)/disables vectorization using SIMD directive
Clearly in the code piece shown above there is no SIMD directive. Then '-no-simd' should have no influence on the performance. So I am confused where does the performance decrease come from?
I also checked the User and Reference Guides:
Here the description becomes:
To disable the SIMD transformations, specify option -no-simd
This description seems to be different from the first one. So I am wondering how '-no-simd' really works. Does '-no-simd' only disable SIMD directives? Or it disables more optimizations, which led to the performance decrease I observed? Which compiler options shall I use to have a baseline performance of a non-vectorized code?
Thanks in advance for your kind help!
Best regards,
Wentao
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
"-no-vec" is the right option for baseline performance of non-vec code.
"-no-simd" should only disable SIMD pragma and have no other impact on optimization. I have opened a bug report DPD200255086 for it.
Thanks,
Xiaoping
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
xiaoping-duan (Intel) wrote:
"-no-vec" is the right option for baseline performance of non-vec code.
"-no-simd" should only disable SIMD pragma and have no other impact on optimization. I have opened a bug report DPD200255086 for it.
Thanks,
Xiaoping
Thanks!

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page