AMD CodeAnalyst Linux 3.0 Utility
In version 3.0, we have added several features including: support for AMD Family 15h processors, support for new Linux distributions (RedHat Enterprise Linux 6 update 1 and Ubuntu-11.04), and call-stack sampling. We also improved the interface for several tabs of data.
As requested by several users, version 3.0 adds call-stack sampling (CSS) support, which has been available in AMD CodeAnalyst for Windows for some time. Call Stack Sampling is used in combination with TBP, EBP and IBS. It provides information on caller-callee relationships and helps identify the call chain of the most frequently sampled parts of a program.
In this version, profiles results are collected along with the process and thread IDs, allowing the profile data to be aggregated and viewed by each process and thread. This is useful in server workloads where more than one process and thread is often running the same binary.
Several tabs and navigations have been redesigned starting with the new “System Data” tab. The new “System Data” tab incorporates the process id information and allows the profile result to be viewed per-process and its dependent modules.
The new “Module Data” tab is improved to allow profile samples of each symbol to be shown per-process/thread. It also has capability to filter samples by process and thread IDs. The percentage view has also been improved to show both system and module percentage.
The “Source” and “Dasm” tab have been integrated into one tab, which simplifies source and disassembly analysis. The combined tab supports inline function annotation, making inline function analysis much more intuitive. Similarly, the “Source/Dasm” tab also has the per-process/thread supports.
For those who do know about the AMD CodeAnalyst Linux 3.0 Utility, here`s some information that may help you understand.
AMD CodeAnalyst Performance Analyzer for Linux is an open source, front-end graphical user interface to Oprofile. The graphical user interface simplifies the process of collecting performance data and enhances data analysis. Profiles are shown in both tabular and chart form. Users can drill down from system-level processes and modules to source code or instructions.
AMD CodeAnalyst taps into the performance monitoring capabilities of AMD processors. AMD CodeAnalyst supports the collection of up to 32 performance events in a single test run. This capability makes it easier to stage performance experiments. AMD CodeAnalyst also supports Instruction-Based Sampling (IBS) – a new performance measurement technique available on AMD Family 10h processors.
Oprofile with Support for the Latest AMD Processors
AMD CodeAnalyst also provides Oprofile command line tools (i.e. opcontrol, opreport, and opannotate) with up-to-date support for the latest AMD processors. Developers and performance engineers can get started with events and other features that are not yet available in the mainstream Oprofile distribution.
Features of AMD CodeAnalyst Linux 3.0 Utility
CodeAnalyst for Linux performs these kinds of analysis:
- Time-Based Profiling (TBP) identifies the parts of a program with the highest execution time -- performance hotspots. Hotspots are the best candidates for optimization and tuning.
- Event-Based Profiling (EBP) helps diagnose performance issues within program hot-spots. For example, EBP measures hardware events such as cache misses and TLB misses in order to find opportunities to improve data access patterns.
- Instruction-Based Sampling (IBS) collects a wide range of performance information in a single measurement run. IBS precisely associates hardware events with the instructions that cause the events. This precision makes it easier to identify performance culprits. IBS is a feature of the latest generation of AMD processors (AMD Family 10h processors) and is supported by CodeAnalyst when it is available on the host platform.
- Basic block analysis aggregates and attributes profile data to basic blocks. Basic block analysis makes it easier to analyze and follow program execution flow at the instruction level.
- In-line function analysis helps developers assess the performance of functions which are expanded in-line. It aggregates profile data across all the (expanded) instances of each in-lined function. It also simplifies navigation to instances.
- The session diff analysis tool allows side-by-side comparison of program profiles. Developers can compare results down to the instruction level, making it easier to determine the effect of source-level program tuning, different compiler optimizations, etc.
There are two different ways to use CodeAnalyst for Linux.
- The standalone CodeAnalyst application has an easy to use interface that stages performance experiments and presents the results in graphs, tables and annotated source code. The CodeAnalyst GUI supports drill-down and navigation, supporting convenient top-down performance analysis.
- Profile data collection can be configured, initiated and controlled using OProfile’s command line tools. Data can then be imported into the standalone CodeAnalyst application. Command line tools can also be used to produce textual reports (via opreport, opannotate, etc.) Commands can be embedded in scripts making it easier to stage and repeat performance experiments.
CodeAnalyst for Linux has these additional key features:
- Low overhead system-wide data collection monitors both user- and kernel-space software
- Does not require modification to source code or executable binary
- Analyzes JIT compiled code (Java) and native code
- Project- and session-oriented GUI to organize profile data and configurations
- Predefined profiling configurations for different kinds of analysis
- Multi-level aggregation and performance summaries
- System, module, function, source and instruction level summaries
- Optional separation of profile data by core and by process
- Code density chart to quickly identify and navigate to program hot-spots
- Predefined view configurations including performance rates and ratios
- Import profile data collected via command line profiling utility into the GUI for analysis
- Export results in CSV format
- Pause and resume profiling using GUI buttons
- Uses counter multiplexing to collect up to 32 events in a single profiling session
- Profile packaging utility assist data collection on remote host and import/analysis on local workstation
- Open source under GNU General Public License (GPL) version 2
- On-line help and tutorials
What’s New in AMD CodeAnalyst Linux 3.0 Utility
CodeAnalyst for Linux Release 3.0
AMD CodeAnalyst Performance Analyzer for Linux 3.0 supports AMD Processor Family 15h (Orochi). Support includes Family 15h performance monitoring counter (PMC) events and Instruction-Based Sampling (IBS).
Also, in this release, we add:
- Supports for Ubuntu-11.04 and RHEL6 U1
- Supports for kernel-2.6.38
- Supports for Gcc-4.5
- Call-Stack Sampling (for kernel 2.6.32 and above)
- New System Data tab which integrates the Tasks tab and Task's Module tab
- New Source/Dasm tab which integrates the old Source tab and Dasm tab
- Inline function source annotation
- Enhance separate-process and-separate thread in view configuration
- libCAdata integration which introduce new version of TBP/EBP and IMD files
- Deprecate Graph tabs
- Deprecate DiffAnalyst
- Bug fixes
All information was extracted from AMD Share this post on AMD CodeAnalyst Linux 3.0 Utility