  Clawpack is a library for solving nonlinear hyperbolic partial differential
equations using high-resolution finite volume methods based on Riemann solvers
and limiters. It supports Adaptive Mesh Refinement (AMR), which is essential in
solving multi-scale problems. Recently, we added capabilities to accelerate the
code by using the Graphics Process Unit (GPU). Routines that manage CPU and GPU
AMR data and facilitate the execution of GPU kernels are added. Customized and
CPU thread-safe memory managers are designed to manage GPU and CPU memory
pools, which is essential in eliminating the overhead of memory allocation and
de-allocation. A global reduction is conducted every time step for dynamically
adjusting the time step based on Courant number restrictions. Some small GPU
kernels are merged into bigger kernels, which greatly reduces kernel launching
overhead. A speed-up between $2$ and $3$ for the total running time is observed
in an acoustics benchmark problem.
