This week marks the fifth anniversary of the CUDA programming model. To celebrate the occasion, we caught up with Dr. Ian Buck, the inventor of CUDA and NVIDIA’s General Manager for GPU Computing.
NVIDIA: Ian, how did you get hooked on computing with GPUs?
Ian: During my Ph.D. studies at Stanford, the trends in programmable graphics hardware were really exciting to me as well as the opportunity to work on technology that could influence a wide breadth of sciences, whether it was molecular dynamics, mechanical engineering or turbulence research. I could see that GPUs were becoming powerful enough to help people working on the big questions in science.
NVIDIA: How did you first start using GPUs? Was it as a programmer or a gamer?
Ian: Let’s just say that Stanford had a great internet connection, and as a result, we had an awesome QuakeServer.
NVIDIA: When you look at CUDA’s momentum today, what surprises you?
Ian: I’m always amazed to see all the areas where performance speedups can change how someone is able to do something, whether it’s 2X, 20X, 100X. If you look on the GPUcomputing.net website you’ll see over 30 communities that have sprung up on topics from atmospheric science to computational finance. People are embracing performance.
NVIDIA: What were some critical decisions you and your team made in the design of CUDA?
Ian: One of the key decisions was language integration. CUDA 1.0 was tightly integrated with C. That integration is what helped it become so popular, but at the time we made the decision it was very controversial. Before CUDA, users could only talk to GPUs through driver APIs. I’m glad to see it worked out well and now other GPU language based solutions are emerging.
NVIDIA: The release candidate of CUDA 4.1 went live this week for registered developers. What’s important in this new version?
Ian: CUDA 4.1 supports the open source LLVM compiler infrastructure. I’m really excited about joining the LLVM community. On the productivity side, we’ve got a new Visual Profiler which has an expert performance analysis integrated into the workflow. Users can click a button and it will give you step-by-step recipe for making your code faster.
NVIDIA: What’s next for GPU computing?
Ian: GPU computing is going mainstream. And it’s not just about NVIDIA. Just look at the great work being done with tools, compilers and apps. Ad hoc GPU user groups are popping up all over the world. A gigantic ecosystem is coming to life. Today, any kind of meaningful simulation is done with GPUs. This focused activity will enable us to solve some of the fundamental problems in science.
NVIDIA: What have you learned along the way, since your days at Stanford working on Brook to your current role as GM for GPU Computing?
Ian: First of all, hire great people. Don’t compromise. The people who use CUDA in industry and academia are intensely driven. I look for the same drive in the people we hire to work on CUDA at NVIDIA -- intellectual curiosity combined with a passion to solve cool and interesting problems. Second, don’t underestimate the value of working on productivity features for developers. The CUDA technology roadmap is focused on making GPU computing easier. Anything we can do to make a developer’s life easier is always worth it.
Editor's Note: Next week, Ian will be at the SC11 conference in Seattle and would be happy to meet up with current and future CUDA users.
Bio for Ian Buck
Ian Buck completed his Ph.D. at the Stanford Graphics Lab in 2004. His thesis was titled "Stream Computing on Graphics Hardware," researching programming models and computing strategies for using graphics hardware as a general purpose computing platform. His work included developing the "Brook" software toolchain for abstracting the GPU as a general purpose streaming coprocessor. For the last seven years, he has driven GPU Computing at NVIDIA and is now NVIDIA’s General Manager of GPU Computing.
Relevant Links
Download CUDA: http://www.nvidia.com/getcuda
CUDA Tools and Ecosystem: http://developer.nvidia.com/cuda-tools-ecosystem
