GPUs are ubiquitous and fast. They have transformed graphics rendering virtual 3D worlds in real time. They are also becoming major workhorses in supercomputing. The Mathworks Matlab GPU support is a major step forward for developers that take advantage of this tool especially since most of the applications tend towards matrix calculations where GPUs excel.
To get the low down on Matlab's GPU enhancements I spoke with Silvina Grad-Freilich, Manager of Parallel-Computing Marketing at MathWorks.
Wong: Why is GPU support important to the parallel computing industry?
Grad-Freilich: The need for computational power for scientific and engineering applications continues to increase at an accelerated pace. Engineering, Financial and Scientific users want to get their answers quicker and are solving larger problems than they previously were able to. As a result, demand computational power continues to grow quickly. Users can pack significant computing power (potentially comparable to a small cluster) in a single high end workstation by adding GPUs, without having to invest in additional computer systems. With the development of programming tools like NVIDIA CUDA, GPUs are gaining acceptance in the technical computing industry whereas previously they were the domain of expert gaming programmers only.
Wong: What benefits does the use of GPUs provide users?
Grad-Freilich: GPUs provide users the ability to accelerate certain operations significantly as compared to a multicore CPU. Used in combination with multicore CPUs and computer clusters, GPUs hold promise of significant application speedups (provided applications are GPU enabled).
Wong: GPU accelerators are not new, so why is the industry just showing interest now?
Grad-Freilich: In the past, programming GPUs was the domain of programmers in the gaming industry who were looking to provide highly realistic gaming experience to their customers. With the development of technologies such as NVIDIA CUDA, GPU designers have expanded the audience to include the technical and scientific computing world as well.
In addition, GPUs now include support for higher precision arithmetic and IEEE compliant operations, which is an absolute must for mainstream technical and scientific computing projects. There is a growing ecosystem around CUDA technology - for example, BLAS, LAPACK libraries have been implemented. The result is this gradual "mainstreaming" of GPU technology. Note that although CUDA technology has significantly reduced the programming effort for GPUs, it is still hard for regular engineers and scientists (those who are not computer scientists) to program using the technology.