Content deleted Content added
No edit summary |
Happysailor (talk | contribs) m Disabling categories in draft as per WP:DRAFTNOCAT, general AFC fixes using AWB |
||
Line 6:
== Motivation ==
Processing multidimensional signals is a common problem in scientific researches and/or engineering computations. Notwithstanding, with its high degree of time and storage complexity, it is extremely difficult to process multidimensional signals in real-time. In general, the computation complexity of multidimensional DSP grows exponentially with the number of dimensions. Therefore, it is still hard to obtain the computation results with [[Digital signal processor|digital signal processors (DSPs)]]. Hence, a better solution of software algorithm or hardware architecture to accelerate multidimensional DSP computations is strongly required.
== Existing Approaches ==
Practically, to accelerate multidimensional DSP, some common approaches have been proposed and developed in the past decades.
Using a lower sampling rate can efficiently reduce the number of samples to be processed at one time and thereby decreasing the computation complexity. However, this can lead to the aliasing problem in the [[Nyquist–Shannon sampling theorem|sampling theorem]] and make a poor quality of outputs. In some applications, such as military radars, we are eager to have highly precise and accurate results. In such cases, using a lower sampling rate in multidimensional DSP is not allowable.
Digital signal processors are designed specifically to process vector operations. They are widely used in DSP computations. However, most digital signal processors are only capable of manipulating two operations in parallel. This kind of designs is sufficient to accelerate audio processing (1-D signals) and image processing (2-D signals). However, with a large amount of data samples in multidimensional signals, this is still not efficient enough to retrieve computation results in real-time.
In order to accelerate multidimensional DSP computations, using dedicated [[Supercomputer|supercomputers]] or [[Computer cluster|cluster computers]] is required in some situations, e.g., [[weather forecasting]]. However, using supercomputers designated to simply perform DSP operations takes considerable cost and energy consumption. It is not suitable for all multidimensional DSP applications.
[[Graphics processing unit|GPUs]] are originally designed to accelerate image processing and video rendering. Moreover, since modern GPUs' have good ability to perform numeric computations in parallel with a relatively low cost and better energy efficiency, GPUs are becoming a popular alternative to replace supercomputers performing multidimensional DSP.
Line 31 ⟶ 29:
== Programming Languages ==
{{empty section|date=November 2015}}
== Examples ==
▲==== Matrix Multiplication ====
Suppose {{math|'''A'''}} and {{math|'''B'''}} are two {{math|''m'' × ''m''}} matrices and we would like to compute {{math|1 = '''C''' = '''A''' × '''B'''}}.
Line 58 ⟶ 56:
To compute each element in {{math|'''C'''}} takes {{math|''m''}} multiplications and {{math|(''m'' - ''1'')}} additions. Therefore, with a CPU implementation, the time complexity to achieve this computation is ''Θ(n''<sup href="Category:GPGPU">''3''</sup>'')'' in the following C example''.'' However, we have known that elements in {{math|'''C'''}} are independent to each others. Hence, the computation can be fully parallelized by SIMD processors, such as GPGPU devices. With a GPGPU implementation, the time complexity reduces to ''Θ(n''<sup href="Category:GPGPU">''2''</sup>'')'' in the following OpenCL example''.''
{{empty section|date=November 2015}}
== Real Applications ==
{{empty section|date=November 2015}}
==References==
Line 70:
{{Parallel computing}}
[[:Category:Digital signal processing]]
[[:Category:Digital signal processors]]
[[:Category:GPGPU]]
[[:Category:Parallel computing]]
|