- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
The question is in the subject. It seems this is deliberate because while there are ia32 versions of these pdb files in the redistributable folders for the compiler and in fredist.txt, the intel64 versions are missing. This seems a bit perverse to me, as if I want to profile a program and find out which math library procedures are in hotspots, I have to profile a win32 build.
コピーされたリンク
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
What you found is deliberate. To summarize information from a (Feature Request) tracking id associated with providing only the PDBs for Win32, it says: Amplifier performs a stack walk to collect performance data. On Win32 this requires the PDB as unwinding information is encoded inside the PDB on Win32 only. For intel64 the unwind information required for profiling is available within the executable as defined by the standardized “X64 Software Conventions”.
For the intel64 executable, the unwind information can be viewed with:
dumpbin.exe /UNWINDINFO <executable>
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Good question. Thank you for the screenshots. Let me see what I can find out.
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Thanks again Kevin,
Just as a bit of a follow-up, I copy the redistributable files into my build output folder, so a clean removes any pdb files (like libiomp5md.pdb, the OpenMP library pdb). So, profiling a program after a clean and build results in this:
Without libiomp5md.pdb:
Top Hotspots
Function CPU Time
func@0x180053fb0 322.467s
SECTION_DATA_mp_SECTION_GET_K_AND_DKDH_CW 67.627s
CUBIC_EQUATION_mp_GEO_CUBIC_INTERPOLATE 57.419s
BS_LINK_ip_SET_INTERIOR 44.528s
_kmpc_barrier 37.731s
[Others] 592.879s
After re-resolving with libiomp5md.pdb copied back in:
Top Hotspots
Function CPU Time
__kmp_fork_barrier 321.450s
SECTION_DATA_mp_SECTION_GET_K_AND_DKDH_CW 67.627s
CUBIC_EQUATION_mp_GEO_CUBIC_INTERPOLATE 57.419s
BS_LINK_ip_SET_INTERIOR 44.528s
_kmpc_barrier 37.731s
[Others] 593.896s
So, VTune can resolve some symbols (i.e _kmpc_barrier) from the unwinding information, but not all (i.e. __kmp_fork_barrier). I've also noticed that some symbols in libmmd.dll are resolved (in my case, log, pow, sin, & acos).
Hope this helps,
Mark
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Thank you for the additional information, Mark. That's interesting and helpful. I created a reproducer this morning replicating your earlier findings also. I will keep you posted on what else I learn.
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
I submitted the issue to our Math libraries Development team (see internal tracking id below) initially and will keep you updated about what I back regarding this.
(Internal tracking id: DPD200363624)
(Resolution Update on 02/27/2016): This defect is fixed in the Intel® Parallel Studio XE 2016 Update 2 Release (PSXE 2016.2.055/ CnL 2016.2.180 - Windows)
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
The Math library Developers believe they can address this issue in the next IPS XE 2015 Update which tentatively scheduled for around February 2015. I will update again when I know more.
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Unfortunately the changes required to resolve the underlying issues were unable to be promoted to the PSXE 2015 release. Development was able to promote them to PSXE 2016 release and these are now included in the latest PSXE 2016 Update 2 release (PSXE 2016.2.055/ CnL 2016.2.180 - Windows)
