48th International Symposium on Microarchitecture
Ultra-Low Power Render-Based Collision Detection for CPU/GPU Systems
Enrique de Lucas Pedro Marcuello
Joan-Manuel Parcerisa Antonio González
Ultra-Low Power Render-Based Collision Detection for CPU/GPU - - PowerPoint PPT Presentation
48 th International Symposium on Microarchitecture Ultra-Low Power Render-Based Collision Detection for CPU/GPU Systems Enrique de Lucas Pedro Marcuello Joan-Manuel Parcerisa Antonio Gonzlez Market Mobile devices market is
Joan-Manuel Parcerisa Antonio González
Enrique de Lucas
2
2008 2009 2010 2011 2012 2013 2014 200 400 600 800 1000 1200 1400
Millions of unit shipped
PC Smartphone
Enrique de Lucas
3
– Battery life is about 4 hours
– Heat dissipation
– Collision Detection is an important task
Enrique de Lucas 4
Enrique de Lucas
5
Contact!
Enrique de Lucas
6
False Collisions!
Bounding Volume Cuboid Convex Hull Accuracy Low Medium Computing Cost Low High
Enrique de Lucas
7
Enrique de Lucas
8
Steps of Image-Based CD
Depth S c r e e n
P1
Enrique de Lucas
9
Depth P1 Screen Pixels
Steps of Image-Based CD
Depth S c r e e n
P1
Enrique de Lucas
10
1) Project objects onto a plane (screen)
Depth P1 Screen Pixels
Steps of Image-Based CD
Depth S c r e e n
P1
Enrique de Lucas
11
1) Project objects onto a plane (screen)
Depth P1 Screen Pixels
Steps of Image-Based CD
Depth S c r e e n
P1
Enrique de Lucas
12
1) Project objects onto a plane (screen)
Depth P1 Screen Pixels
Steps of Image-Based CD
Depth S c r e e n
P1
Enrique de Lucas
13
1) Project objects onto a plane (screen)
Depth P1 Screen Pixels
Steps of Image-Based CD
Depth S c r e e n
P1
Enrique de Lucas
14
1) Project objects onto a plane (screen) 2) Rasterize surface of the
depths in a list
Depth P1 Screen Pixels
Steps of Image-Based CD
Depth S c r e e n
P1
Enrique de Lucas
15
1) Project objects onto a plane (screen) 2) Rasterize surface of the
depths in a list
Depth P1 Screen Pixels
Steps of Image-Based CD
Depth S c r e e n
P1
Enrique de Lucas
16
1) Project objects onto a plane (screen) 2) Rasterize surface of the
depths in a list
Depth P1 Screen Pixels
Steps of Image-Based CD
Depth S c r e e n
1
P1
Enrique de Lucas
17
1) Project objects onto a plane (screen) 2) Rasterize surface of the
depths in a list
Depth P1 Screen Pixels
Steps of Image-Based CD
Depth S c r e e n
1 7
P1
Enrique de Lucas
18
1) Project objects onto a plane (screen) 2) Rasterize surface of the
depths in a list
Depth P1 Screen Pixels
Steps of Image-Based CD
Depth S c r e e n
1 5 7
P1
Enrique de Lucas
19
1) Project objects onto a plane (screen) 2) Rasterize surface of the
depths in a list
Depth P1 Screen Pixels
Steps of Image-Based CD
Depth S c r e e n
1 2 5 7
P1
Enrique de Lucas
20
1) Project objects onto a plane (screen) 2) Rasterize surface of the
depths in a list
Depth P1 Screen Pixels
Steps of Image-Based CD
Depth S c r e e n
1 2 5 6 7
P1
Enrique de Lucas
21
1) Project objects onto a plane (screen) 2) Rasterize surface of the
depths in a list
Depth P1 Screen Pixels
Steps of Image-Based CD
Depth S c r e e n
1 2 5 6 7 8
P1
Enrique de Lucas
22
1) Project objects onto a plane (screen) 2) Rasterize surface of the
depths in a list
Depth P1 Screen Pixels
Steps of Image-Based CD
Depth S c r e e n
1 2 3 5 6 7 8
P1
Enrique de Lucas
23
1) Project objects onto a plane (screen) 2) Rasterize surface of the
depths in a list
Depth P1 Screen Pixels
Steps of Image-Based CD
Depth S c r e e n
1 2 3 4 5 6 7 8
P1
Enrique de Lucas
24
1) Project objects onto a plane (screen) 2) Rasterize surface of the
in a list 3) Sort values by depth
Depth P1 Screen Pixels
Steps of Image-Based CD
Depth S c r e e n
1 2 3 4 5 6 7 8
P1
Enrique de Lucas
25
1) Project objects onto a plane (screen) 2) Rasterize surface of the
in a list 3) Sort values by depth 4) Detect overlapping depth-ranges
Depth P1 Screen Pixels
Steps of Image-Based CD
Depth S c r e e n
1 2 3 4 5 6 7 8
P1
Enrique de Lucas
26
1) Project objects onto a plane (screen) 2) Rasterize surface of the
in a list 3) Sort values by depth 4) Detect overlapping depth-ranges
Depth P1 Screen Pixels
Steps of Image-Based CD
Depth S c r e e n
1 2 3 4 5 6 7 8
P1
Enrique de Lucas
27
1) Project objects onto a plane (screen) 2) Rasterize surface of the
in a list 3) Sort values by depth 4) Detect overlapping depth-ranges
Depth P1 Screen Pixels
Steps of Image-Based CD
Depth S c r e e n
1 2 3 4 5 6 7 8
P1
Enrique de Lucas
28
1) Project objects onto a plane (screen) 2) Rasterize surface of the
in a list 3) Sort values by depth 4) Detect overlapping depth-ranges
Depth P1 Screen Pixels
Steps of Image-Based CD
Depth S c r e e n
1 2 3 4 5 6 7 8
P1
Enrique de Lucas
29
1) Project objects onto a plane (screen) 2) Rasterize surface of the
in a list 3) Sort values by depth 4) Detect overlapping depth-ranges
Depth P1 Screen Pixels
Steps of Image-Based CD
Depth S c r e e n
1 2 3 4 5 6 7 8
P1
Enrique de Lucas
30
1) Project objects onto a plane (screen) 2) Rasterize surface of the
in a list 3) Sort values by depth 4) Detect overlapping depth-ranges
Depth P1 Screen Pixels
Steps of Image-Based CD
Depth S c r e e n
1 2 3 4 5 6 7 8
P1
Enrique de Lucas
31
1) Project objects onto a plane (screen) 2) Rasterize surface of the
in a list 3) Sort values by depth 4) Detect overlapping depth-ranges
Depth P1 Screen Pixels
Steps of Image-Based CD
Depth S c r e e n
1 2 3 4 5 6 7 8
P1
Enrique de Lucas
32
1) Project objects onto a plane (screen) 2) Rasterize surface of the
in a list 3) Sort values by depth 4) Detect overlapping depth-ranges
Depth P1 Screen Pixels
Steps of Image-Based CD
Depth S c r e e n
1 2 3 4 5 6 7 8
P1
Enrique de Lucas 33
Enrique de Lucas
34
Vertex processor Memory controller
Rasterizer Geometry Stage Raster Stage
Programmable Fixed-Function
Vertices Triangles Fragments
RBCD unit
Collision Points GPU Commands
New Hardware Color Buffer Fragment processor Fragment processor Fragment processor Fragment processor
Collisionable Fragments
Image
Memory
Enrique de Lucas
35
ZEB buffer
Insertion Sort Z-Overlap Test
List 1 / Line 1 (32 B) List 2 / Line 2 (32 B) List 256 / Line 256 (32 B) ...
Enrique de Lucas
36
ZEB buffer
Insertion Sort Z-Overlap Test
List 1 / Line 1 (32 B) List 2 / Line 2 (32 B) List 256 / Line 256 (32 B) ...
Enrique de Lucas
37
ZEB buffer
Insertion Sort Z-Overlap Test
Surface Points (Fragments)
List 1 / Line 1 (32 B) List 2 / Line 2 (32 B) List 256 / Line 256 (32 B) ...
Enrique de Lucas
38
ZEB buffer
Insertion Sort Z-Overlap Test
Surface Points (Fragments)
Insertion Sort
List 1 / Line 1 (32 B) List 2 / Line 2 (32 B) List 256 / Line 256 (32 B) ...
Enrique de Lucas
39
ZEB buffer
Insertion Sort Z-Overlap Test
Surface Points (Fragments)
Z-Overlap Test
List 1 / Line 1 (32 B) List 2 / Line 2 (32 B) List 256 / Line 256 (32 B) ...
Enrique de Lucas
40
ZEB buffer
Insertion Sort Z-Overlap Test
Surface Points (Fragments) Collision Points
Z-Overlap Test
List 1 / Line 1 (32 B) List 2 / Line 2 (32 B) List 256 / Line 256 (32 B) ...
Enrique de Lucas
41
ZEB buffer
Insertion Sort Z-Overlap Test
Surface Points (Fragments) Collision Points
List 1 / Line 1 (32 B) List 2 / Line 2 (32 B) List 256 / Line 256 (32 B) ...
Enrique de Lucas
42
ZEB
List-Register
New
...
Muxes
Comparators
Enrique de Lucas
43
ZEB
List-Register
New
...
Muxes
Comparators
Enrique de Lucas
44
ZEB
List-Register
New
...
Muxes
Comparators
Enrique de Lucas
45
ZEB
List-Register
New
...
Muxes
Comparators
Enrique de Lucas
46
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Search Front-Face
Enrique de Lucas
47
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Search Front-Face
Enrique de Lucas
48
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Search Front-Face
Enrique de Lucas
49
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Is Front Face? Search Front-Face
Enrique de Lucas
50
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Push Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Search Front-Face
Enrique de Lucas
51
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Search Front-Face
Enrique de Lucas
52
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Is Front Face? Search Front-Face
Enrique de Lucas
53
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Search Front-face Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Search Front-Face
Enrique de Lucas
54
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Is any fragment above it? Search Front-Face
Enrique de Lucas
55
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Is any fragment above it? Search Front-Face
Enrique de Lucas
56
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Is Front Face? Search Front-Face
Enrique de Lucas
57
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Push Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Search Front-Face
Enrique de Lucas
58
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Search Front-Face
Enrique de Lucas
59
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Is Front Face? Search Front-Face
Enrique de Lucas
60
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Push Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Search Front-Face
Enrique de Lucas
61
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Search Front-Face
Enrique de Lucas
62
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Is Front Face? Search Front-Face
Enrique de Lucas
63
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Search Front-face Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Search Front-Face
Enrique de Lucas
64
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Search Front-face Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Is any fragment above it? Search Front-Face
Enrique de Lucas
65
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Search Front-face Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Is any fragment above it? Search Front-Face
Enrique de Lucas
66
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Search Front-face Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Search Front-Face
Enrique de Lucas
67
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face?
<red, blue>
Search Front-face Is any fragment above it?
Collision!!! Generate Collision Pairs
Collision!!!
Generate Collision Pairs
Yes No
Search Front-Face
Enrique de Lucas
68
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Search Front-face Is any fragment above it?
Collision!!! Generate Collision Pairs
Collision!!!
Generate Collision Pairs
Yes No
Search Front-Face
Enrique de Lucas
69
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Search Front-Face
Enrique de Lucas
70
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Is Front Face? Search Front-Face
Enrique de Lucas
71
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Search Front-face Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Search Front-Face
Enrique de Lucas
72
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Search Front-face Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Search Front-Face
Enrique de Lucas
73
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Is any fragment above it? Search Front-Face
Enrique de Lucas
74
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Is any fragment above it? Search Front-Face
Enrique de Lucas
75
ZEB
List-Register Stack
Current
Current Element
Is Front Face? Push
Yes No
Search Front-face
Hit0 Hit3 Hit2
Hit1
Collision Pair Generator Fragments Above Front-Face? Is any fragment above it?
Collision!!! Generate Collision Pairs
Yes No
Search Front-Face
Enrique de Lucas 76
Enrique de Lucas
77
– Android and OpenGL ES – GPU timing simulator models:
– GPU power model based on McPAT
Type Donwnloads Captain America beat'em up 10-50 M Crazy Snowboard snowboard arcade 5-10 M Sleepy Jack action 100-500 K Temple Run adventure arcade 100-500 M
Enrique de Lucas
78
– RBCD reuses rendering results
cap crazy sleepy temple geo.mean
1000 2000 3000 4000 5000 6000 Speedup
cap crazy sleepy temple geo.mean
1000 2000 3000 4000 5000 6000 Energy Reduction
Enrique de Lucas
79
Row 1 Row 2 Row 3 Row 4 2 4 6 8 10 12 Column 1 Column 2 Column 3
cap crazy sleepy temple geo.mean 0.2 0.4 0.6 0.8 1
Normalized Energy
cap crazy sleepy temple geo.mean 0.2 0.4 0.6 0.8 1
Normalized Time
Enrique de Lucas
80
cap crazy sleepy temple geo.mean
Triangles Fragments
Normalized
Face Culling
Rasterization
Fragments
Fragment Processing
Common Face Culling:
Face Culling
Rasterization
Fragments
Fragment Processing
Fragments
CD
Deferred Face Culling:
Enrique de Lucas
81
graphics animation applications
done in image rendering
–
2875x energy reduction
–
3400x speedup
–
Pixel level accuracy
–
Small overheads: time (3%), energy (3.5%) and area (1%)
Joan-Manuel Parcerisa Antonio González