Return to search

GPU Computing for Efficient Sedimentary Basin Simulations / GPU-beräkning för effektiva sedimentbassängsimuleringar

This paper presents PDEs that describes sedimentation by a system of diffusion and transportation equations. These PDEs are implemented with a semi-implicit scheme and solved on a Graphics Processing Unit (GPU). The equations are solved with the iterative solvers (conjugate gradient and biconjugate gradient stabilized method) provided by the software ViennaCL. The timings from these operations are compared with a CPU implementation. Before using the iterative solvers, a sparse matrix and a right hand side vector is set. The sparse matrix and the right hand side vector are efficiently updated on the GPU. The implicit terms of the PDEs are stored in the sparse matrix and the explicit terms in the right hand side vector. The sparse matrix is stored in the compressed sparse row (CSR) format. Algorithms to update the sparse matrix for the PDEs, which have Neumann or a mix of Neumann and Dirichlet boundary conditions, are presented. As the values in the sparse matrix depend on values from the previous results, the sparse matrix has to be updated frequently. Considerable time is saved by updating the sparse matrix on the GPU instead of on the CPU (slow data transfers between CPU and GPU are reduced). The speedup for the GPU implementation was found to be 8-10 and 12-18 for the GPUs GTX 590 and K20m respectively, depending on grid size. The high speedup is due to the CPU model of the CPUs used for timings being an older model. If a newer CPU model were used, the speedup would be lower. Due to limited access to newer hardware, a more accurate value for speedup comparison has not been acquired. Indications still prove that the GPU implementation is faster than the sequential CPU implementation. / Den här uppsatsen presenterar PDEer som beskriver sedimentering av ett system av diffusion och transport ekvationer. Dessa PDEerna blir implementerade med en halvimplicit metod och löst med en grafikprocessor (GPU). Ekvationerna är lösta med iterativa lösare (CG och BiCGStab) från mjukvaran ViennaCL. Tidsmätningarna från dessa operationerna blir jämförda med en CPU-implementation. För användandet av de iterativa lösarna blir en gles matris och en vektor på höger sida satt. Den glesa matrisen och vektorn blir effektivt uppdaterat av GPUen. De implicita termerna blir lagrat i den glesa matrisen och de explicita termerna i vektorn på höger sida. Den glesa matrisen är sparat i det komprimerade glesa rad (CSR) formatet. Algoritmer för att uppdatera den glesa matrisen för PDEs som har Neumann, eller Neumann och Dirichlet randvillkor blir presenterade. Eftersom värdena i den glesa matrisen beror på värdena från det förra resultatet, måste den glesa matrisen uppdateras ofta. Avsevärt med tid sparas av att uppdatera den glesa matrisen på GPUen istället för på CPUen (långsamma data överföringar mellan CPU och GPU reduceras). Accelerationen för GPU-implementationen konstaterades vara 8-10 och 12-18 för GPUena GTX 590 och K20m beroende på storleken på rutnätet. Den höga accelerationen beror på att CPU-modellen som användes till tidmätning är en äldre modell. Om en nyare CPU modell användes, ville accelerationen bli lägre. På grund av begränsad tillgång till nyare hårdvara, har inte mer exakta värden för acceleration kunnat uppdrivas. Indikationer visar dock att GPU-implementationen är snabbare än den sekventiella CPU-implementationen.

Identiferoai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kth-148169
Date January 2014
CreatorsPaulsen, Geir
PublisherKTH, Numerisk analys, NA
Source SetsDiVA Archive at Upsalla University
LanguageEnglish
Detected LanguageEnglish
TypeStudent thesis, info:eu-repo/semantics/bachelorThesis, text
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess
RelationTRITA-MAT-E ; 2014:43

Page generated in 0.002 seconds