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

POGO in a raw iron environment?

awbeale
Beginner
477 Views
I have a large application which we have ported to run on the Itanium2 in a completely raw iron environment. No Windows. No Linux. No OS. We have a statically linked codefile which we convert into an efi code file, load into physical memory and execute as fast as we can. Problem is, I can't find a way to get POGO optimizations if I'm not in Windows or Linux. The compiler/linker is very strict about ensuring that that IDENTICAL object files are used for instrumenting and relinking.
I can get a Windows executable of my application, BUT, it is not compiled identically to the raw version and therefore, any POGO optimizations I can get in my WIndows version I can't port to the raw version.
Is there any way for me to obtain POGO statistics in my raw environment? Is there some way to override the strict timestamp checking so that optimizations in the WIndows environment can be applied to my raw codefiles? IS there some other technique I am overlooking? Any help would be greatly appreciated!
Andy
0 Kudos
3 Replies
Maximillia_D_Intel
477 Views
Hi Andy,
If by POGO, you mean PGO (profile guided optimizations in the Intel Compiler), I think I can help.
Timestamps are not used to check the validity of a source file between profile generation and profile application. There are two checks that I'm aware of:
1. The path to the file and filenameis the same between generation and use.
2. Per routine, the number of basic blocks (in the compiler's intermediate language) is the same.
Regarding #1 - There is an option for modifying the validated path. Please see information about prof_merge in our user documentation for details.
Regarding #2 - As long as the number of basic blocks does not change between the two platforms (which can sometimes happen if you change header files), you should be o.k. If so, it should still be possible to use the profile information for some of the functions paying attention to compiler output during the -prof_use phase about which functions have profile information and which do not. Try to get an empty function that is called during profile generation to work and then see if you can scale it from there.
Hope this helps,
Max
0 Kudos
awbeale
Beginner
477 Views
Thanks Max. We do have to change some header files because of the fact that Windwos is no longer there, but we will try your suggestions and see where we go! THank you very much!
Can you tell me where I can find the detailed documentation for PGO?
Again, thank you very much!
0 Kudos
Maximillia_D_Intel
477 Views
Hi,
Our compiler documentation includes it. Follow this path in the windows docs: User's Guide -> Volume II -> Compiler Optimizations -> Profile-Guided Optimizations
Regards,
Max
0 Kudos
Reply