Abstract: A method for seismic modeling on a GPU includes creating a discretized model containing a volume enclosed by boundaries with arbitrary boundary conditions, dividing the discretized model into subsets, transferring a data to the GPU, initializing the data stored in a selected number of the subsets on the GPU, performing computation related with a number of time steps for the selected number of the subsets on the GPU, and substantially simultaneously computing, off-loading a finished subsets data from the GPU, and up-loading a new subsets data to the GPU. The provided method and corresponding system can reduce the amount of data stored in GPU memory by an order of magnitude, minimize the GPU device-to-host transfer bandwidth requirements, and reduce the GPU setup time.