- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have several large static arrays which I would like aligned on 64 byte boundaries.
static complex R[4096][2048];
static complex Q[2048][2048];
using icpc, Linux, running on Itanium2 cores.
I am guessing that there is a #pragma for this?
is there a good reference for the icpc #pragma allowed?
thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
icpc should accept the same __attribute__((aligned(16))) as g++, and also the MSVC style stuff. You could try increasing it from 16 to 64, but that may depend on binutils glibc and kernel as to whether it is actually effective. You might look up the ld ALIGN in the binutils manual, as well as references about supporting larger than default values for g++ -mpreferred-stack-boundary (default value 4 means 2^4).
16-byte alignment is sufficient for all the alignment analyses required by icpc on either ia64 or current Xeon.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
icpc should accept the same __attribute__((aligned(16))) as g++, and also the MSVC style stuff. You could try increasing it from 16 to 64, but that may depend on binutils glibc and kernel as to whether it is actually effective. You might look up the ld ALIGN in the binutils manual, as well as references about supporting larger than default values for g++ -mpreferred-stack-boundary (default value 4 means 2^4).
16-byte alignment is sufficient for all the alignment analyses required by icpc on either ia64 or current Xeon.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page