Skip to main content
Log in

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

  • Regular article
  • Published:
Computing and Visualization in Science


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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others


  1. Benzi R., Succi S., Vergassola M.: The lattice Boltzmann equation: theory and applications. Phys. Rep. 222(3), 147–197 (1992)

    Article  Google Scholar 

  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)

    Article  Google Scholar 

  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. Chen S., Doolen G.: Lattice Boltzmann method for fluid flows. Annu. Rev. Fluid Mech. 30, 329–364 (1998)

    Article  MathSciNet  Google Scholar 

  5. Chu N., Tai C.L.: Moxi: Real-time ink dispersion in absorbent paper. ACM Trans. Graph. 24(3), 504–511 (2005)

    Article  Google Scholar 

  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)

  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)

    Article  MATH  Google Scholar 

  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)

  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. Ginzburg I., d’Humières D.: Multireflection boundary conditions for lattice Boltzmann models. Phys. Rev. E 68, 066,614 (2003)

    Article  Google Scholar 

  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. 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)

    Article  MATH  MathSciNet  Google Scholar 

  13. Junk M., Klar A., Luo L.: Asymptotic analysis of the lattice boltzmann equation. J. Comp. Phys. 210, 676 (2005)

    Article  MATH  MathSciNet  Google Scholar 

  14. Krüger J., Westermann R.: Linear algebra operators for GPU implementation of numerical algorithms. ACM Trans. Graph. (SIGGRAPH) 22(3), 908–916 (2003)

    Article  Google Scholar 

  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)

    Article  MathSciNet  Google Scholar 

  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. Nguyen N.Q., Ladd A.: Sedimentation of hard-sphere suspensions at low Reynolds number. J. Fluid Mech. 525, 73–104 (2004)

    Article  Google Scholar 

  18. NVIDIA CUDA Programming Guide.

  19. Qian Y.H., d’Humières D., Lallemand P.: Lattice BGK models for Navier-Stokes equation. Europhys. Lett. 17, 479–484 (1992)

    Article  MATH  Google Scholar 

  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)

  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)

    Article  MATH  Google Scholar 

  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. Tutubalina, A.: 8800 gtx performance tests. In Russian

  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)

    Article  Google Scholar 

  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)

    Article  Google Scholar 

  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)

    Article  Google Scholar 

  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)

    Article  Google Scholar 

  28. Zhao Y., Wang L., Qiu F., Kaufman A., Mueller K.: Melting and flowing in multiphase environments. Comput. Graph. 30(4), 519–528 (2006)

    Article  Google Scholar 

  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)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations


Corresponding author

Correspondence to Jonas Tölke.

Additional information

Communicated by G. Wittum.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Tölke, J. Implementation of a Lattice Boltzmann kernel using the Compute Unified Device Architecture developed by nVIDIA. Comput. Visual Sci. 13, 29 (2010).

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: