AMD CodeAnalyst
   HOME

TheInfoList



OR:

AMD Advanced Micro Devices, Inc. (AMD) is an American multinational semiconductor company based in Santa Clara, California, that develops computer processors and related technologies for business and consumer markets. While it initially manufactur ...
CodeAnalyst is a
GUI The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
-based code profiler for
x86 x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel based on the Intel 8086 microprocessor and its 8088 variant. The 8086 was intr ...
and
x86-64 x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit version of the x86 instruction set, first released in 1999. It introduced two new modes of operation, 64-bit mode and compatibility mode, along with a new 4-level paging ...
-based machines. CodeAnalyst has similar look and feel on both
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, w ...
and Microsoft Windows platforms. CodeAnalyst uses specific hardware profiling techniques which are designed to work with AMD processors, as well as a timer-based profiling technique which does not require specific hardware support; this allows a subset of profiling features to work on non-AMD processors, such as
Intel Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California. It is the world's largest semiconductor chip manufacturer by revenue, and is one of the developers of the x86 seri ...
processors. As of March 2013, CodeAnalyst has been replaced by AMD CodeXL.


Code optimization

CodeAnalyst is built on
OProfile In computing, OProfile is a system-wide statistical profiling tool for Linux. John Levon wrote it in 2001 for Linux kernel version 2.4 after his M.Sc. project; it consists of a kernel module, a user-space daemon and several user-space tools. De ...
for the Linux platform and is available as a free download. The GUI assists in various kinds of code profiling including time based profiling, hardware event-based profiling, instruction-based profiling and others. This produces statistics about details such as time spent in each subroutine which can be drilled down to the source code or instruction level. The time taken by the instructions can be indicative of stalls in the
pipeline Pipeline may refer to: Electronics, computers and computing * Pipeline (computing), a chain of data-processing stages or a CPU optimization found on ** Instruction pipelining, a technique for implementing instruction-level parallelism within a s ...
during instruction execution. Optimization could be as simple as reordering the instructions for maximum utilization of a data line cache or altering/removing the
branches A branch, sometimes called a ramus in botany, is a woody structural member connected to the central trunk of a tree (or sometimes a shrub). Large branches are known as boughs and small branches are known as twigs. The term ''twig'' usually r ...
and loops so that the maximum number of execution units(Load/Store units, ALU, FP execution unit...) are utilized in parallel. Support for PERF was added in CodeAnalyst 3.4, allowing users to choose between OProfile and PERF as the profiling backend.


Instruction-Based Sampling

CodeAnalyst supports IBS (Instruction-Based Sampling) that was introduced in Family 10h AMD processors (Barcelona). With IBS support, CodeAnalyst can more precisely identify instructions that cause pipeline stalls and cache misses.


Open-source

The Linux version of CodeAnalyst is available under
GNU General Public License The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general ...
2.0.AMD CodeAnalyst Performance Analyzer for Linux
/ref> CodeAnalyst also uses other open-source components, including the
Qt framework Qt (pronounced "cute") is cross-platform software for creating graphical user interfaces as well as cross-platform applications that run on various software and hardware platforms such as Linux, Windows, macOS, Android or embedded systems wit ...
, libdwarf, libelf, and the
Binary File Descriptor library The Binary File Descriptor library (BFD) is the GNU Project's main mechanism for the portable manipulation of object files in a variety of formats. , it supports approximately 50 file formats for some 25 instruction set architectures. History ...
.


See also

*
AMD uProf Advanced Micro Devices, Inc. (AMD) is an American multinational semiconductor company based in Santa Clara, California, that develops computer processors and related technologies for business and consumer markets. While it initially manufactur ...
*Intel
VTune VTune Profiler (formerly VTune Amplifier) is a performance analysis tool for x86 based machines running Linux or Microsoft Windows operating systems. Many features work on both Intel and AMD hardware, but advanced hardware-based sampling require ...
* AMD CodeXL *
List of performance analysis tools This is a list of performance analysis tools for use in software development. General purpose, language independent The following tools work based on log files that can be generated from various systems. * time (Unix) - can be used to determi ...


References


External links

* https://web.archive.org/web/20120204112454/http://developer.amd.com/tools/CodeAnalyst/Pages/default.aspx {{AMD graphics AMD software Free software programmed in C++ Free system software Profilers Software that uses Qt