CUDA Spotlight: Ian Lintault

GPUs for High-Performance Embedded Systems

This week's Spotlight is on Ian Lintault, Managing Director at nCore Design.

Ian and his team deliver solutions based on parallel technologies across many areas, including earth and space exploration, medical, industrial, national security, and the financial and consumer markets.

Q & A with Ian Lintault

NVIDIA: How does nCore Design use GPU computing to solve customer problems?
Ian: In the case of high-performance embedded systems, GPUs offer the programmer a very powerful mechanism to offload computationally intensive portions of an algorithm while the host processor is free to get on with other mission-critical tasks, perform housekeeping and service other devices that might be attached to the system.

For example, a UAV (unmanned aerial vehicle) has various types of sensors attached to it that allow it to navigate, collect image data, scan the radio spectrum, perform pattern analysis, etc. This results in a virtual onslaught of data that must be processed in a time-critical fashion.

If the system design is carefully executed, it’s possible to perform very complex data transformation and computation directly on-board, giving the vehicle some “smarts” and reducing the amount of data that must travel back to the control station via radio-links.

Some systems use FPGAs to perform these tasks. However, the GPU and its associated languages and tools allow system designers to get further, faster without lengthy development cycles and expensive platforms. One can easily get started by using the GPU in a development laptop or desktop.

NVIDIA: What are other examples of projects you are working on?
Ian: nCore is focused on applications that require high compute performance and low latency in embedded form factors – anything in a size, power or weight constrained environment. Currently we're working on some exciting industrial and medical image-processing applications.

Additionally, we recently started an internal project to take the Mantevo Benchmark codes from Sandia National Labs and, using OpenACC, port them to a variety of embedded platforms, chief among them NVIDIA GPUs. These codes are an excellent cross-section of Molecular Dynamics, Finite Element Analysis and Lagrangian-Eulerian hydrodynamics benchmarks that can be used to predict the performance of actual applications on new hardware.

They are fairly compact and make use of MPI, OpenMP and pThreads, thus providing portable and repeatable results. Our intention is use them to benchmark proprietary customer systems.

NVIDIA: Why is this important?
Ian: One of the most frequently asked questions from customers is: How fast can you make my code and how will it perform on my shiny, new supercomputer system? By understanding the relative performance of known codes on many different systems, it's possible to answer these questions with reasonable accuracy even before a project starts.

NVIDIA: What types of training do you provide?Ian: We have several manycore and multicore training courses that can be delivered on-site, anywhere in the world. Our courses provide the right combination of theory and hand-on labs experience. Students feel that attending really helps lower their learning curve and allows them to be instantly effective. We've had students bring code they are working on to class and leave with sizeable performance increases.

Our latest course, developed in conjunction with PGI, teaches people how to unlock significant performance increases in their code by exposing them to the ins and outs of programming with OpenACC.

NVIDIA: Who is the target market for your OpenACC course?
Ian: There are many varieties of people writing software, and not all of them are expert developers, nor do they have the time to become one. This includes mathematicians, physicists, mechanical engineers, chemists, biologists, aerospace engineers, or any scientist or engineer using a computer to solve real-world problems.

OpenACC is an efficient way to put the GPU's power at their disposal without having to dedicate significant portions of their time to learning a new language. We offer training in both CUDA and OpenACC and can help people determine which approach is optimal for their project.

Bio for Ian Lintault

Ian Lintault is Managing Director at nCore Design. He and his team deliver solutions based on state-of-the-art parallel technologies using specialized knowledge of applied software optimization techniques on modern embedded computing platforms. nCore Design is a global provider of professional services focused on multicore and manycore computing platforms. The company has delivered over ten man-years of manycore and multicore training since 2007.