10.3 AMD CodeXL

之前的章节我们提到过,如何使用OpenCL API获取OpenCL命令的一些计时信息。下面的小节中我们就来了解一下,使用AMD的CodeXL,如何进行性能分析,以及如何调试OpenCL程序。CodeXL在AMD开发者论坛中是一款大家比较喜爱的工具,其能在AMD平台上对OpenCL应用进行性能评估和调试。

CodeXL可以在多种模式下操作,开发者可通过不同的模式对OpenCL程序进行观察。基本模式下,CodeXL可以作为分析器、调试器,以及内核静态分析工具使用。CodeXL的主要功能在这里进行简答的介绍:

  • 性能分析模式:CodeXL对OpenCL应用进行功能性的性能分析。CodeXL会将OpenCL运行时数据和AMD Radeon GPU执行的数据汇总。
  • 内核静态分析模式:CodeXL可以视为一个静态分析工具,可以对OpenCL内核的编译、解析和汇编进行分析。这种模式下CodeXL也可以作为内核的原型工具。
  • 调试模式:CodeXL可以用来调试OpenCL应用。CodeXL允许开发者对OpenCL内核源码和运行时API进行单步调试。这个模式下也可以观察函数参数,从而减少内存消耗。

CodeXL的使用方式有两种:

  1. Visual Studio插件:CodeXL可以对当前激活的解决方案进行分析。只需要在菜单栏找到插件,并使用插件运行程序即可进行调试。
  2. 独立使用:CodeXL也可以作为一个独立的软件,安装在Windows和Linux系统下。独立的软件使用方式有一个好处,就是不需要加载那么多的源文件。开发者只需要建立对应的CodeXL工程,并设置应用二进制文件的路径,命令行参数和内核源码所在位置即可。

CodeXL的三种模式都可以在插件或独立软件中完成。读者需要在AMD的开发者网站下载CodeXL。后面的章节我们将以CodeXL 1.5作为式例。读者也可以根据软件所带的使用指南熟悉最新版本CodeXL的特性。