|06-12-10, 04:30 PM||#1|
Join Date: Jun 2009
The World Is Parallel: Teaching CUDA
High-performance programming on GPUs has broad potential in a wide array of fields, from chemical research to image processing to business analytics. But bringing these advantages to potential beneficiaries in fields other than computer science requires the creation of applications to use the power of parallel processing. And creating those programs requires educating a new generation of software developers in the techniques of general purpose computing on GPUs. One way that NVIDIA is doing its bithelps this process along is by sponsoring graduate fellowships to students working on Ph.Ds in computer science or allied fields 'who are researching topics that will lead to major advances in a number of fields, and are investigating innovative ways of leveraging the power of the GPU.'
Anjul Patney and Duane Merrill are two of this year's NVIDIA graduate fellows. Patney. Patney is a third-year doctoral student at the University of California at Davis, working under John Owens, a specialist in general purpose programming on GPUs. 'I have a strong interest in understanding the evolution of programmable graphics pipelines, a possibility recently enabled by the flexible CUDA, OpenCL and Direct Compute programming models..' Patney says. 'I am interested in identifying both software and hardware principles that will define these pipelines in the future. In this pursuit I often run into some very intriguing problems in graphics and parallel computing. It's a lot of fun.'
His area of interest is graphics rendering. As he wrote in his research statement in applying for the fellowship: 'My research goal is to explore infrastructures that allow complex, dynamic, yet fully customizable data structures and algorithms to help build new rendering schemes. I wish to deploy them in an open-source library, to serve as an abstraction over which flexible graphics applications can efficiently interact with the underlying hardware."
Patney was first exposed to parallel processing techniques as an undergraduate at the Indian Institute of Technology, Delhi. 'Early training in parallel and multicore programming is very important for interested undergrads,' he says.
Merrill is a doctoral student at the University of Virginia. Merrill is working on applying the techniques of GPU processing to some of the basic building blocks of software, things such as sorting, the efficient processing of lists, and graph problems that he describes as 'the nuts and bolts of data-intensive computer science, yet are the hardest to make scream on the GPU.'
One of the challenges of GPU programming is that since it is relatively new'the first version of CUDA was only released three years ago'programmers have not had time to create the big libraries of pre-tested, ready-to-run code that can make software development must faster and easier'a situation Merrill hopes to help remedy. 'We simply don't have many collections of reusable software components at our disposal, particularly at [the level] where the brunt of cooperative performance gains are derived,' he says. 'This is the hardest software to construct, make fast, and get correct,' he says. 'This is why the prospect of writing extremely high performance, high quality code for GPUs is such a challenge.'
Merrill did his undergraduate work at Virginia, then spent several years in industry before returning to graduate school. In his undergraduate days, GPU programming 'wasn't on the radar screen,' but that has changed. 'The experience is much different these days,' he says. 'Many of the undergraduate computer science students in our department opt to take a parallel-computing elective that has units on SPMD [single-program, multiple data] computing. This course is usually instructed by my advisor, Andrew Grimshaw, and I teach the GPGPU unit, in which we use the CUDA framework exclusively.'
In addition to a $25,000 stipendfor the 2010-11 academic year, the fellowship also provides engineering and technical support to 9 graduate students at9 different universities. 'The relationship NVIDIA fosters with university researchers through its fellowship program provides a conduit for ideas and technology to flow between academia and industry,' says NVIDIA researcher and former NVIDIA fellow Jared Hoberock. 'In addition to financial sponsorship, the fellowship affords student researchers a unique opportunity to cultivate a dialogue with the finest engineering minds in the industry .'
NVIDIA will be accepting applications for the 2011-12 graduate fellowships beginning in November. Details on the program and on application procedures are on the NVIDIA website.