CUDA stands for Compute Unified Device Architecture
and describes a certain GPU architecture as well as the
corresponding development environment for software
engineers to generate the program code for NVIDIA
GPUs.
This includes three important components:
- the CUDA Driver API (also known as “Low-Level API”)
- the CUDA toolkit (the actual development environment including
runtime libraries)
- a Software Development Kit (CUDA SDK) with code examples.
The CUDA toolkit is in principle a C development
environment and includes the actual compiler (nvcc),
an update of the PathScale C compiler, optimised
FFT and BLAS libraries as well as a profiler, debugger
(gdb), shared libraries for the runtime environment
for CUDA programs (the “Runtime API”) and last
but not least, comprehensive documentation including
a developer’s manual. The CUDA SDK includes
examples with source codes for matrix calculation,
pseudo random number generators, image convolution,
wavelet calculations and a lot more besides.
CUDA runs on all NVIDIA GPUs from series G8X and
above including the GeForce, Quadro and Tesla series
and enables programmers access to the highperformance
capacity of massive parallel calculation components in GPUs.
Unlike CPUs, GPUs have a “many-core architecture” which means that they
deliver a parallelisation degree two times larger than
standard CPUs. Furthermore, a GPU has its own
memory which can be communicated with by the
execution units of the individual cores with its extremely
high bandwidth.
If the entire GPU architecture is outsourced to an external system, a
gateway system is required as the main computer to
which the GPU systems are connected via external
PCI Express connectors.
|
|
|