- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page