Abstract
We investigate topology optimization based on the solid isotropic material with penalization approach on compute unified device architecture enabled graphics cards in three dimensions. Linear elasticity is solved entirely on the GPU by a matrix-free conjugate gradient method using finite elements. Due to the unique requirements of the single instruction, multiple data stream processors, special attention is given to the procedural generation of matrix–vector products entirely on the graphics card. The GPU code is found to be extremely efficient, being faster than a 48 core shared memory CPU system. CPU and GPU implementations show different performance bottlenecks. The sources are available at http://www.mathematik.uni-trier.de/~schmidt/gputop.
Similar content being viewed by others
References
Ananiev S.: On equivalence between optimality criteria and projected gradient methods with application to topology optimization problem. Multibody Syst. Dyn. 13(1), 25–38 (2003)
Bendsøe M.P.: Optimal shape design as a material distribution problem. Struct. Optim. 1, 193–202 (1989)
Bendsøe M.P.: Methods for Optimization of Structural Topology, Shape and Material. Springer, Berlin (1995)
Bendsøe M.P., Sigmund O.: Topology Optimization—Theory, Methods and Applications, 2nd edn. Springer, Berlin (2004)
Braess D.: Finite Elemente, Theorie, schnelle Löser und Anwendungen in der Elastizitätstheorie, 2nd edn. Springer, Berlin (1997)
Brandvik, T., Pullan, G.: Acceleration of a 3d Euler solver using commodity graphics hardware. In: Proceedings of the 46th AIAA Aerospace Sciences Meeting, vol. AIAA 2008-607. AIAA (2008)
Buatois, L., Caumon, G., Lévy, B.: Concurrent number cruncher: an efficient sparse linear solver on the GPU. In: Lecture Notes in Computer Science, vol. 4782, pp. 358–371 (2007)
NVIDIA Coorperation.: NVIDIA CUDA C programming guide 4.0, May 2011
Elsen E., LeGresley P., Darve E.: Large calculation of the flow over a hypersonic vehicle using a GPU. J. Comput. Phys. 227, 10148–10161 (2008)
Giles, M.B.: Using NVIDIA GPUs for computational finance. http://people.maths.ox.ac.uk/~gilesm/hpc/
Göddeke D., Wobker H., Strzodka R., Mohd-Yusof J., McCormick P., Turek S.: Co-processor acceleration of an unmodified parallel solid mechanics code with FEASTGPU. Int. J. Comput. Sci. Eng. 4(4), 254–269 (2009)
Goodnight, N., Woolley, C., Lewin, G., Luebke, D., Humphreys, G.: A multigrid solver for boundary value problems using programmable graphics hardware. In: HWWS ’03: Proceedings of the ACM SIGGRAPH/EUROGRAPHICS Conference on Graphics Hardware, pp. 102–111, Aire-la-Ville, Switzerland, Switzerland, Eurographics Association (2003)
Hagen, T.R., Lie, K.A., Natvig, J.R.: Solving the Euler equations on graphics processing units. In: Lecture Notes in Computer Science, vol. 3994, pp. 220–227 (2006)
Hestenes M.R., Stiefel E.: Methods of conjugate gradients for solving linear systems. J. Res. Natl. Bureau Stand. 49(6), 409–436 (1952)
Komatitsch D., Michéa D., Erlebacher G.: Porting a high-order finite-element earthquake modeling application to NVIDIA graphics cards using CUDA. J. Parallel Distrib. Comput. 69(5), 451–460 (2009)
Micikevicius, P.: 3D finite-difference computation on GPUs using CUDA. In: GPGPU-2 Proceedings of 2nd Workshop on General Purpose Processing on Graphics Processing Units, pp. 79–84 (2009)
Nocedal J., Wright S.J.: Numerical Optimization. Springer Series in Operations Research. Springer, Berlin (1999)
Phillips, E.H., Zhang, Y., Davis, R.L., Owens, J.D.: Rapid aerodynamic performance prediction on a cluster of graphics processing units. In: Proceedings of the 47th AIAA Aerospace Sciences Meeting, vol. AIAA 2009-565. AIAA (2009)
Sigmund O.: A 99 line topology optimization code written in matlab. Struct. Multidiscip. Optim. 21(2), 120–127 (2001)
Wadbro E., Berggren M.: Megapixel topology optimization on a graphics processing unit. SIAM Rev. 51(4), 707–721 (2009)
Zhou M., Rozvany G.I.N.: The COC algorithm, part II: topological, geometry and generalized shape optimization. Comput. Methods Appl. Mech. Eng. 89, 197–224 (1991)
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by Gabriel Wittum.
Rights and permissions
About this article
Cite this article
Schmidt, S., Schulz, V. A 2589 line topology optimization code written for the graphics card. Comput. Visual Sci. 14, 249–256 (2011). https://doi.org/10.1007/s00791-012-0180-1
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00791-012-0180-1