I‘d like to give you a glimpse into what’s new in CodeXL 1.3 (released on Nov-11, 2013). If you’re not familiar with CodeXL, it is a unified developer tool suite that includes:
- GPU Debugger: Debugging tool for OpenCL™/OpenGL™ API calls and OpenCL™ kernels
- CPU Profiler: A profiling suite for tuning application performance for AMD CPUs
- GPU Profiler: A GPU profiler for OpenCL™ and DirectCompute applications on AMD APUs/GPUs
- Static Analyzer: Analyze OpenCL™ kernels statically to estimate and tune performance
So what’s new in CodeXL 1.3? Lots!
The legacy KernelAnalyzer application is now obsolete, replaced by CodeXL’s brand new user experience for OpenCL™ static kernel analysis, integrated into the CodeXL application and Visual Studio extension. CodeXL’s new ‘Analyze’ mode packs the OpenCL™ source file, IL and ISA, kernels, target devices, statistics and analysis into the CodeXL explorer tree for easy orientation and navigation. Offline build for a range of target devices is supported together with performance analysis, as shown in the screenshot.
CodeXL 1.3 – ‘Analyze’ mode
The analysis of the kernel performance is displayed using a novel division to 3 control flows representing estimated performance when all branches evaluate to True, to False or when All instructions are performed.
For those of you who need to debug or profile your GPU code on embedded systems or headless server nodes, CodeXL 1.3 has just the thing for you – remote GPU debugging and profiling. You can run the new CodeXL Remote Agent on a target Windows or Linux system, launch CodeXL on your development station as a standalone app or as a Visual Studio extension, and debug or profile directly on the remote target device.
CodeXL 1.3 – Remote debugging and profiling
The CPU Profiler sports a new design for the source code view, allowing you to see the samples collected and the source lines or assembly instructions associated with them. A hotspot indicator allows you to choose one of CodeXL’s measured metrics for indication of potential hotspots and display it in numeric and percentage formats right next to the source code.
CodeXL 1.3 – CPU Profiling, Source Code View
In addition, the CPU Profiler now supports Java inline functions, C++ Call-Stack Sampling has been boosted to support much longer call-paths, and we’ve added a new profile session type for analyzing Cache Line Utilization. This allows you to pinpoint functions whose performance can be improved by utilizing the L1 cache better. Line evictions, crossing of cache line boundaries, number of bytes per access and other metrics provide an in-depth view of the way your code works with the cache, as seen in the screenshot below.
CodeXL 1.3 – CPU Profiling, analyzing the Cache Line Utilization
On the debugger front, CodeXL’s support for OpenCL™ 1.2 is now complete, including all APIs and data types. We’ve also added support for OpenGL API, shader types and state variables, up to and including OpenGL 4.3.
This is just a brief overview. There’s lots more, including more features, bug fixes, design improvements, support for latest driver releases and better documentation.
You can download AMD CodeXL 1.3 here. On the landing page you will find the quick start guide, release notes and other useful info on AMD CodeXL. Additionally, the AMD CodeXL forum is a place to exchange ideas, seek support and get updates on AMD CodeXL.
Let me know what you think of CodeXL 1.3. We’re always eager for feedback!
Doron Ofek is a Manager of Software Development at AMD Developer Tools group. His postings are his own opinions and may not represent AMD’s positions, strategies or opinions. Links to third party sites, and references to third party trademarks, are provided for convenience and illustrative purposes only. Unless explicitly stated, AMD is not responsible for the contents of such links, and no third party endorsement of AMD or any of its products is implied.