As expected, we can't do all of this work with no additional tools. Profiling applications is a subject that requires a backend of established software, used to neatly organize and present us with the data of performance subtleties. CodeXL is an application we have already covered in Chapter 9 , The Speed of Dark - Lighting and Shadows and although we used it to view runtime OpenGL states, it also has quite a suite of options used to profile both CPU and GPU code. It can be found and downloaded here: http://gpuopen.com/compute-product/codexl/.
Of course, if we don't have AMD hardware, only a very limited set of tools for profiling are available. Although we can get by with the limited CPU profiling options, GPU profiling on an Nvidia card, for example, would require a different tool. There are some choices out there, but one notable option is Nvidia Nsight: http://www.nvidia.com/object/nsight.html.
It's worth mentioning, however, that the newest versions of Nsight...