AMD
Advanced Micro Devices, Inc. (AMD) is an American multinational corporation and technology company headquartered in Santa Clara, California and maintains significant operations in Austin, Texas. AMD is a hardware and fabless company that de ...
CodeAnalyst is a
GUI
Gui or GUI may refer to:
People Surname
* Gui (surname), an ancient Chinese surname, ''xing''
* Bernard Gui (1261 or 1262–1331), inquisitor of the Dominican Order
* Luigi Gui (1914–2010), Italian politician
* Gui Minhai (born 1964), Ch ...
-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 8086 microprocessor and its 8-bit-external-bus variant, the 8088. Th ...
and
x86-64
x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit extension of the x86 instruction set architecture, instruction set. It was announced in 1999 and first available in the AMD Opteron family in 2003. It introduces two new ope ...
-based machines. CodeAnalyst has similar look and feel on both
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
and
Microsoft Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
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, and Delaware General Corporation Law, incorporated in Delaware. Intel designs, manufactures, and sells computer compo ...
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.
D ...
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
In computer programming, a function (also procedure, method, subroutine, routine, or subprogram) is a callable unit of software logic that has a well-defined interface and behavior and can be invoked multiple times.
Callable units provide a ...
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
A pipeline is a system of Pipe (fluid conveyance), pipes for long-distance transportation of a liquid or gas, typically to a market area for consumption. The latest data from 2014 gives a total of slightly less than of pipeline in 120 countries ...
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, also called a ramus in botany, is a stem that grows off from another stem, or when structures like veins in leaves are divided into smaller veins.
History and etymology
In Old English, there are numerous words for branch, includi ...
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 Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
2.0.
AMD CodeAnalyst Performance Analyzer for Linux
/ref>
CodeAnalyst also uses other open-source components, including the Qt framework
Qt ( pronounced "cute") is a cross-platform application development framework for creating graphical user interfaces as well as cross-platform applications that run on various software and hardware platforms such as Linux, Windows, macOS, An ...
, 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 and 25 instruction set architectures.
History
When ...
.
See also
* AMD uProf
*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 the advanced hardware-based sampling fea ...
* 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