260
A. Wittek et al.
CUDA, in November 2006, NVIDIA proposed a new parallel programming model
and instruction set for their GPUs that can be used for performing general-purpose
computations. CUDA comes with a software environment that allows developers to
use C as a high-level programming language. A minimum set of keywords are used
to extent the C language in order to identify the code that must be run on the GPU
as parallel threads, identify each thread (and the block of threads it belongs to) and
to organise and transfer the data in the different GPU memory spaces. CUDA also
exposes the internal architecture of the GPU and allows direct access to its internal
resources facilitating the development of application software that transparently
scales with the number of processor cores in the GPU. The programmer has more
control over the internal hardware resources of the GPU, but this comes at the
expense of an increased programming effort compared to a CPU implementation.
Because it only uses vectors, an explicit time stepping algorithm is perfectly
suited for parallel implementation on GPU. We implemented the Dynamic Relaxation algorithm presented in Sect. 10.4 Algorithms for Neurosurgery Modelling on
GPU using CUDA. We transferred all the computationally intensive parts of the
algorithm (element force computation, displacement vector computation, contact
handling, parallel reduction – including infinity norm computation and scalar product of vectors) to the GPU, to take advantage of its massive parallelism. The code
was run on a NVIDIA Tesla C870 computing board, which has 16 multiprocessors
with 8 scalar processor cores each (i.e. 128 cores in total) and single-precision
floating-point operations. A detailed description of the implementation can be found
in Joldes et al. [64]. The GPU implementation performs 2000 iterations of the brain
shift simulation in 1.8 s, offering real-time computation capabilities. Other examples
of GPU implementation of finite element algorithms of computational biomechanics
that utilise TLED include widely used Simulation Open Framework Architecture
(SOFA) [65, 66].
10.8 Verification of Finite Element Algorithms
of Computational Biomechanics
The general guidelines for verification in computational solid mechanics have been
proposed by the American Society of Mechanical Engineers (ASME) in [67].
These guidelines were preceded by the extensive discussion of the concepts of
verification and validation in computational mechanics by Babuska and Oden [68].
They underscore the importance of establishing confidence through collection of
evidence that the solution algorithms are working correctly. As for non-linear
problems of computational solid mechanics analytical solutions typically do not
exist, we advocate collecting such evidence by comparing the results obtained by
means of new algorithms with the solutions from established algorithms such as
those implemented in commercial finite element codes.
Précédent

- 265/356

Suivant