Massively Parallel A* Search on a GPU Yichao Zhou Jianyang Zeng Institute for Interdisciplinary Information Sciences Tsinghua University, Beijing, P. R. China Jan, 2015 Yichao Zhou, Jianyang Zeng Massively Parallel A* Search on a GPU
A Brief Concept to GPU Computation Core 1 Core 2 CPU (several cores) performance GPU (thousands of cores) Yichao Zhou, Jianyang Zeng Massively Parallel A* Search on a GPU ☺ More computational units ☺ Decent single thread ☺ Energy efficient ☹ Limited in parallelism ☹ Need massive parallelism
Shortest Path Search Problem Find the shortest path from the starting node s to the goal node t . s t Yichao Zhou, Jianyang Zeng Massively Parallel A* Search on a GPU
Heuristic Function s x t Heuristic Function Yichao Zhou, Jianyang Zeng Massively Parallel A* Search on a GPU f ( x ) = g ( x ) + h ( x ) g ( x ) : distance from the starting node s to node x ; h ( x ) : estimated distance from node x to the goal node t
Heuristic Function s x t Heuristic Function Yichao Zhou, Jianyang Zeng Massively Parallel A* Search on a GPU f ( x ) = g ( x ) + h ( x ) g ( x ) : distance from the starting node s to node x ; h ( x ) : estimated distance from node x to the goal node t
Heuristic Function s x t Heuristic Function Yichao Zhou, Jianyang Zeng Massively Parallel A* Search on a GPU f ( x ) = g ( x ) + h ( x ) g ( x ) : distance from the starting node s to node x ; h ( x ) : estimated distance from node x to the goal node t
A* Search Example s t Extracted Frontier Visited Unknown Yichao Zhou, Jianyang Zeng Massively Parallel A* Search on a GPU
A* Search Example s t Extracted Frontier Visited Unknown Yichao Zhou, Jianyang Zeng Massively Parallel A* Search on a GPU
A* Search Example s t Extracted Frontier Visited Unknown Yichao Zhou, Jianyang Zeng Massively Parallel A* Search on a GPU
A* Search Example s t Extracted Frontier Visited Unknown Yichao Zhou, Jianyang Zeng Massively Parallel A* Search on a GPU
A* Search Example s t Extracted Frontier Visited Unknown Yichao Zhou, Jianyang Zeng Massively Parallel A* Search on a GPU
A* Search Example s t Extracted Frontier Visited Unknown Yichao Zhou, Jianyang Zeng Massively Parallel A* Search on a GPU
Related Work (Parallelization of A* Search) Solve multiple small A* search problems simultaneously on a GPU (Bleiweiss 2008) Parallelize A* on a CPU cluster (Kishimoto, Fukunaga, and Botea 2013) Node expansion on a GPU for Dijkstra (Sulewski, Edelkamp, and Kissmann 2011) None of them makes general A* search work on a GPU! Yichao Zhou, Jianyang Zeng Massively Parallel A* Search on a GPU
Related Work (Parallelization of A* Search) Solve multiple small A* search problems simultaneously on a GPU (Bleiweiss 2008) Parallelize A* on a CPU cluster (Kishimoto, Fukunaga, and Botea 2013) Node expansion on a GPU for Dijkstra (Sulewski, Edelkamp, and Kissmann 2011) None of them makes general A* search work on a GPU! Yichao Zhou, Jianyang Zeng Massively Parallel A* Search on a GPU
Our Contribution The first GPU-based A* search framework Massively Parallel Algorithm “Pure” GPU Algorithm Data structures are stored on the GPU Minimize data transmission overhead General A* Search Algorithm Efficient for different problems Guarantee to find the global optimal solution Yichao Zhou, Jianyang Zeng Massively Parallel A* Search on a GPU
Our Contribution The first GPU-based A* search framework Massively Parallel Algorithm “Pure” GPU Algorithm Data structures are stored on the GPU Minimize data transmission overhead General A* Search Algorithm Efficient for different problems Guarantee to find the global optimal solution Yichao Zhou, Jianyang Zeng Massively Parallel A* Search on a GPU
Our Contribution The first GPU-based A* search framework Massively Parallel Algorithm “Pure” GPU Algorithm Data structures are stored on the GPU Minimize data transmission overhead General A* Search Algorithm Efficient for different problems Guarantee to find the global optimal solution Yichao Zhou, Jianyang Zeng Massively Parallel A* Search on a GPU
Our Contribution The first GPU-based A* search framework Massively Parallel Algorithm “Pure” GPU Algorithm Data structures are stored on the GPU Minimize data transmission overhead General A* Search Algorithm Efficient for different problems Guarantee to find the global optimal solution Yichao Zhou, Jianyang Zeng Massively Parallel A* Search on a GPU
Workflow of Traditional A* Algorithm s 2 Yichao Zhou, Jianyang Zeng Push-Back Expand Extract Push-Back t n t 1 t n Priority t 1 s k s 1 t 2 Massively Parallel A* Search on a GPU Qveue s k Priority s 1 Qveue 1 q 3 q q 1 Priority Qveue 3 Deduplicate Compute f ( t 1 ) f ( t 1 ) f ( t 2 ) · · · . . . · · · . . . · · · f ( t n − 1 ) t n − 1 s k − 1 f ( t n ) f ( t n )
Workflow of Traditional A* Algorithm s 2 Yichao Zhou, Jianyang Zeng Push-Back Expand Extract Push-Back t n t 1 t n Priority t 1 s k s 1 t 2 Massively Parallel A* Search on a GPU Qveue s k Priority s 1 Qveue 1 q 3 q q 1 Priority Qveue 3 Deduplicate Compute f ( t 1 ) f ( t 1 ) f ( t 2 ) · · · . . . · · · . . . · · · f ( t n − 1 ) t n − 1 s k − 1 f ( t n ) f ( t n )
Workflow of Traditional A* Algorithm s 2 Yichao Zhou, Jianyang Zeng Push-Back Expand Extract Push-Back t n t 1 t n Priority t 1 s k s 1 t 2 Massively Parallel A* Search on a GPU Qveue s k Priority s 1 Qveue 1 q 3 q q 1 Priority Qveue 3 Deduplicate Compute f ( t 1 ) f ( t 1 ) f ( t 2 ) · · · . . . · · · . . . · · · f ( t n − 1 ) t n − 1 s k − 1 f ( t n ) f ( t n )
Workflow of Traditional A* Algorithm s 2 Yichao Zhou, Jianyang Zeng Push-Back Expand Extract Push-Back t n t 1 t n Priority t 1 s k s 1 t 2 Massively Parallel A* Search on a GPU Qveue s k Priority s 1 Qveue 1 q 3 q q 1 Priority Qveue 3 Deduplicate Compute f ( t 1 ) f ( t 1 ) f ( t 2 ) · · · . . . · · · . . . · · · f ( t n − 1 ) t n − 1 s k − 1 f ( t n ) f ( t n )
Workflow of Traditional A* Algorithm s 2 Yichao Zhou, Jianyang Zeng Push-Back Expand Extract Push-Back t n t 1 t n Priority t 1 s k s 1 t 2 Massively Parallel A* Search on a GPU Qveue s k Priority s 1 Qveue 1 q 3 q q 1 Priority Qveue 3 Deduplicate Compute f ( t 1 ) f ( t 1 ) f ( t 2 ) · · · . . . · · · . . . · · · f ( t n − 1 ) t n − 1 s k − 1 f ( t n ) f ( t n )
Workflow of Traditional A* Algorithm s 2 Yichao Zhou, Jianyang Zeng Push-Back Expand Extract Push-Back t n t 1 t n Priority t 1 s k s 1 t 2 Massively Parallel A* Search on a GPU Qveue s k Priority s 1 Qveue 1 q 3 q q 1 Priority Qveue 3 Deduplicate Compute f ( t 1 ) f ( t 1 ) f ( t 2 ) · · · . . . · · · . . . · · · f ( t n − 1 ) t n − 1 s k − 1 f ( t n ) f ( t n )
Workflow of Traditional A* Algorithm s 2 Yichao Zhou, Jianyang Zeng Push-Back Expand Extract Push-Back t n t 1 t n Priority t 1 s k s 1 t 2 Massively Parallel A* Search on a GPU Qveue s k Priority s 1 Qveue 1 q 3 q q 1 Priority Qveue 3 Deduplicate Compute f ( t 1 ) f ( t 1 ) f ( t 2 ) · · · . . . · · · . . . · · · f ( t n − 1 ) t n − 1 s k − 1 f ( t n ) f ( t n )
Workflow of Traditional A* Algorithm s 2 Yichao Zhou, Jianyang Zeng Push-Back Expand Extract Push-Back t n t 1 t n Priority t 1 s k s 1 t 2 Massively Parallel A* Search on a GPU Qveue s k Priority s 1 Qveue 1 q 3 q q 1 Priority Qveue 3 Deduplicate Compute f ( t 1 ) f ( t 1 ) f ( t 2 ) · · · . . . · · · . . . · · · f ( t n − 1 ) t n − 1 s k − 1 f ( t n ) f ( t n )
Workflow of GPU-based A* Algorithm s 1 Yichao Zhou, Jianyang Zeng Push-Back Expand Extract Push-Back t n Priority t 1 s k t 2 Massively Parallel A* Search on a GPU q 3 q 1 Qveue 1 Qveue 3 q 2 Priority s 2 Priority Qveue 2 Deduplicate Compute f ( t 1 ) f ( t 2 ) · · · . . . · · · · · · . . . · · · . . . · · · · · · . . . · · · f ( t n − 1 ) t n − 1 s k − 1 f ( t n )
Workflow of GPU-based A* Algorithm s 1 Yichao Zhou, Jianyang Zeng Push-Back Expand Extract Push-Back t n Priority t 1 s k t 2 Massively Parallel A* Search on a GPU q 3 q 1 Qveue 1 Qveue 3 q 2 Priority s 2 Priority Qveue 2 Deduplicate Compute f ( t 1 ) f ( t 2 ) · · · . . . · · · · · · . . . · · · . . . · · · · · · . . . · · · f ( t n − 1 ) t n − 1 s k − 1 f ( t n )
Workflow of GPU-based A* Algorithm s 1 Yichao Zhou, Jianyang Zeng Push-Back Expand Extract Push-Back t n Priority t 1 s k t 2 Massively Parallel A* Search on a GPU q 3 q 1 Qveue 1 Qveue 3 q 2 Priority s 2 Priority Qveue 2 Deduplicate Compute f ( t 1 ) f ( t 2 ) · · · . . . · · · · · · . . . · · · . . . · · · · · · . . . · · · f ( t n − 1 ) t n − 1 s k − 1 f ( t n )
GPU-based A* Search Example Using 3 Priority Qveues 2 Yichao Zhou, Jianyang Zeng Unknown Visited in i th Qveue Frontier node i from i th Qveue Extracted node i 3 1 t 3 2 2 3 2 1 1/ s 1 1 Massively Parallel A* Search on a GPU
GPU-based A* Search Example Using 3 Priority Qveues 2 Yichao Zhou, Jianyang Zeng Unknown Visited in i th Qveue Frontier node i from i th Qveue Extracted node i 3 1 t 3 2 2 3 2 1 1/ s 1 1 Massively Parallel A* Search on a GPU
Recommend
More recommend