Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

Vectorization / Parallelization / Optimization Reports Under VS 2010

Royi
Novice
1,028 Views

Hello,

I'm using VS 2010 as my IDE.
It's configured to use Intel Compiler (Composer 2011).

I set all the required fields in the diagnostics menu under the project properties (As written in "A Guide to Vectorization with Intel® C++ Compilers").

Yet I see no data in the output window of VS 2010.

Where can I see the report as shown here:

http://stackoverflow.com/questions/9054046/directory-of-vectorization-report-for-intel-c-compiler-in-vs-10

Thank You.

 

0 Kudos
21 Replies
SergeyKostrov
Valued Contributor II
964 Views
Could you upload a complete test-case ( sources and project files ), please? I don't think that these reports are displayed if a test-case looks like: . void main( void ) { } . Best regards, Sergey
0 Kudos
Royi
Novice
964 Views
Actually I'm building a Photoshop / After Effects Plug In. I couldn't understand your meaning. The loops are in the file (Spreaded in function / main function). It's really a shame I can't see the reports within the IDE and have some funny limitations. I hope they created a better integration with the 2013 compiler.
0 Kudos
TimP
Honored Contributor III
964 Views
I don't think you're making yourself clear. If you set /Qvecreport (in the additional command line options), the associated reports would appear in the build.log if you are using a Visual Studio build. With /Qopt-report-file, the reports appear in the file you have named.
0 Kudos
Royi
Novice
964 Views
Hello Tim, I'm using VS 2010. I chose the regular option (Screen, not file). I build the file and I see nothing on the build report in the screen (Nothing related to the report of Vectorization). If you look here: http://stackoverflow.com/questions/9054046/directory-of-vectorization-report-for-intel-c-compiler-in-vs-10 It seems I'm not the only one experiencing it. Unless there's a specific file named build.log I should look into. If I do, where should I look for it? Thanks. P.S. I tried the option to write data into a file. The file came out empty though I chose level 3.
0 Kudos
SergeyKostrov
Valued Contributor II
964 Views
>>...file named build.log I should look into. >>If I do, where should I look for it? . When a Visual Studio is used a BuildLog.htm file is located in a folder specified by $(IntDir) variable ( it is internal Visual Studio variable! ). Take a look at project properties: . Configuration Properties -> General -> Build Log File = $(IntDir)\BuildLog.htm
0 Kudos
Royi
Novice
964 Views
It seems to be a different problem. The compiler compiles in Debug Mode which turns off any optimization hence the report is not displayed. The problem is I can get it into release mode. Which flag in Intel C++ Compiler turns off the Debug mode? Thanks.
0 Kudos
JenniferJ
Moderator
964 Views
are you building from VS IDE? If yes, select the "Release" to change to "Release" config -- see the picture below: http://software.intel.com/sites/default/files/comment/1655317/config-drop-down.jpg If building from command line, /Od is for "debug", "/O2" is used in "Release". there is also "/O3" for more advanced optimization. Jennifer
0 Kudos
Royi
Novice
964 Views
Hi Jeniffer, I tried every switch (/Mt, /O2, removed _DEBUG, added NDEBUG), Can't see the report (Which means no optimization is applied). What other flags might cause the ICC work in "Debug Mode"?
0 Kudos
SergeyKostrov
Valued Contributor II
964 Views
>>...I tried every switch (/Mt, /O2, removed _DEBUG, added NDEBUG), Can't see the report (Which means no optimization is applied). . That looks strange. . >>What other flags might cause the ICC work in "Debug Mode"? . Could you upload your test project for review ( in Visual Studio 2005, 2008 or 2010 )?
0 Kudos
Royi
Novice
964 Views
Hi, It would be difficult to upload it since it requires to host program in order to debug (Kind of a Plug In). Yet what I strictly look for is which flags to set in order to disable this "Debug" mode which disables the optimizations and hence no report is given.
0 Kudos
JenniferJ
Moderator
964 Views
Ok. I think it might be the /Qipo option. For some project types created by Visual Studio, the /GL (whole program optimization) is on in "Release" config. So when you switch to Intel C++, it changes to "/Qipo". In such case, the compilation phrase is the 1st step to generate the mocked intermediate object files. Only at linker stage it will do the actual compilation. At the vec-report is done at the later step. So check the project property: C/C++ -> Optimization (Intel) -> Interprocedural Optimization; is it set to /Qipo? if yes, you do one of the followings: 1) change /Qipo to /Qip 2) add /qvec-report3 to the project property Link -> Command line -> Additional options --- notice: "/qvec-report3" all lower case. Jennifer
0 Kudos
SergeyKostrov
Valued Contributor II
964 Views
>>...It would be difficult to upload it since it requires to host program in order to debug (Kind of a Plug In). >> >>Yet what I strictly look for is which flags to set in order to disable this "Debug" mode which disables the optimizations and hence no report is given. . Could you post a complete command line you use ( to compile sources ) or upload a VS proj-file for review? Once again, it is difficult to say anything without having some complete set of information from you. . Best regards, Sergey
0 Kudos
Royi
Novice
964 Views
Hi, Here are the commands line: The Compiler:

