Implementation of a Lattice Boltzmann kernel using the Compute Unified Device Architecture developed by nVIDIA

Regular article


In this article a very efficient implementation of a 2D-Lattice Boltzmann kernel using the Compute Unified Device Architecture (CUDA™) interface developed by nVIDIA® is presented. By exploiting the explicit parallelism exposed in the graphics hardware we obtain more than one order in performance gain compared to standard CPUs. A non-trivial example, the flow through a generic porous medium, shows the performance of the implementation.


  1. 1.
    Benzi R., Succi S., Vergassola M.: The lattice Boltzmann equation: theory and applications. Phys. Rep. 222(3), 147–197 (1992)CrossRefGoogle Scholar
  2. 2.
    Bolz J., Farmer I., Grinspun E., Schröder P.: Sparse matrix solvers on the GPU: conjugate gradients and multigrid. ACM Trans. Graph. (SIGGRAPH) 22(3), 917–924 (2003)CrossRefGoogle Scholar
  3. 3.
    Buck, I., Foley, T., Horn, D., Sugerman, J., Fatahalian, K., Houston, M., Hanrahan, P.: Brook for GPUs: Stream Computing on Graphics Hardware. ACM Trans. Graph. 23, 777–786 (2004).
  4. 4.
    Chen S., Doolen G.: Lattice Boltzmann method for fluid flows. Annu. Rev. Fluid Mech. 30, 329–364 (1998)CrossRefMathSciNetGoogle Scholar
  5. 5.
    Chu N., Tai C.L.: Moxi: Real-time ink dispersion in absorbent paper. ACM Trans. Graph. 24(3), 504–511 (2005)CrossRefGoogle Scholar
  6. 6.
    d’Humières, D.: Generalized lattice–Boltzmann equations. In: Shizgal, B.D., Weave, D.P. (eds.) Rarefied Gas Dynamics: Theory and Simulations. Prog. Astronaut. Aeronaut., vol. 159 pp. 450–458. AIAA Washington, DC (1992)Google Scholar
  7. 7.
    d’Humières D., Ginzburg I., Krafczyk M., Lallemand P., Luo L.S.: Multiple-relaxation-time lattice Boltzmann models in three-dimensions. Philo. Trans. R. Soc. Lond. A 360, 437–451 (2002)MATHCrossRefGoogle Scholar
  8. 8.
    Fan, Z., Qiu, F., Kaufman, A.E., Yoakum-Stover, S.: Gpu cluster for high performance computing. In: Proceedings of ACM/IEEE Supercomputing Conference 2004, pp. 47–59 (2004)Google Scholar
  9. 9.
    Frisch U., d’HumiFres D., Hasslacher B., Lallemand P., Pomeau Y., Rivet J.P.: Lattice gas hydrodynamics in two and three dimensions. Comp. Syst. 1, 75–136 (1987)Google Scholar
  10. 10.
    Ginzburg I., d’Humières D.: Multireflection boundary conditions for lattice Boltzmann models. Phys. Rev. E 68, 066,614 (2003)CrossRefGoogle Scholar
  11. 11.
    Heuveline, V., Weiœ, J.P.: A Parallel Implementation of a Lattice Boltzmann Method on the ClearSpeed AdvanceTM Accelerator Board. Tech. rep., Rechenzentrum Universität Karlsruhe (2007).
  12. 12.
    Inamuro T., Yoshino M., Ogino F.: Accuarcy of the lattice boltzmann method for small knudsen number with finite reynolds number. Phys. Fluids 9, 3535 (1997)MATHCrossRefMathSciNetGoogle Scholar
  13. 13.
    Junk M., Klar A., Luo L.: Asymptotic analysis of the lattice boltzmann equation. J. Comp. Phys. 210, 676 (2005)MATHCrossRefMathSciNetGoogle Scholar
  14. 14.
    Krüger J., Westermann R.: Linear algebra operators for GPU implementation of numerical algorithms. ACM Trans. Graph. (SIGGRAPH) 22(3), 908–916 (2003)CrossRefGoogle Scholar
  15. 15.
    Lallemand P., Luo L.S.: Theory of the lattice Boltzmann method: Dispersion, dissipation, isotropy, Galilean invariance, and stability. Phys. Rev. E 61(6), 6546–6562 (2000)CrossRefMathSciNetGoogle Scholar
  16. 16.
    Li W., Wei X., Kaufman A.: Implementing Lattice Boltzmann Computation on Graphics Hardware. Vis. Comput. 19(7-8), 444–456 (2003)Google Scholar
  17. 17.
    Nguyen N.Q., Ladd A.: Sedimentation of hard-sphere suspensions at low Reynolds number. J. Fluid Mech. 525, 73–104 (2004)CrossRefGoogle Scholar
  18. 18.
    NVIDIA CUDA Programming Guide.
  19. 19.
    Qian Y.H., d’Humières D., Lallemand P.: Lattice BGK models for Navier-Stokes equation. Europhys. Lett. 17, 479–484 (1992)MATHCrossRefGoogle Scholar
  20. 20.
    Qiu, F., Zhao, Y., Fan, Z., Wei, X., Lorenz, H., Wang, J., Yoakum-Stover, S., Kaufman, A.E., Mueller, K.: Dispersion simulation and visualization for urban security. In: IEEE Visualization, pp. 553–560 (2004)Google Scholar
  21. 21.
    Sangani A.S., Acrivos A.: Slow flow past periodic arrays of cylinders with application to heat-transfer. Int. J. Multiph. Flow 8(3), 193–206 (1982)MATHCrossRefGoogle Scholar
  22. 22.
    Tölke J.: A thermal model based on the lattice Boltzmann method for low Mach number compressible flows. J. Comput. Theor. Nanosci. 3(4), 579–587 (2006)Google Scholar
  23. 23.
    Tutubalina, A.: 8800 gtx performance tests. In Russian
  24. 24.
    Wei X., Zhao Y., Fan Z., Li W., Qiu F., Yoakum-Stover S., Kaufman A.: Lattice-based flow field modeling. IEEE Trans. Vis. Comput. Graphics 10(6), 719–729 (2004)CrossRefGoogle Scholar
  25. 25.
    Wellein G., Zeiser T., Hager G., Donath S.: On the single processor performance of simple lattice Boltzmann kernels. Comput. Fluids 35(8–9), 910–919 (2006)CrossRefGoogle Scholar
  26. 26.
    Wu E., Liu Y., Liu X.: An improved study of real-time fluid simulation on GPU. Comp. Anim. Virtual Worlds 15, 139–146 (2004)CrossRefGoogle Scholar
  27. 27.
    Zhao Y., Han Y., Fan Z., Qiu F., Kuo Y.C., Kaufman A., Mueller K.: Visual simulation of heat shimmering and mirage. IEEE Trans. Vis. Comput. Graph. 13(1), 179–189 (2007)CrossRefGoogle Scholar
  28. 28.
    Zhao Y., Wang L., Qiu F., Kaufman A., Mueller K.: Melting and flowing in multiphase environments. Comput. Graph. 30(4), 519–528 (2006)CrossRefGoogle Scholar
  29. 29.
    Zhu H., Liu X., Liu Y., Wu E.: Simulation of miscible binary mixtures based on lattice Boltzmann method. Comp. Anim. Virtual Worlds 17, 403–410 (2006)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag 2008

Authors and Affiliations

  1. 1.Institute for computer based modeling in civil engineeringBraunschweigGermany

Personalised recommendations