-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexample_queries.sql
More file actions
68 lines (63 loc) · 1.53 KB
/
example_queries.sql
File metadata and controls
68 lines (63 loc) · 1.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
-- Example SQL queries for AMD GPU profiling analysis
-- Each query becomes a sheet in the output Excel file
-- @query: kernel_summary
-- @align: name
-- Summary of all GPU kernels with timing statistics
SELECT
name,
COUNT(*) as call_count,
SUM(dur) / 1e6 as total_ms,
AVG(dur) / 1e6 as avg_ms,
MIN(dur) / 1e6 as min_ms,
MAX(dur) / 1e6 as max_ms
FROM slice
WHERE category = 'hip' OR category = 'hsa' OR dur > 0
GROUP BY name
ORDER BY total_ms DESC;
-- @query: kernel_timeline
-- @align: name
-- Individual kernel executions in order
SELECT
name,
ts / 1e6 as start_ms,
dur / 1e6 as dur_ms,
track_id
FROM slice
WHERE dur > 0
ORDER BY ts;
-- @query: gpu_memory_ops
-- @align: name
-- Memory operations (copies, allocations)
SELECT
name,
COUNT(*) as count,
SUM(dur) / 1e6 as total_ms,
AVG(dur) / 1e6 as avg_ms
FROM slice
WHERE name LIKE '%copy%' OR name LIKE '%memcpy%' OR name LIKE '%Memcpy%'
OR name LIKE '%alloc%' OR name LIKE '%Alloc%'
GROUP BY name
ORDER BY total_ms DESC;
-- @query: top_kernels
-- @align: name
-- Top 20 most time-consuming kernels
SELECT
name,
COUNT(*) as calls,
SUM(dur) / 1e6 as total_ms,
AVG(dur) / 1e6 as avg_ms
FROM slice
WHERE dur > 1000
GROUP BY name
ORDER BY total_ms DESC
LIMIT 20;
-- @query: track_summary
-- Summary of trace tracks (threads/streams)
SELECT
t.name as track_name,
COUNT(s.id) as event_count,
SUM(s.dur) / 1e6 as total_dur_ms
FROM track t
LEFT JOIN slice s ON t.id = s.track_id
GROUP BY t.id, t.name
ORDER BY total_dur_ms DESC;