Abstract |
Software Defined Radio devices have been proposed to solve the problem
of difficult prototyping, update and upgrade of fixed-circuit radios.
They are radio communication systems in which the signal processing
circuits have been replaced by software running on an external host. The
exchanged information is in the form of digitized baseband signals. This
makes the radio able to used regardless of the underlying signal processing
system. Thus, it can be used with any telecommunication standard.
The fact that everything is written in software and executed in signalagnostic
radios, gives great boost to reconfigurable networks, efficiency in
power spectrum usage, feature extensibility, bug-fixing and rapid prototyping.
Nevertheless, the fixed-circuit performance must be equalized by the software
counter-part. During the previous decades, only specialized hardware
like Field Programmable Gate Array and Digital Signal Processing could
provide the necessary computational power.
Lately, that General Purpose Processor have become more powerful, they
are preferred over specialized hardware for programmability reasons. To
further increase the computational power without losing the programmability
benefits, it has been proposed to put into service the Graphics Processing
Units(GPUs), for signal processing purposes. However existing signalprocessing
engines have been built for CPU environments, and any effort for
GPU integration is constrained by the core design.
This dissertation presents Calypso: a hybrid batch streaming engine designed
to take advantage both of Central Processing Units(CPUs) and GPUs.
It is constituted of self-contained entities, called modules. Modules have an
upper CPU layer (orchestrator) emphasizing on task parallelisation and a
lower GPU layer (labor) emphasizing on data parallelisation.
The labor layer provides the functionality and must be implemented by
the developer. The upper layer belongs to Calypso and is responsible for
operational duties like: task synchronization, ordering, data passing, asynchronous
operations and memory management. With this toolkit, even an
amateur developer in parallel programming can build asynchronous applications
with GPU support.
To evaluate the engine, the Digital Video Broadcasting Terrestrial (DVBT)
has been implemented in CPU, as GNU Radio application, and in GPU,
as Calypso application. Measurements shown that Calypso performs twice
as better than GNU Radio for a single DVB-T stream, on a much cheaper
hardware. However the technological gap between the commercial GPU and
the high-end CPU becomes evident when multiple DVB-T are concurrently
active. The GPU is saturated faster that the CPU, which results to equal an
distribution of the aggregated throughput to the streams.
|