Intel® VTune™ Amplifier
TSX Exploration analysis type uses event-based sampling collection and is targeted for the Intel® processors supporting Intel Transactional Synchronization Extensions (Intel TSX). This analysis type collects events that help understand Intel Transactional Synchronization Extensions behavior and causes of transactional aborts.
For the transactional success analysis, the VTune Amplifier provides the following metrics:
Clockticks to measure the total number of collected unhalted cycles.
Transactional Cycles to measure the number of cycles spent during transactions. If it is near zero then the application is either not using lock-based synchronization or not using a synchronization library enabled for lock elision through the Intel TSX instructions.
Abort Cycles to measure the number of cycles spent during transactions which were eventually aborted. If it is small relative to Transactional Cycles, then the transactional success rate is high and additional tuning is not required. If it is almost the same as Transactional Cycles (but not very small), then most transactional regions are aborting and lock elision is not going to be beneficial. To identify the causes for transactional aborts and reduce them, enable the Aborts analysis.
VTune Amplifier classifies aborts by the following reasons:
Instruction: Some instructions, such as CPUID and IO instructions, may cause a transactional execution to abort in the implementation.
Data Conflict: A conflicting data access occurs if another logical processor either reads a location that is part of the transactional region's write-set or writes a location that is a part of either the read- or write-set of the transactional region. Since Intel TSX detects data conflicts at the granularity of a cache line, unrelated data locations placed in the same cache line will be detected as conflicts.
Capacity: Transactional aborts may occur due to limited transactional resources. For example, the amount of data accessed in the region may exceed an implementation-specific capacity.
To use the TSX Exploration analysis type, explore:
Configuration options (knobs)
To configure options for the TSX Exploration analysis:
Click the
New Analysis toolbar button.
The Analysis Type window opens.
From the left pane, select Microarchitecture Analysis > TSX Exploration.
The TSX Exploration configuration pane opens on the right.
Configure the following options:
|
Analyze user tasks check box |
Analyze tasks specified in your code via Task API. |
|
Transactional success radio button |
Select to collect events for measuring transactional success and identify a rate of the aborts. If the rate is high, re-run the collection to analyze for aborts. |
|
Aborts radio button |
Select to analyze causes of the aborts. |
|
Details button |
Expand/collapse the Details section to explore the default non-editable settings and hardware events used by the TSX Exploration analysis for your system. NoteIf you want to modify these settings, click the Copy button in the upper right corner. VTune Amplifier creates an editable copy of the custom hardware event-based sampling analysis type configuration and locates it under the Custom Analysis branch in the analysis tree. |
Click Start to launch the analysis.
You can choose to view TSX Exploration analysis results in the TSX Exploration viewpoint that includes the following windows:
Summary window displays statistics on the overall application execution.
Bottom-up window displays performance data per CPU metrics (event ratio/event count/sample count) for each program unit.
Top-down Tree window displays hotspot functions in the call tree, performance metrics for a function only (Self value) and for a function and its children together (Total value).
PMU Events window displays count for PMU events selected for the analysis.
Uncore Events window displays count for uncore events selected for the analysis. If there are no uncore events, the upper pane of the window is empty.
Platform window provides details on tasks specified in your code with the Task API, Ftrace*/Systrace* event tasks, OpenCL™ API tasks, and so on. If corresponding platform metrics are collected, the Platform window displays overtime data as GPU usage on a software queue, CPU time usage, OpenCL™ kernels data, and GPU performance per the Overview group of GPU hardware metrics, Memory Bandwidth, and CPU Frequency