/I"..\..\..\Headers" /I"..\..\..\Headers\SP" /I"..\..\..\Headers\Win" /I"..\..\..\Resources" /I"..\..\..\Util" /Z7 /nologo /W3 /O2 /Ot /Qparallel /D "MSWindows" /D "WIN32=1" /D "_WINDOWS" /D "NDEBUG" /D "_CRT_SECURE_NO_DEPRECATE" /D "ISOLATION_AWARE_ENABLED=1" /D "_VC80_UPGRADE=0x0710" /D "_WINDLL" /U"_DEBUG" /GF /EHsc /MT /Zp4 /GS /Gy /fp:fast /QaxSSE4.1 /QxSSE4.1 /Zc:wchar_t /Zc:forScope /GR- /Qopenmp /Fp".\Release/EdgeIT.pch" /Fa".\Release/" /Fo".\Release/" /Fd".\Release/" /Qvec-report2

/OUT:"C:\Program Files\Adobe\Adobe After Effects CS6\Support Files\Plug-ins\Fixel Algorithms\EdgeIT.aex" /INCREMENTAL:NO /NOLOGO /DLL "ippi_l.lib" "ipps_l.lib" "ippcore_l.lib" "ippcv_l.lib" "ippcc_l.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /MANIFEST /ManifestFile:"x64\Release\EdgeIT.aex.intermediate.manifest" /ALLOWISOLATION /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /PDB:".\Release/EdgeIT.pdb" /MAP /PGD:"C:\Program Files\Adobe\Adobe After Effects CS6\Support Files\Plug-ins\Fixel Algorithms\EdgeIT.pgd" qnoipo /TLBID:1 /DYNAMICBASE:NO /IMPLIB:".\Release/EdgeIT.lib" /MACHINE:X64 + /NODEFAULTLIB:libiomp5mt.lib

0 Kudos
JenniferJ
Moderator
964 Views
In your case, /GL or /Qipo is not used, you should see the vec-report during "compiling" phrase. could you attach the .vcxproj file? are you using the Intel Parallel Composer 2011? Jennifer
0 Kudos
Royi
Novice
964 Views
Hi, At the beginning I worked with Composer 2011. I later switched to 2013. What do you mean during compiling phase? I have the build report, nothing was there.
0 Kudos
SergeyKostrov
Valued Contributor II
964 Views
>>...The compiler compiles in Debug Mode which turns off any optimization hence the report is not displayed. . You need to verify '/O-like' command line options for your Debug configuration. Please take into account that a Debug configuration of some VS project doesn't turn off code optimizations by default.
0 Kudos
SergeyKostrov
Valued Contributor II
964 Views
By the way, you've posted compiler and linker options for your Release configuration. I've verified what you've posted and I don't see any problems. What you told us is that you have a problem in your Debug configuration. So, please post compiler and linker options for your Debug configuration.
0 Kudos
TimP
Honored Contributor III
964 Views
The Windows debug compile flags include the effect of /Od, so you don't get any vectorization, auto-parallelization, or reports on them, until you add /O2 or /O3.
0 Kudos
TimP
Honored Contributor III
964 Views
Setting of /Zi is taken as setting /Od, unless there is an explicit /O setting. The reason is that any higher optimization loses information which you might like to display in a debugger, and (particularly with vector/parallel) changes the order of events visible in debugger.
0 Kudos
SergeyKostrov
Valued Contributor II
771 Views
>>A set of Debug Information Format options /Z7, /Zd /Zi and ZI could also affect a C++ compiler optimizations . In your Release configuration the option /Z7 is used ( a Debug Information Format is compatible with MS Quick C/C++ compiler v7 ): . >>>>.../Z7 /nologo /W3 /O2 /Ot /Qparallel... . Note: MS Quick C/C++ compiler v7 is a legacy C/C++ compiler and it is ~20-year old. I don't know if anybody uses the one.
0 Kudos
Reply