Overview
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. Check out the “Introduction to CodeAnalyst” video.
Go to Downloads
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.
Please provide feedback and ask questions on the CodeAnalyst Forum.
Software License
AMD CodeAnalyst is released under GNU General Public License version 2.0. Please see terms and conditions.
Features
AMD 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.
There are two different ways to use AMD CodeAnalyst for Linux.
- The standalone AMD CodeAnalyst application has an easy to use interface that stages performance experiments and presents the results in graphs, tables and annotated source code. The AMD 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.
AMD 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
CodeAnalyst for Linux Release 3.4
AMD CodeAnalyst Performance Analyzer for Linux 3.4 supports AMD Processor family 15h (codenamed “Trinity”). Support includes Family 15h performance monitoring counter (PMC) events and Instruction-Based Sampling (IBS).
Also, in this release, we have added:
- Support for new Linux distributions Ubuntu 12.04 and RHEL 5.8.
- CAKM module support for Linux kernel version 3.2.0.XX.
- Added a new profile type “Time-Based Profiling (PERF)” using the Linux PERF kernel subsystem.
- Various minor enhancements and bug fixes.
Please provide feedback and ask questions on the CodeAnalyst Forum.
System Requirements
AMD CodeAnalyst for Linux supports the following platforms: 32-bit and 64-bit Linux distributions based around the 2.6 and 3.0 kernel series on x86 architecture and AMD64 architectures.
Downloads