IEEE Consumer Electronics Magazine - March/April 2021 - 29
functionally equivalent no matter whether the
directives are honored or not.
The initial goal of OpenCL,5 first published in
2009, was very different. It targeted the use of
heterogeneous external accelerators, mainly
GPGPU (general-purpose computing on graphics
Processing Units), for which every vendor had at
that time a proprietary API (e.g., Nvidia's CUDA).
OpenCL consists of two main elements: a dialect of C or C++ to write compute-intensive pieces
of code called kernels that run on devices, and a
low level API that is used to define and control how
the kernels are to be executed on the available
devices. It is considerably more complex than
OpenMP, but that is not surprising as it intends to
be the " write once, run everywhere " of heterogeneous multicore computing. There are OpenCL
implementations from all major CPU and GPU vendors (Intel, AMD, Nvidia, ARM, Qualcomm...), but
also for multicore DSPs (digital signal processors)
from Texas Instruments or FPGAs (field programmable gate arrays) from Xilinx and Intel. Also, some
vendors have provided OpenCL support for somewhat unconventional architectures, such as manycore based products like Adapteva's Epiphany or
Kalray's MPPA. Some of these implementations,
however, seem to have lost momentum and have
not been updated for some time.
Other Approaches
There are other development strategies that
either are intended or can be used to write parallel software radio applications. They are often
based on dataflow models of computation, to
which software radio is inherently well suited.
Two examples are PREESM,6 which can be used
with several target platforms from desktop computers to DSPs or FPGAs, and the one described
by Dardaillon et al.,7 which targets an experimental NoC (Network-on-Chip) based heterogeneous
multicore platform.
Another approach is that of domain specific
languages, such as Ziria8 for commodity processors or SdrLift,9 which is aimed at high-level synthesis of FPGA datapaths from algorithmic
descriptions of actors behavior.
Finally, model-based design tools can also be
used, either by themselves or augmented with
hardware vendor supplied libraries, to prototype and develop software radios.
March/April 2021
EXAMPLES OF SOFTWARE RADIO
IMPLEMENTATIONS
We will discuss now on the suitability of the
standards described in the " Standards-Based
Methodologies " section for the development of
software radio applications, specially on the
embedded platforms that are usually employed
for consumer electronics devices.
Examples of OpenMP in embedded systems
are given by Nikishkin et al.,10 where an eightcore DSP is used for orthogonal frequency division multiplexing symbol generation; or by Sever
and C¸avus,11 where a low density parity coding
decoder is implemented on the same DSP.
OpenCL has been also used to implement the
same algorithm in a related processor by Kharin
et al.12
OpenCL is sometimes the programming tool
of choice for nonconventional specialized processors. A good example of this are the works
described by Kultala et al.,13 where the critical
parts of a Turbo decoder are implemented on a
transport-triggered architecture based processor,
and by Kultala et al.,14 where two algorithms for
multiple input multiple output detection are compared using a similar architecture.
In all these examples, only one algorithm, or
even only part of one algorithm, is accelerated.
This is usually the case not only on embedded
platforms, but also on desktop computers. In
general, we think that it is safe to say that both
OpenMP and OpenCL are better suited to applications that have just one compute-intensive
algorithm to accelerate. OpenCL supports the
notion of device partitioning to exploit task parallelism, but its use is not very extended and can
sometimes lead to serious performance penalties, as reported for example by Piscopo.15 We
refer the interested reader to the work done by
Jaaskelainen et al.,16 which contains a discussion
on OpenCL usage patterns and the performance
of multiple kernels running simultaneously.
It is worth noting that, especially in embedded platforms, sometimes one of the APIs get
better results than the other due to the characteristics of the vendor implementation. For
example, in the work by Vicente et al.17 a Raptor
FEC (forward error correction) decoding algorithm is implemented in two mobile platforms
that support GPU acceleration, and the results
29
IEEE Consumer Electronics Magazine - March/April 2021
Table of Contents for the Digital Edition of IEEE Consumer Electronics Magazine - March/April 2021
Contents
IEEE Consumer Electronics Magazine - March/April 2021 - Cover1
IEEE Consumer Electronics Magazine - March/April 2021 - Cover2
IEEE Consumer Electronics Magazine - March/April 2021 - Contents
IEEE Consumer Electronics Magazine - March/April 2021 - 2
IEEE Consumer Electronics Magazine - March/April 2021 - 3
IEEE Consumer Electronics Magazine - March/April 2021 - 4
IEEE Consumer Electronics Magazine - March/April 2021 - 5
IEEE Consumer Electronics Magazine - March/April 2021 - 6
IEEE Consumer Electronics Magazine - March/April 2021 - 7
IEEE Consumer Electronics Magazine - March/April 2021 - 8
IEEE Consumer Electronics Magazine - March/April 2021 - 9
IEEE Consumer Electronics Magazine - March/April 2021 - 10
IEEE Consumer Electronics Magazine - March/April 2021 - 11
IEEE Consumer Electronics Magazine - March/April 2021 - 12
IEEE Consumer Electronics Magazine - March/April 2021 - 13
IEEE Consumer Electronics Magazine - March/April 2021 - 14
IEEE Consumer Electronics Magazine - March/April 2021 - 15
IEEE Consumer Electronics Magazine - March/April 2021 - 16
IEEE Consumer Electronics Magazine - March/April 2021 - 17
IEEE Consumer Electronics Magazine - March/April 2021 - 18
IEEE Consumer Electronics Magazine - March/April 2021 - 19
IEEE Consumer Electronics Magazine - March/April 2021 - 20
IEEE Consumer Electronics Magazine - March/April 2021 - 21
IEEE Consumer Electronics Magazine - March/April 2021 - 22
IEEE Consumer Electronics Magazine - March/April 2021 - 23
IEEE Consumer Electronics Magazine - March/April 2021 - 24
IEEE Consumer Electronics Magazine - March/April 2021 - 25
IEEE Consumer Electronics Magazine - March/April 2021 - 26
IEEE Consumer Electronics Magazine - March/April 2021 - 27
IEEE Consumer Electronics Magazine - March/April 2021 - 28
IEEE Consumer Electronics Magazine - March/April 2021 - 29
IEEE Consumer Electronics Magazine - March/April 2021 - 30
IEEE Consumer Electronics Magazine - March/April 2021 - 31
IEEE Consumer Electronics Magazine - March/April 2021 - 32
IEEE Consumer Electronics Magazine - March/April 2021 - 33
IEEE Consumer Electronics Magazine - March/April 2021 - 34
IEEE Consumer Electronics Magazine - March/April 2021 - 35
IEEE Consumer Electronics Magazine - March/April 2021 - 36
IEEE Consumer Electronics Magazine - March/April 2021 - 37
IEEE Consumer Electronics Magazine - March/April 2021 - 38
IEEE Consumer Electronics Magazine - March/April 2021 - 39
IEEE Consumer Electronics Magazine - March/April 2021 - 40
IEEE Consumer Electronics Magazine - March/April 2021 - 41
IEEE Consumer Electronics Magazine - March/April 2021 - 42
IEEE Consumer Electronics Magazine - March/April 2021 - 43
IEEE Consumer Electronics Magazine - March/April 2021 - 44
IEEE Consumer Electronics Magazine - March/April 2021 - 45
IEEE Consumer Electronics Magazine - March/April 2021 - 46
IEEE Consumer Electronics Magazine - March/April 2021 - 47
IEEE Consumer Electronics Magazine - March/April 2021 - 48
IEEE Consumer Electronics Magazine - March/April 2021 - 49
IEEE Consumer Electronics Magazine - March/April 2021 - 50
IEEE Consumer Electronics Magazine - March/April 2021 - 51
IEEE Consumer Electronics Magazine - March/April 2021 - 52
IEEE Consumer Electronics Magazine - March/April 2021 - 53
IEEE Consumer Electronics Magazine - March/April 2021 - 54
IEEE Consumer Electronics Magazine - March/April 2021 - 55
IEEE Consumer Electronics Magazine - March/April 2021 - 56
IEEE Consumer Electronics Magazine - March/April 2021 - 57
IEEE Consumer Electronics Magazine - March/April 2021 - 58
IEEE Consumer Electronics Magazine - March/April 2021 - 59
IEEE Consumer Electronics Magazine - March/April 2021 - 60
IEEE Consumer Electronics Magazine - March/April 2021 - 61
IEEE Consumer Electronics Magazine - March/April 2021 - 62
IEEE Consumer Electronics Magazine - March/April 2021 - 63
IEEE Consumer Electronics Magazine - March/April 2021 - 64
IEEE Consumer Electronics Magazine - March/April 2021 - 65
IEEE Consumer Electronics Magazine - March/April 2021 - 66
IEEE Consumer Electronics Magazine - March/April 2021 - 67
IEEE Consumer Electronics Magazine - March/April 2021 - 68
IEEE Consumer Electronics Magazine - March/April 2021 - 69
IEEE Consumer Electronics Magazine - March/April 2021 - 70
IEEE Consumer Electronics Magazine - March/April 2021 - 71
IEEE Consumer Electronics Magazine - March/April 2021 - 72
IEEE Consumer Electronics Magazine - March/April 2021 - 73
IEEE Consumer Electronics Magazine - March/April 2021 - 74
IEEE Consumer Electronics Magazine - March/April 2021 - 75
IEEE Consumer Electronics Magazine - March/April 2021 - 76
IEEE Consumer Electronics Magazine - March/April 2021 - 77
IEEE Consumer Electronics Magazine - March/April 2021 - 78
IEEE Consumer Electronics Magazine - March/April 2021 - 79
IEEE Consumer Electronics Magazine - March/April 2021 - 80
IEEE Consumer Electronics Magazine - March/April 2021 - 81
IEEE Consumer Electronics Magazine - March/April 2021 - 82
IEEE Consumer Electronics Magazine - March/April 2021 - 83
IEEE Consumer Electronics Magazine - March/April 2021 - 84
IEEE Consumer Electronics Magazine - March/April 2021 - 85
IEEE Consumer Electronics Magazine - March/April 2021 - 86
IEEE Consumer Electronics Magazine - March/April 2021 - 87
IEEE Consumer Electronics Magazine - March/April 2021 - 88
IEEE Consumer Electronics Magazine - March/April 2021 - 89
IEEE Consumer Electronics Magazine - March/April 2021 - 90
IEEE Consumer Electronics Magazine - March/April 2021 - 91
IEEE Consumer Electronics Magazine - March/April 2021 - 92
IEEE Consumer Electronics Magazine - March/April 2021 - 93
IEEE Consumer Electronics Magazine - March/April 2021 - 94
IEEE Consumer Electronics Magazine - March/April 2021 - 95
IEEE Consumer Electronics Magazine - March/April 2021 - 96
IEEE Consumer Electronics Magazine - March/April 2021 - 97
IEEE Consumer Electronics Magazine - March/April 2021 - 98
IEEE Consumer Electronics Magazine - March/April 2021 - 99
IEEE Consumer Electronics Magazine - March/April 2021 - 100
IEEE Consumer Electronics Magazine - March/April 2021 - 101
IEEE Consumer Electronics Magazine - March/April 2021 - 102
IEEE Consumer Electronics Magazine - March/April 2021 - 103
IEEE Consumer Electronics Magazine - March/April 2021 - 104
IEEE Consumer Electronics Magazine - March/April 2021 - 105
IEEE Consumer Electronics Magazine - March/April 2021 - 106
IEEE Consumer Electronics Magazine - March/April 2021 - 107
IEEE Consumer Electronics Magazine - March/April 2021 - 108
IEEE Consumer Electronics Magazine - March/April 2021 - 109
IEEE Consumer Electronics Magazine - March/April 2021 - 110
IEEE Consumer Electronics Magazine - March/April 2021 - 111
IEEE Consumer Electronics Magazine - March/April 2021 - 112
IEEE Consumer Electronics Magazine - March/April 2021 - 113
IEEE Consumer Electronics Magazine - March/April 2021 - 114
IEEE Consumer Electronics Magazine - March/April 2021 - 115
IEEE Consumer Electronics Magazine - March/April 2021 - 116
IEEE Consumer Electronics Magazine - March/April 2021 - 117
IEEE Consumer Electronics Magazine - March/April 2021 - 118
IEEE Consumer Electronics Magazine - March/April 2021 - 119
IEEE Consumer Electronics Magazine - March/April 2021 - 120
IEEE Consumer Electronics Magazine - March/April 2021 - Cover3
IEEE Consumer Electronics Magazine - March/April 2021 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20240102
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20231112
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20230910
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20230708
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20230506
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20230304
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20230102
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20221112
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20220910
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20220708
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20220506
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20220304
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20220102
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20211112
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20210910
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20210708
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20210506
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20210304
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_202010
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_202009
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_202007
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_202004
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_202003
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_202001
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201910
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201909
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201907
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201905
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201903
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201901
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201811
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201809
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201807
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201805
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201803
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_july2017
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_april2017
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_january2017
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_october2016
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_july2016
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_april2016
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_january2016
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_october2015
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_july2015
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_april2015
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_january2015
https://www.nxtbookmedia.com