Intel® VTune™ Amplifier
Intel® VTune™ Amplifier can collect and analyze performance data on embedded Linux* devices running Yocto Project*. This topic provides an example of setting up the VTune Amplifier to collect performance data on an embedded device with Yocto Project 1.8 installed using the Intel VTune Amplifier integration layer provided with the product installation files. The process integrates the VTune Amplifier product drivers with the target package and includes them in the embedded device image. Root access to the kernel is required.
VTune Amplifier is able to collect some performance data without installing the VTune Amplifier drivers. To collect driverless event-based sampling data, installing the drivers and root access is not required. For full capabilities, install the VTune Amplifier drivers as described here.
VTune Amplifier provides two Yocto Project recipes in the following packages:
The vtune_amplifier_target_sep_x86_64.tgz package includes the intel-vtune-sep-driver recipe, which enables performance data collection using hardware event-based sampling. Attempting to collect stacks when using this recipe will automatically switch to driverless collection mode. This recipe has minimal requirements for Linux kernel configuration.
The vtune_amplifier_target_x86_64.tgz package includes the intel-vtune-drivers recipe, which enables the full performance data capabilities using hardware event-based sampling. This recipe has additional requirements for Linux kernel configuration. The intel-vtune-drivers recipe is a superset of the intel-vtune-sep-driver recipe.
Only one recipe can be used at a time. There is no difference between the x86 and x86_64 target packages for building recipes within Yocto Project. Both can be used on either 32 bit or 64 bit systems.
Download the VTune Amplifier target package or locate the package in the <install-dir>/target/linux directory on the host system where VTune Amplifier is installed.
Copy the selected target package to a location on the Yocto Project build system.
On the Yocto Project build system, extract the vtune_amplifier_target_sep_x86_64.tgz or vtune_amplifier_target_x86_64.tgz archive to a writeable location.
cd $HOME
tar xvzf vtune_amplifier_target_x86_64.tgz
(Optional) Modify the $HOME/vtune_amplifier_<version>/sepdk/vtune-layer/conf/user.conf file to specify user settings.
If the VTune Amplifier recipe has been split from the target package, specify one of the following paths:
Path to unzipped target package: VTUNE_TARGET_PACKAGE_DIR = "$HOME/vtune_amplifier_<version>"
Path to VTune Amplifier: VTUNE_AMPLIFIER_DIR = "/opt/intel/vtune_amplifier"
To integrate the SEP driver during system boot, specify ADD_TO_INITD = "y".
In the Yocto Project development environment, add the path to the layer to the bblayer.conf file. For example:
vi conf/bblayers.conf
BBLAYERS = "$HOME/vtune_amplifier_<version>/sepdk/vtune-layer\"
Your file should look similar to the following:
BBLAYERS ?= " \
$HOME/source/poky/meta \
$HOME/source/poky/meta-poky \
$HOME/source/poky/meta-yocto-bsp \
$HOME/source/poky/meta-intel \
$HOME/vtune_amplifier_2019/sepdk/vtune-layer \
"
Specify the Intel VTune Amplifier recipe in conf/local.conf. In this example, the intel-vtune-drivers is used.
vi "conf/local.conf"
IMAGE_INSTALL_append = " intel-vtune-drivers"
You cannot add both intel-vtune-drivers and intel-vtune-sep-driver at the same time.
Build the target operating system. For example:
bitbake core-image-sato
If you modified the kernel configuration options, make sure the kernel is recompiled.
Use the following steps on the host system to set up and launch the analysis on the embedded device:
Set up a password-less SSH access to the target using RSA keys.
Select the remote Linux (SSH) analysis system and specify the collection details.
Start the analysis.