We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I'm working with an ARM Cortex-A8 platform that is using a non-Mali based GPU.
I would like to be able to use Streamline Analyzer for profiling and include GPU profiling data. I have sufficient technical knowledge of the GPU (documentation and source) to know how to get all the profile data out of it.
Is there a way to adapt Streamline Analyzer to support different GPUs? (The only way I see at the moment would be to modify the source of gator.ko and either hack the mali code to get data from the other GPU or create a new chunk of code in the kernel driver and modify the daemon accordingly.)
Thoughts?
Hi cphealy, Streamline can indeed be adapted to support any IP block on your target which exposes performance counters in the processor's memory map. This includes non-Mali GPUs as well as non-ARM fabric components such as interconnect, memory controllers, DMAs, etc.
There are several ways to do this:
1- Hack the gator kernel module to point to the location of the counters in the memory map. For example, the default gator.ko implements support for L2 cache in this way
2- Add support for your GPU in Linux perf, and the GPU drivers, and just get gator to read the counters via a perf back-end
3- Ask your chipset provider whether they already have support for Streamline in their drivers for internal use (which is often the case)
Option 3 is best for obvious reasons. If that doesn't work I would recommend option 2 because it gives you support in open source tools too, so you kill two birds with a single stone.