Performance analysis and optimization strategies for a D3Q19 lattice Boltzmann kernel on nVIDIA GPUs using CUDA
Erlangen Regional Computing Center (RRZE), University of Erlangen-Nuremberg, Martensstr. 1, 91058 Erlangen, Germany
Advances in Engineering Software (05 March 2011)
@article{Habich2011,
title={“PerformanceanalysisandoptimizationstrategiesforaD3Q19latticeBoltzmannkernelonnVIDIAGPUsusingCUDA”},
journal={“AdvancesinEngineeringSoftware”},
volume={“InPress},
number={“”},
pages={“-“},
year={“2011”},
note={“”},
issn={“0965-9978”},
doi={“DOI:10.1016/j.advengsoft.2010.10.007”},
url={“http://www.sciencedirect.com/science/article/B6V1P-529SW45-1/2/52767e40a0291ebe0a6bd4690c5b42bd”},
author={“J.HabichandT.ZeiserandG.HagerandG.Wellein”},
keywords={“CUDA”}
}
This paper presents implementation strategies and optimization approaches for a D3Q19 lattice Boltzmann flow solver on nVIDIA graphics processing units (GPUs). Using the STREAM benchmarks we demonstrate the GPU parallelization approach and obtain an upper limit for the flow solver performance. We discuss the GPU-specific implementation of the solver with a focus on memory alignment and register shortage. The optimized code is up to an order of magnitude faster than standard two-socket x86 servers with AMD Barcelona or Intel Nehalem CPUs. We further analyze data transfer rates for the PCI-express bus to evaluate the potential benefits of multi-GPU parallelism in a cluster environment.
March 10, 2011 by hgpu