The Qualcomm® Snapdragon™ Performance Visualizer, a product of Qualcomm Technologies, Inc. is a suite of tools that allows developers to better analyze their code’s operation on a Snapdragon processor. This session will show developers how to examine interrupts, DSP information, GPU events, performance counters and temperature, as well as custom, user-defined data and more.
Learn more about Snapdragon Performance Visualizer: https://developer.qualcomm.com/mobile-development/increase-app-performance/snapdragon-performance-visualizer
Watch this presentation on YouTube:
https://www.youtube.com/watch?v=iVrF6LEyCwY
2. Visualize your system with
Qualcomm® Snapdragon™
Performance Visualizer
Kevin A. Sapp, Engineer, Principal
Qualcomm Innovation Center, Inc.
Qualcomm Snapdragon is a product of Qualcomm Technologies, Inc.
3. 3
Real Time Data
and Live View
Adding Custom
Data
Agenda
2 3 4 61
Profiling and
Trace
5
QuestionsWhat is
Qualcomm®
Snapdragon™
Performance
Visualizer (SPV)
Qualcomm Embedded Power Monitor is a product of Qualcomm Technologies, Inc.
Power and
Qualcomm®
Embedded
Power Monitor
(QEPM)
4. 4
Adding Custom
Data
Agenda
3 4 6
Profiling and
Trace
5
QuestionsReal Time Data
and Live View
21
What is
Qualcomm®
Snapdragon™
Performance
Visualizer (SPV)
Power and
Qualcomm®
Embedded
Power Monitor
(QEPM)
8. 8
Agenda
6
Questions
1
Real Time Data
and Live View
2
Adding Custom
Data
3
Profiling and
Trace
4 5
?
What is
Qualcomm®
Snapdragon™
Performance
Visualizer (SPV)
Power and
Qualcomm®
Embedded
Power Monitor
(QEPM)
10. 10
Snapdragon Performance Visualizer (SPV) is a
comprehensive software tool suite that is designed
to enable Android developers using the Qualcomm®
Snapdragon™ Mobile Development Platform
(MDP) to visualize, analyze and correlate the
impact of detailed CPU and system data on
application performance, making it easier to
pinpoint and resolve performance bottlenecks.
11. 11
The GUI is web based
− Dojo
− JavaScript
− Scalable Vector Graphics (SVG)
− JSON
Command Line
− ssh access for advanced command line tools
− Access to “perf” command line
− Other familiar tools, top, strace, etc
− Scripting (bash, perl) for automation
Automation
− Web based automation APIs available for many of the tools
− http://server:7376/api/setSessionTimeout&sessionId=131074&timeout=3600
How Does SPV Work
Web based tool set and more
12. 12
Monitor performance
Examine performance monitors (CPU, L2, GPU, DSP)
Visualize system traces
Statistical (time or event) profiling
Add custom data, custom markers
Thermal data
Integrate with power monitoring (QEPM) tools
Memory leak and allocation corruption detection
Kernel probes
B and E markers from Atrace
Runs on most Linux based distributions (Android, Ubuntu, Debian, Tizen, Chrome, etc)
What can SPV do?
Tools to monitor the system post processed and in real-time
14. 14
CPU Information
− Performance Monitors (cache hits)
− Utilization
− Frequency
− Temperature
− more
GPU Information
− Performance monitors
− Utilization
− Frequency
− more
DSP
− Performance Monitors
Live View
Real time collection and Visualization of time correlated system data
Source: Snapdragon Performance Visualizer screen shots
15. 15
Live View (2)
Live View is the bridge to ProfileView’s advanced visualization and correlations
=
Source: Snapdragon Performance Visualizer screen shots
18. 18
File Line Field
− Reads /proc, /sys, /debugfs files
− Periodically plots the value in a specific File …
− At a specific Line number
− And a specific Field on that line
Named Pipes
− Marker
− Long
− Double
− Binary
Adding Custom Data to SPV
Mechanisms to extend SPV with your unique data
Source: Snapdragon Performance Visualizer screen shots
19. 19
File Line Field node
− Look at the run-queue depth on CPU0
− Stored in
/sys/devices/system/cpu/cpu0/rq-
stats/run_queue_avg
Pipe data format is:
− timestamp,data<cr> -or- ,data<cr>
− Timestamp is gtod, in decimal seconds
− e.g. 12345.34567
− Data can be written from shells using
echo
− echo “,123.456” > /tmp/namedpipe
Adding Custom Data to SPV
Some simple code and nodes
Source: Snapdragon Performance Visualizer screen shots
22. 22
Sample based profiling
Uses “perf record” under the covers
Not real-time
− Collect – Stop – Analyze
Multiple Visualizations
− Text Based (Oprofile)
− ProfileView GUI
Libs provided for instrumented code
Profiling
Statistical and instrumented
Source: Snapdragon Performance Visualizer screen shots
23. 23
Correlate events
See when frequency changes
Which processes/threads are running
When CPU issues commands to GPU
Per-context Performance Monitors
Call stack analysis
Hot Spot analysis
Not real-time
− Collect – Stop – Analyze
Correlates with Live View data
Correlates with Profile data
Correlates with Custom data
Tracing
Instrumented kernel and code
Source: Snapdragon Performance Visualizer screen shots
26. 26
Monitors current and voltage rails
Combined sample rates up 50K
Simultaneously monitor multiple devices
Correlate data with SPV
− Frequency
− Thermal
− Performance
Web based
Automation interface
Data export capabilities
QEPM
Source: Snapdragon Performance Visualizer screen shots