- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello guys,
I'm using "vector aligned" and "vector nontemporal" directives on my fortran code. When I was using just "vector aligned" the code was running fine, but once used also "vector nontemporal" it started to crash. I'm using -xAVX, and the directive inside the code are like that:
!DIR$ vector always aligned
!DIR$ vector nontemporal (sxx)
Where sxx is an 3D array. Is there some requirement about "nontemporal" stuff? The arrays are 64 bytes aligned, and the code was working without "nontemporal" stuff. I'm using a Intel(R) Xeon(R) CPU E3-1230 @ 3.20GHz, but I've tested on an E5-2690 also and got the same error.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
previously asked and answered: remove aligned to allow peeling in case there may be occasional misalignment. If you want to avoid peeling but handle misalignment, try VECTOR UNALIGNED, but that may not work with NONTEMPORAL.
In effect, VECTOR ALIGNED doesn't require a fault in the case of unaligned access, but VECTOR ALIGNED NONTEMPORAL does.
Current compilers have a default -opt-streaming-stores auto which allows the compiler to guess when nontemporal may be appropriate.
-opt-streaming-stores always would use them wherever possible, without evaluating whether it will hurt performance.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page