Databases Reference
In-Depth Information
FIGURE 6.7: Comparison of the number of CPU and GPU cores (adapted
from [80]).
spawned during run time. This limitation was addressed by MPI-2 specifica-
tion.
6.2.2 GPU Programming
GPU programming is a set of tools and techniques for developing GPU com-
puting applications. For scientific and engineering applications, GPU comput-
ing utilizes the graphical processing unit as a co-processor to accelerate CPU
performances. This is achieved by off-loading computationally intensive and
time-consuming portions of the programming code from CPU to GPU. From
the user's perspective, applications run faster when the massively parallel pro-
cessing power of GPU is harnessed.
Compared with the CPU, GPU contains more core processing units that
are smaller in size. A typical CPU consists of four to eight cores, while a GPU
comprises hundreds of smaller cores. Figure 6.7 shows an abstract comparison
between CPU and GPU cores (adopted from [80]). As an example, the Intel
Xeon processor has 108 million transistors, while the Radeon R300 GPU has
110 million transistors, and the GeForce FX GPU has 125 million transis-
tors [81]. The numbers of transistors in these GPU units outnumber those in
current CPUs.
In regards to the programming perspective, there are two parallel program-
ming models that are commonly used to implement GPU applications. These
are CUDA by NVIDIA and OpenCL.
Search WWH ::




Custom Search