In this paper, we analyze the preconditioned GMRES algorithm in detail and decompose it into components to implement on multiple-GPU architecture. The operations of vector updates, dot products and Sparse Matrix Vector multiplication (SpMV) are implemented in parallel. In addition, a specific communication mechanism for SpMV is designed. The preconditioner is established on the host (CPU) and solved on the devices (GPUs). Validated by a series of numerical experiments, the GPU-based GMRES solver is effective and favorable parallel performance is achieved. (C) 2016 Elsevier Ltd. All rights reserved.