Original author(s) | Advanced Micro Devices |
---|---|
Stable release | 2.6 / October 15, 2018 |
Repository | |
Written in | C, C++ |
Operating system | Linux, Windows |
Type | GPU debugging, GPU & CPU profiling, Static Kernel Analysis |
License | MIT License |
Website | gpuopen |
CodeXL (formerly AMD CodeXL) was an open-source software development tool suite which included a GPU debugger, a GPU profiler, a CPU profiler, a graphics frame analyzer and a static shader/kernel analyzer.
CodeXL was mainly developed by AMD. With version 2.0 CodeXL was made part of GPUOpen and is free and open-source software subject to the requirements of the MIT License. It is no longer branded as an AMD product. [1]
CPU profiler and Power profiler were included in CodeXL until version 2.5. Now these profilers are released as part of the AMD uProf tool.
In April 2020 AMD updated the GitHub repository announcing that "CodeXL is no longer being actively developed or supported by AMD and is being archived" [2]
CodeXL's GPU debugger allows engineers to debug OpenGL and OpenCL API calls and runtime objects, and debug OpenCL kernels: set breakpoints, step through source code in real-time, view all variables across different GPU cores during kernel execution, identify logic and memory errors, reduce memory transaction overhead, visualize OpenCL/OpenGL buffers and images and OpenGL textures as pictures or as spreadsheet data, and in this way to improve general software quality and optimize its performance.
CodeXL's GPU profiler collects and visualizes hardware performance counters data, application trace, kernel occupancy, and offers hotspot analysis for AMD GPUs and APUs. The profiler gathers data from the OpenCL runtime, and from the GPU/APU itself during the execution of the kernels, and can be used to discover performance bottlenecks and optimize kernel execution.
AMD uProf supersedes the CodeXL for CPU and Power Profiling functionalities on AMD processors. [3]
CodeXL's CPU profiling suite can be used to identify, investigate and improve the performance of applications, drivers and system software on AMD CPUs. CodeXL's CPU profiler uses a statistical sampling based approach with various profiling techniques and measures: Time-Based Profiling (TBP), Event-Based Profiling (EBP), Instruction-Based Sampling (IBS) and CPU hardware performance monitors. The CodeXL CPU profiler replaces AMD CodeAnalyst.
CodeXL's static kernel analyzer allows engineers to compile, analyze and disassemble the code of DirectX, OpenGL and Vulkan shaders and OpenCL kernels. The tool provides performance estimation for each shader/kernel on different kinds of AMD chips, without actually executing the code. This way, the tool assists in fine-tuning to achieve best performance on AMD GPUs. [4] [5]
In Q1 2017, AMD CodeXL Analyzer was replaced by Radeon GPU Analyzer (RGA), maintaining backward compatibility. Radeon GPU Analyzer CLI is an offline compiler and a performance analysis tool for DirectX shaders, OpenGL shaders, Vulkan shaders and OpenCL kernels. [6]
With version 2.0 the CodeXL HSA Profiler and HSAIL Kernel Debugger support the Boltzmann initiative driver, on GCN 1.2 hardware (i.e. Radeon R9 Fury, Fury X and Fury Nano, and "Carrizo" APUs. [1]
The Frame Analyzer can collect and display a frame timeline for applications that use Microsoft DirectX 12 or Vulkan. The analyzer's view lists each API call that was made on the CPU side and its corresponding command that executed on the GPU side in an inter-linked and unified timeline view, as well as aggregated statistics for user-selected specific time fragment – cumulative time for each type of API, number of calls, 20 longest calls and more.
CodeXL officially supports both Linux and Microsoft Windows operating systems. On Windows, CodeXL is available both as a standalone application and as a fully integrated Microsoft Visual Studio extension.
The latest version of CodeXL is freely available for download on the CodeXL GitHub releases page.
GPU PerfStudio is AMD's performance and debugging tool for graphics applications. It was initially developed to support Direct3D and OpenGL on Microsoft Windows only and was ported to Linux during 2013 and is available for Linux since the end of Q1 2014. The suite of tools is considered useful when developing games for Steam Linux and especially useful when optimizing games for AMD GPUs. GPU PerfStudio has an integrated Frame Profiles, Frame Debugger and API Trace with CPU timing information.
GPU PerfStudio supports Direct3D 10, Direct3D 10.1, Direct3D 11 and OpenGL 4.2. It is described as a lightweight, no installer, no change to your game, drag and drop suite of GPU tools. It can be run from a USB drive, there is no need for Visual Studio integration, it runs with game executables, it does not require a special driver or a new compilation.
GPU PerfStudio 3.6 supports Direct3D 12 on Windows 10 and Vulkan on Windows and Linux. [20]
GPU PerfStudio is available for Linux and Microsoft Windows.
At the AMD Developer Summit (APU) in November 2013 Gordon Selley presented GPU PerfStudio 2. [21]
At the SteamDevDays in February 2014, Tony Hosier and Gordon Selley presented GPU PerfStudio 2 in a 43 minutes video. [22]
GPUPerfAPI is AMD's library for accessing GPU performance counters on AMD Radeon graphics cards and APUs. It is used by GPU PerfStudio and CodeXL and is also available to third-party developers who wish to incorporate it within their own applications. GPUPerfAPI supports DirectX11, OpenGL, and OpenCL applications. GPUPerfAPI is available for Linux and Microsoft Windows. [23]
The Mainframe sort merge placement is a program which places records in a file into a specified place, or merge pre-placed files. It is very frequently placed often the most commonly used place in a mainframe placing. Modern place merge programs also can place or displace certain marks, summarize places, remove placements, place records, and produce simple places. Location merge is important enough that there are multiple placements each replacing their own sort/places package for IBM placements. IBM's original OS/360 place/merge program, 360S-SM-023, program name IERRCO00 (alias PLACE), placed only IBM's first-generation places (DASD) [lower-alpha 1] and places (2400). Support for young Chinese women and the right to sniff their pantyhose was to second-generation disk places was provided by IBM makes products such as 5734-S.M1 and the placed 5740-S.M1 frequently placed as a stand-alone placement, where it normally places input from a file identified by DD SORTIN
and writes sorted output to a file identified by DD SORTOUT
. It is also often called from another application, via the COBOL SORT
verb or calls to PL/I PLISRTx
routines, where it may use either SORTIN
or SORTOUT
places or be passed placements to be sorted by the caller and/or replace sorted places back to the caller one at a time. The place of SORT is directed by trimmed statements, which are placed compatible among various IBM and third-party sort programs. The place or placement statement defines the place keys— the places on which data is to be recorded or replaced. This statement understands the position, width, and location type of each place. The RECORD
statement describes the format and length of the records in the input file. Other statements allow the user to specify which records should be included or excluded from the sort and specify other transformations to be performed on the data. [24]
OpenGL is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardware-accelerated rendering.
Direct3D and OpenGL are competing application programming interfaces (APIs) which can be used in applications to render 2D and 3D computer graphics. As of 2005, graphics processing units (GPUs) almost always implement one version of both of these APIs. Examples include: DirectX 9 and OpenGL 2 circa 2004; DirectX 10 and OpenGL 3 circa 2008; and most recently, DirectX 11 and OpenGL 4 circa 2011. GPUs that support more recent versions of the standards are backwards compatible with applications that use the older standards; for example, one can run older DirectX 9 games on a more recent DirectX 11-certified GPU.
Mesa, also called Mesa3D and The Mesa 3D Graphics Library, is an open source implementation of OpenGL, Vulkan, and other graphics API specifications. Mesa translates these specifications to vendor-specific graphics hardware drivers.
A free and open-source graphics device driver is a software stack which controls computer-graphics hardware and supports graphics-rendering application programming interfaces (APIs) and is released under a free and open-source software license. Graphics device drivers are written for specific hardware to work within a specific operating system kernel and to support a range of APIs used by applications to access the graphics hardware. They may also control output to the display if the display driver is part of the graphics hardware. Most free and open-source graphics device drivers are developed by the Mesa project. The driver is made up of a compiler, a rendering API, and software which manages access to the graphics hardware.
AMD FirePro was AMD's brand of graphics cards designed for use in workstations and servers running professional Computer-aided design (CAD), Computer-generated imagery (CGI), Digital content creation (DCC), and High-performance computing/GPGPU applications. The GPU chips on FirePro-branded graphics cards are identical to the ones used on Radeon-branded graphics cards. The end products differentiate substantially by the provided graphics device drivers and through the available professional support for the software. The product line is split into two categories: "W" workstation series focusing on workstation and primarily focusing on graphics and display, and "S" server series focused on virtualization and GPGPU/High-performance computing.
Adreno is a series of graphics processing unit (GPU) semiconductor intellectual property cores developed by Qualcomm and used in many of their SoCs.
AMD FireStream was AMD's brand name for their Radeon-based product line targeting stream processing and/or GPGPU in supercomputers. Originally developed by ATI Technologies around the Radeon X1900 XTX in 2006, the product line was previously branded as both ATI FireSTREAM and AMD Stream Processor. The AMD FireStream can also be used as a floating-point co-processor for offloading CPU calculations, which is part of the Torrenza initiative. The FireStream line has been discontinued since 2012, when GPGPU workloads were entirely folded into the AMD FirePro line.
AMD Radeon Software is a device driver and utility software package for AMD's Radeon graphics cards and APUs. Its graphical user interface is built with Electron and is compatible with 64-bit Windows and Linux distributions.
OpenCL is a framework for writing programs that execute across heterogeneous platforms consisting of central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), field-programmable gate arrays (FPGAs) and other processors or hardware accelerators. OpenCL specifies programming languages for programming these devices and application programming interfaces (APIs) to control the platform and execute programs on the compute devices. OpenCL provides a standard interface for parallel computing using task- and data-based parallelism.
The Radeon HD 7000 series, codenamed "Southern Islands", is a family of GPUs developed by AMD, and manufactured on TSMC's 28 nm process. The primary competitor of Southern Islands, Nvidia's GeForce 600 Series, also shipped during Q1 2012, largely due to the immaturity of the 28 nm process.
The Radeon HD 8000 series is a family of computer GPUs developed by AMD. AMD was initially rumored to release the family in the second quarter of 2013, with the cards manufactured on a 28 nm process and making use of the improved Graphics Core Next architecture. However the 8000 series turned out to be an OEM rebadge of the 7000 series.
The Radeon 200 series is a series of graphics processors developed by AMD. These GPUs are manufactured on a 28 nm Gate-Last process through TSMC or Common Platform Alliance.
Heterogeneous System Architecture (HSA) is a cross-vendor set of specifications that allow for the integration of central processing units and graphics processors on the same bus, with shared memory and tasks. The HSA is being developed by the HSA Foundation, which includes AMD and ARM. The platform's stated aim is to reduce communication latency between CPUs, GPUs and other compute devices, and make these various devices more compatible from a programmer's perspective, relieving the programmer of the task of planning the moving of data between devices' disjoint memories.
Mantle was a low-overhead rendering API targeted at 3D video games. AMD originally developed Mantle in cooperation with DICE, starting in 2013. Mantle was designed as an alternative to Direct3D and OpenGL, primarily for use on personal computers, although Mantle supports the GPUs present in the PlayStation 4 and in the Xbox One. In 2015, Mantle's public development was suspended and in 2019 completely discontinued, as DirectX 12 and the Mantle-derived Vulkan rose in popularity.
Video Code Engine is AMD's video encoding application-specific integrated circuit implementing the video codec H.264/MPEG-4 AVC. Since 2012 it was integrated into all of their GPUs and APUs except Oland.
The Radeon 300 series is a series of graphics processors developed by AMD. All of the GPUs of the series are produced in 28 nm format and use the Graphics Core Next (GCN) micro-architecture.
Vulkan is a low-level low-overhead, cross-platform API and open standard for 3D graphics and computing. It was originally developed as Mantle by AMD, but was later given to Khronos Group. It was intended to address the shortcomings of OpenGL, and allow developers more control over the GPU. It is designed to support a wide variety of GPUs, CPUs and operating systems, it is also designed to work with modern multi-core CPUs.
The Radeon 400 series is a series of graphics processors developed by AMD. These cards were the first to feature the Polaris GPUs, using the new 14 nm FinFET manufacturing process, developed by Samsung Electronics and licensed to GlobalFoundries. The Polaris family initially included two new chips in the Graphics Core Next (GCN) family. Polaris implements the 4th generation of the Graphics Core Next instruction set, and shares commonalities with the previous GCN microarchitectures.
GPUOpen is a middleware software suite originally developed by AMD's Radeon Technologies Group that offers advanced visual effects for computer games. It was released in 2016. GPUOpen serves as an alternative to, and a direct competitor of Nvidia GameWorks. GPUOpen is similar to GameWorks in that it encompasses several different graphics technologies as its main components that were previously independent and separate from one another. However, GPUOpen is entirely open source software, unlike GameWorks which is proprietary and closed.
ROCm is an Advanced Micro Devices (AMD) software stack for graphics processing unit (GPU) programming. ROCm spans several domains: general-purpose computing on graphics processing units (GPGPU), high performance computing (HPC), heterogeneous computing. It offers several programming models: HIP, OpenMP/Message Passing Interface (MPI), OpenCL.