Intel VTune Amplifier

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: Last updated in 2017, infos specific to ancient kernel versions, some broken and dead links (Discuss in Talk:Intel VTune Amplifier)

Intel VTune Amplifier is a commercial software performance profiler for Intel processors. There is a free 30 day trial.

Linux 4.0

VTune 2015 currently does not work with Linux 4.0, due to changes in the kernel that prevent the sepdk module from building. You need VTune 2016 which was released in August 2015.

Compiling the Kernel Modules

To build the kernel modules on Arch you should follow the 4th part of the README on sepdk folder. You can follow the Compile kernel module with Kernels/Traditional compilation#Download the kernel source, downloading the source code to /usr/src/, extracting it with the name following the README and following the steps to unpack the kernel source.

There is a problem on the script ./build-driver that some users could not run the funcion get_absolute_path() so you should hardcode the variables DRIVER_DIRECTORY and KERNEL_SRC_DIR.

Also, there is a bug when trying to compile the kernel modules with kernel 4.10. Intel forum post

VTune Amplifier XE 2013

Follow the instructions for 2011. If you see errors while building the driver, it may be because intel is using deprecated functionality subsections. In the following sections, lines beginning with "-" indicates code that should be removed, lines beginning with "+" should be added.

Note: The following steps should not be need as of update5.

Missing asm/system.h

Edit lwpmudrv.c as follows:

-#include <asm/system.h>
+#include <linux/version.h>

Implicit declaration of this_cpu_read

Edit eventmux.c as follows:

+#include <linux/percpu.h>

kmap_atomic and kunmap_atomic deprecated

Edit vtssp/user_vm.c as follows:

-this->m_maddr = kmap_atomic(this->m_page, in_nmi() ? KM_NMI : KM_IRQ0);
+this->m_maddr = kmap_atomic(this->m_page);
-kunmap_atomic(this->m_maddr, in_nmi() ? KM_NMI : KM_IRQ0);
+kunmap_atomic(this->m_maddr);

VTune Amplifier XE 2011

Starting with update 7 of the VTune Amplifier XE 2011, you can now use it on Linux 3.x and hence on Arch Linux, even though the latter is not officially supported. See also: VTune on Archlinux

Installing VTune

Using the following HOWTO you "install" VTune locally and can run it. Vtune requires a kernel module for all functionality. Nevertheless, VTune in user mode is very powerful and comes with lots of possibilities for profiling. Have fun!

Preparation:

  • download VTune Amplifier XE 2011 (there is a free version for non-commercial use on linux)
  • unpack the tarball
  • install libpng12
  • install libjpeg6AUR[broken link: package not found]
  • install rpmextract
  • Install the appropriate headers package(s) for your installed kernel(s), such as linux-headers or linux-lts-headers.
  • if using a custom kernel, ensure that your kernel is compiled with the following options:
    • CONFIG_MODULES=y
    • CONFIG_MODULE_UNLOAD=y
    • CONFIG_SMP=y
    • CONFIG_KPROBES=y
    • CONFIG_PROFILING=y
    • CONFIG_OPROFILE=y

Now to "install" vtune:

cd vtune_amplifier_xe_2011_update7
find -name "*.rpm" -exec rpmextract.sh {} \;

Kernel module:

  • Create the group vtune and add yourself.
  • Build and load the driver in /opt/intel/vtune_amplifier_xe_2011/sepdk/src/
./build-driver
./insmod-sep3 -g vtune
  • Add your license file to /opt/intel/licenses/

You can now start vtune:

./opt/intel/vtune_amplifier_xe_2011/bin64/amplxe-gui

For ease-of-use, it is recommended that you move the ./opt/intel/vtune_amplifier_xe_2011 to your homefolder or similar and add a symlink to the amplxe-gui binary to one of your PATH folders or similar.