- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I build an project with Intel® Compiler C++ but I have error when setting Intel Processor-Specific Optimization = AVX. Run on windows 7 ok
/arch:AVX /QaxAVX /QxAVX
Please help me!
CPU : Core i3-2100 3.10Ghz
Windows XP SP3
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Microsoft had withdrawn XP support before XE2015 was released, and had announced this move before ifort 14.0 was in development. One of the reasons may have been the lack of motivation to retrofit AVX into XP. With so many Windows versions, this would have reduced priority of testing on XP, so you take some risks with XP even if you avoid AVX, a combination which never could be tested. The full automated test suite may require a Windows Server platform, so 2008r2 and 2012 might be expected to have run full testing.
If you want to run on XP in spite of the cautions, I don't think the deprecated status should deter you from using a late 14.0 version or even trying 15.0, but that won't solve the AVX problem.
In several cases I've tested, AVX hardware features work nearly as well with older compile options like SSE4, which don't run afoul of that problem with XP and tend not to depend on 32-byte alignment.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
What version of the compiler are you using? For the Parallel Studio XE2015 products (which include the v15.0 compiler), Windows XP is not supported. The last version of the compiler for which XP was officially supported (although deprecated) is v14.0, part of Parallel Studio XE2013.
Patrick
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Microsoft had withdrawn XP support before XE2015 was released, and had announced this move before ifort 14.0 was in development. One of the reasons may have been the lack of motivation to retrofit AVX into XP. With so many Windows versions, this would have reduced priority of testing on XP, so you take some risks with XP even if you avoid AVX, a combination which never could be tested. The full automated test suite may require a Windows Server platform, so 2008r2 and 2012 might be expected to have run full testing.
If you want to run on XP in spite of the cautions, I don't think the deprecated status should deter you from using a late 14.0 version or even trying 15.0, but that won't solve the AVX problem.
In several cases I've tested, AVX hardware features work nearly as well with older compile options like SSE4, which don't run afoul of that problem with XP and tend not to depend on 32-byte alignment.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank for your help.
I used Intel Compiler C++ 12.1 , Intel® Parallel Studio XE 2011 update 3.
Please suggest for me how to setting for these property: Enable Enhanced Instruction Set , Intel Processor-Specific Optimization , Add Processor-Optimized Code Path :
1.
+ CPU : Core i3-2100 3.10Ghz
+ OS: Windows XP
2.
+ CPU:Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz、3601 Mhz
+ OS:Microsoft Windows 7 Professional SP1 (64bit)
At present, I'm setting /arch:SSE3/QaxSSSE3 /QxSSSE3
Enable Enhanced Instruction Set = "Streaming SIMD Extensions 3 (/arch:SSE3)"
Add Processor-Optimized Code Path = "Intel(R) Core(TM)2 processor family with Supplemental Streaming SIMD Extensions 3 (SSSE3) (/QaxSSSE3)"
Intel Processor-Specific Optimization = "Intel(R) Core(TM)2 processor family with Supplemental Streaming SIMD Extensions 3 (SSSE3) (/QxSSSE3)"
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Both of those CPUs support AVX, as well as SSE4.1/SSE4.2. The problem, as Tim said, is that AVX is not a good fit for Windows XP, so I'd suggest backing off to SSE4.2 or SSE4.1 for XP.
Unless you are planning to run your program on a CPU that doesn't support SSE4.2/SSE4.1, you won't need anything for 'Add Processor-Optimized Code Path', so I suggest you just use 'Intel Processor-Specific Optimization' by selecting either /QxSSE4.2 or /QxSSE4.1.
If you choose one of the /Qx switches, then don't set anything for 'Enable Enhanced Instruction Set' -- /arch and /Qx are mutually exclusive.
Patrick
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Patrick Kennedy (Intel) wrote:
Both of those CPUs support AVX, as well as SSE4.1/SSE4.2. The problem, as Tim said, is that AVX is not a good fit for Windows XP, so I'd suggest backing off to SSE4.2 or SSE4.1 for XP.
Unless you are planning to run your program on a CPU that doesn't support SSE4.2/SSE4.1, you won't need anything for 'Add Processor-Optimized Code Path', so I suggest you just use 'Intel Processor-Specific Optimization' by selecting either /QxSSE4.2 or /QxSSE4.1.
If you choose one of the /Qx switches, then don't set anything for 'Enable Enhanced Instruction Set' -- /arch and /Qx are mutually exclusive.
Patrick
Excuse me sir, I have the same problem.
But I can't search official document about "/arch and /Qx are mutually exclusive". So can you give me document (or official link) about that.
Regards,
PhucBNH.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
>>>But I can't search official document about "/arch and /Qx are mutually exclusive".
Read the compiler documentation regarding /arch:
Description
This option tells the compiler which features it may target, including which instruction sets it may generate.
Code generated with these options should execute on any compatible, non-Intel processor with support for the corresponding instruction set.
Options /arch and /Qx are mutually exclusive. If both are specified, the compiler uses the last one specified and generates a warning.
If you specify both the /Qax and /arch options, the compiler will not generate Intel-specific instructions.
Patrick

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