How can I profiler a Mali GPU on an Android device with native code?
Suppose a binary on the Android device is run as "./run.bin". This binary is not packaged as an apk. That binary contains OpenCL code. How can I profile this? I am ideally looking for a similar output as Nvidia's Nsight profiler.
I understand that the Streamline Performance Analyzer can profile applications on Android. However, the documentation outlines how to capture data for an apk started through Streamline. Can I somehow collect data for a native binary?
you've got your answer on Arm community forums, but I'll put it here for others as well:
You will need a debug version of the binary and you will need to use the
gatordtool.Push
gatord(located atArm_Performance_Studio/streamline/bin/android/arm64/) to the android device and then inadb shellrun the exectuable like below, giving the name of the capture as part of output, eg something like:ought to work.
Refer to
--helpfor a list of command line arguments used to configure the target (see for example--print counters, and-Cfor configuration).You can also use the Streamline UI to make a live capture from the target in this configuration (which will allow you to apply GPU templates if you are interested in such things)... run gatord like:
and then use the "TCP/IP" option, rather than the "Android" option in the "Start" tab. If your device is connected by adb/usb, and the adb command is in the PATH (or is configured in the Streamline UI preferences) then you should see the device appear in the list of available devices.