HOME

TheInfoList



OR:

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