Graphics Reference
In-Depth Information
4
VI
Two-Level Constraint Solver and
Pipelined Local Batching for
RigidBodySimulationonGPUs
Takahiro Harada
4.1 Introduction
GPUs are attractive processors to execute large-scale dynamic physics simula-
tions because of their high bandwidth and computational power. Studies on ac-
celerating relatively simple simulations include particle-based [Harada et al. 07],
cloth [Zeller 05], and grid-based fluid [Harris 04] simulations. However, there are
few works on accelerating rigid body simulation using GPUs. Rigid body simula-
tion in general consists of broad-phase collision detection, narrow-phase collision
detection, and constraint solving [van den Bergen 03]. Each stage has challenges.
This chapter presents a two-level constraint solver designed for the GPU. We
first give a general description of the solver and then present a GPU implemen-
tation. The two-level constraint solver performs two preparations: global split
and local batching. Local batching is especially challenging for GPUs because the
naıve implementation of batching is a serial algorithm. We present pipelined local
batching, which parallelizes local batching by pipelining the operation and using
a SIMD lane as a stage of the pipeline. 1 With pipelined local batching executed
on the GPU, the entire constraint solver is completed on the GPU. Constraints
in benchmark scenes are solved using the two-level constraint solver on the GPU
to analyze the performance. This chapter is an extension of the work presented
in [Harada 11]; this chapter also presents pipelined batching, which overcomes
issues of local batching presented in [Harada 11], and a detailed performance
analysis.
1 We use terminology for AMD GPUs. A SIMD is a compute unit that can operate indepen-
dently and is called a core on CPUs. An ALU unit in a SIMD is called a SIMD lane.
 
 
Search WWH ::




Custom Search