MathWorks Inc. continues to expand its portfolio of NVIDIA graphics processing unit (GPU)-enabled software with the availability of GPU versions of its Communications System Toolbox components. This toolbox is used by designers building wireless communications handsets and base stations, and works at the physical level of the communications stack. It offers predefined algorithms for source coding, channel coding, interleaving, modulation, equalization, synchronization, and channel modeling.
|MATLAB Communications System Toolbox exploits GPUs and computational parallelism to accelerate throughput in communications system simulations. |
These components are provided as MATLAB functions, MATLAB System objects and Simulink blocks, so they can be dropped into MATLAB or Simulink programs. They support fixed-point data arithmetic and C or HDL code generation, so once the design is validated, it can be converted to hardware or code.
According to Silvina Grad-Freilich, MATLAB senior manager, parallel computing marketing, the effort to port some of these components to run on GPUs represents the highest level of a three-tier strategy to enable MATLAB developers to take advantage of GPU computing power.
“We offer lower-level means of accessing GPU resources in MATLAB computations, such as the GPUArray instruction in the language,” she says. “What we’ve done with the Communications Toolbox is to enable a higher level of abstraction and use.”
MathWorks has used this multi-level approach to deliver GPU capabilities and resultant performance increases across a wide range of the MATLAB language and product line. It enables design engineers to examine their design problems and select an approach that is appropriate for their efforts.
MathWorks claims a significant performance increase for components utilizing the GPU.
“We did an analysis of how these algorithms worked,” explains Ken Karnofsky, senior strategist for signal processing applications. He adds the analysis resulted in rewriting many different aspects of the algorithms.
What kind of performance increase is possible with GPU versions of these components? In some cases, it’s up to15 times as much as the original implementation. While mileage may vary depending on the exact processors used and the application, it’s clear that some functions can see large performance boost.
These components are more than simply a recompile into the NVIDIA GPU architecture. According to Karnofsky, MATLAB engineers studied the Communications Toolbox code, then determined which algorithms would benefit from GPU execution--and how to re-implement them for GPU instructions and pipelines. They also considered how to best parallelize the computations so that they could also be executed on multiple GPUs.
Not all of the Communications Toolbox is GPU enabled; rather, there are about a dozen components that have been ported to the GPU. Karnofsky explains that the development team identified several “long poles” that would most benefit from GPU execution. It focused on highly computational algorithms in an attempt to get product designers the highest performance improvements immediately. The company will continue to convert these components as long as the performance improvement justifies it, Karnofsky says.
Contributing Editor Peter Varhol covers the HPC and IT beat for DE. His expertise is software development, math systems, and systems management. You can reach him at firstname.lastname@example.org.
The MathWorks Inc.