Resolving Symbols for Intel® Manycore Platform System Stack (Intel® MPSS) in Intel® VTune™ Amplifier XE Analysis

Background

Whenever Intel VTune Amplifier XE is unable to resolve symbols for libraries or the operating system, it lumps all the counts for that module together. Often, these lumped counts end up at the top of the hotspot list, skewing the analysis. By setting the correct search library path in an analysis, you can help Intel VTune Amplifier XE further resolve the counts into its constituent functions and thus rank them appropriately. 

This document describes a method to resolve the symbols for standard libraries and Intel MPSS. Since, the location of the kernel symbols depends on the version of the Intel MPSS. Hence the instructions for resolving the Intel MPSS symbols have been separated out into two sections, below: Intel MPSS 2.x and Intel MPSS 3.x.   I will begin with Intel MPSS 3.x since that is the most recent release stream.

Resolving symbols for Intel MPSS 3.x

1)    In Intel MPSS 3.x, the vmlinux image is located in /opt/mpss/<MPSS Version>/sysroots/k1om-mpss-linux/boot/. Replace <MPSS Version> with the MPSS version number you are using. In this example, the name of the vmlinux image is vmlinux-2.6.38.8+mpss3.1:  

# cd /opt/mpss/3.1.2/sysroots/k1om-mpss-linux/boot/

	# ls -l

	total 97736

	-rw-r--r-- 1 root root  2782656 Oct 15 12:04 bzImage-2.6.38.8+mpss3.1

	-rw-r--r-- 1 root root 97189830 Oct 15 12:04 vmlinux-2.6.38.8+mpss3.1

2)    Since Intel VTune Amplifier XE looks for the file “vmlinux”, you will need to create a soft link in this same directory named “vmlinux” to your vmlinux image:
# ln –s ./vmlinux ./vmlinux-2.6.38.8+mpss3.1

	# ls -l

	total 97736

	-rw-r--r-- 1 root root  2782656 Oct 15 12:04 bzImage-2.6.38.8+mpss3.1

	lrwxrwxrwx 1 root root       26 Mar 19 12:35 vmlinux -> ./vmlinux-2.6.38.8+mpss3.1

	-rw-r--r-- 1 root root 97189830 Oct 15 12:04 vmlinux-2.6.38.8+mpss3.1

3)    Add this location to the search path:
If you are using the Intel VTune Amplifier XE command line, you can simply add -search-dir sym:p=/opt/mpss/<MPSS Version>/sysroots/k1om-mpss-linux/boot/ to your command line. Remember to use your version number.
If you are using the Intel Vtune Amplifier XE GUI, you can set the search directories in the `project properties`. 
4)    Once your analysis has completed running and finalized, you should be able to see the finer breakdown of where your application spends its time. 

Resolving symbols for Intel MPSS 2.x

1)    In Intel MPSS 2.x, the vmlinux image is located in /lib/firmaware/mic . 

# cd /lib/firmware/mic/

	# ls

	RASMM.elf  System.map  dma_module.ko  micras.ko  micscif.ko  mpssboot.ko  pm_scif.ko  ramoops.ko  uos.img  vmlinux

2)    Add this location to the search path:
If you are using the Intel VTune Amplifier XE command line, you can simply add -search-dir sym:p=/lib/firmware/mic/ to your command line.
If you are using the Intel Vtune Amplifier XE GUI, you can set the search directories in the `project properties`. 
3)    Once your analysis completes running and has finalized, you should be able to see the finer breakdown of where your application spends its time. 

Resolving symbols for other libraries

To resolve symbols for various libraries, you only need to select the correct search path during the Intel VTune analysis. The following is a small list of paths for different libraries: 

Library

Path for MPSS 3.x

Path for MPSS 2.x

libc and other generic user libraries

/opt/mpss/3.*/sysroots/k1om-mpss-linux/lib64

/usr/linux-k1om-4.7/linux-k1om/lib64/

Intel OpenMP, Intel Cilk and other compiler related libraries

/opt/intel/composer_xe_2013/lib/mic

Intel MKL Library functions

/opt/intel/composer_xe_2013_sp1/mkl/lib/mic

Intel MPI library functions

                            /opt/intel/impi/<version number>/mic/lib/

Summary

Thus by setting the correct search path for your Intel VTune Amplifier XE analyses, you can obtain a finer breakdown of the hotspots in your application. This simple step can go a long way in providing a clearer picture thereby avoiding misinterpretation of data. 

 

 

Para obtener información más completa sobre las optimizaciones del compilador, consulte nuestro Aviso de optimización.