Ian Andrew Buck

Education:

Stanford University, Ph.D. in Computer Science

• Thesis:  Stream Computing on Graphics Hardware

• Developed the Brook GPU Streaming language

• Advisor: Pat Hanrahan.

• Proficiencies in C++, C, Java, Perl, Open Inventor, OpenGL, DirectDraw, Tcl/Tk, HTML, Visual Basic, Assembler (MIPS, SPARC, x86, PDP-8), Motif, Pascal.

Princeton University, BSE in Computer Science, Class of 1999, Summa Cum Laude

• Computer Science Departmental GPA: 4.15 Academic GPA: 3.85

Work Experience:

NVIDIA Corporation. GPU Computing Software Manager

• Manager of GPU Computing software for NVIDIA which include the CUDA Software toolkit, compiler, libraries, driver, and performance analysis team.

Microsoft Research. Research Intern, Summer 2003

• Researched GPU implementations of realtime desktop applications including handwriting and speech recognition. Mentors: Turner Whitted, Jim Kajiyia.

NVIDIA Corporation. Systems Engineer, November 2000-September 2001

• Researched multithreaded optimizations for NVIDIA's commercial OpenGL implementation. Evaluated performance enhancements for Pentium 4 cache and front side bus characteristics. Systems engineer on next generation NVIDIA chipset product.

Microsoft Corporation. Program Manager, Summer 1998

• One of two program managers for the next version of the Age of Empires strategy game product line, rated 1997 Game of the Year by Gamecenter.com. Managed the setup program, coordinated developers, artist, editors, and testers as well as communicating with external developers in Dallas, Texas. Coordinated game play issues determining game changes, managing and reporting to playtesters.

Silicon Graphics Inc. Core Rendering. Graphics Engineer, Summer 1997-Spring 1998

• Lead Developer for OpenGL bindings for the Java Abstract Windowing Toolkit under Win95 allowing for interactive Java programs using OpenGL rendering inside of a web browser.

• Optimized software implementation of OpenGL to allow for high resolution rendering compatible with modern printer resolutions.

• Created Netscape Plug-in for displaying OpenGL Script (GLS) animations within a web browser.

Midi Inc. Technical Assistant, Summer 1996

• Designed and wrote administrative database software for commercial computer based training (CBT) software packages in use by Lockheed Martin and Southern Pacific Rail Co. Work involved Visual Basic, FoxPro database programming, and Windows DLL programming.

Princeton Teaching Associates Software. Programmer, Production Assistant, Summer 1995

• Wrote multi-platform C code resources in Windows and Macintosh for multimedia CDROM educational software, Acing the New SAT rated by ABC Educational Technology Review Team in March 1996 "the best educational software in the US today."

• Areas of programming included: Macintosh graphics & printing, Windows PICT image file translator, Macromedia Director 4.0.

David Sarnoff Research Center. Assistant Programmer, Summer 1994

• Wrote utility functions for a commercial image analysis software package in C.

• Areas of programming included: TIFF and BIFF file formats; two and three dimensional curve fitting; shading correction.

Publications

Brook for GPUs: Stream Computing on Graphics Hardware
Ian Buck, Tim Foley, Daniel Horn, Jeremy Sugerman, Kayvon Fatahalian, Mike Houston, and Pat Hanrahan

Proceedings of SIGGRAPH 2004 Los Angeles, California. August 8-12, 2004.

A Toolkit for Computation on GPUs
Ian Buck, Tim Purcell

Chapter 37, GPUGems: Programming Techniques, Tips and Tricks for Real-Time Graphics Published March 2004

Merrimac: Supercomputing with Streams
William J. Dally, Patrick Hanrahan, Mattan Erez, Timothy J. Knight, François Labonté, Jung-Ho Ahn, Nuwan Jayasena, Ujval J. Kapasi, Abhishek Das, Jayanth Gummaraju, and Ian Buck

>• SuperComputing 2003 Phoenix, Arizona, November 2003

Ray-Tracing on Programmable Graphics Hardware
Tim Purcell, Ian Buck, Bill Mark, and Pat Hanrahan

• SIGGRAPH 2002. San Antonio, Texas.

WireGL: A Scalable Graphics System for Clusters
Greg Humphreys, Matthew Eldridge, Ian Buck, Gordon Stoll, Matthew Everett, and Pat Hanranhan

• SIGGRAPH 2001. Los Angeles, California.

Tracking Graphics State for Network Rendering
Ian Buck,Greg Humphreys, Pat Hanrahan

• Eurographics Hardware Workshop Conference 2000. Interlocken, Switzerland.

Distributed Rendering for Scalable Displays
Greg Humphreys, Ian Buck, Pat Hanrahan

• Supercomputing 2000. Dallas, Texas.

Animated Teleconferencing
Ian Buck, et al.

• Symposium on Non Photorealistic Animation and Rendering. Annacy, France

Research Projects:

BrookGPU graphics.stanford.edu/projects/brookgpu

• Designed and implemented a compiler and runtime system for the Brook stream programming language on modern GPUs. System compiles and executes C-like Brook code on both NVIDIA and ATI hardware using OpenGL and DirectX. Work done in collaboration with: Tim Foley, Jeremey Sugerman, Daniel Horn.

Brook

• Designed and implemented a C-like stream programming language designed for data parallel applications executing on stream architectures. Work included a C functional simulator for the Stanford Streaming Supercomputer. (Ongoing research)

WireGL graphics.stanford.edu/~ianbuck/proj#wiregl

• Developed a distributed network graphics driver for driving OpenGL applications seamlessly across a PC rendering cluster. Allows for unmodified graphics applications to render to large tiled display or for a parallel graphics application to merge independent graphics streams into a single output. Project members include Pat Hanrahan, Greg Humphreys, and Matthew Eldridge at Stanford University.

Real-time Video Driven Face Animation

• Implementing a computer vision project allowing the computer to recognize human facial features from a camera to drive a real-time facial animation. Project allows for low bandwidth video conferencing. This project is extending existing work done at Microsoft Research and the University of Washington. Project members include: Professor Adam Finkelstein (af@cs.princeton.edu) and graduate student Alison Klein.

Nintendo Game Console

• Designed and implemented a complete Nintendo Entertainment System Game Console able to run original game cartridges. Work included CPU design and VHDL coding, as well as designing a customized Picture Processing Unit from a device specification.

VRMud Modeling

• Designed and implemented a virtual clay modeler with multiple tools and scene designer, featuring dynamic mesh subdivision and a 3D camera recognition input device for determining hand position. Group includes: Ken Turnbull '98 and Tom Sanocki '98.

• Areas of programming: Inventor, OpenGL, SGI video and audio libraries, Socket networking.

The Force

• A Star Wars space fighter simulation project using OpenGL and Inventor written in C++ with interactive sound and two person networking options. Developed over a six week period with five other programmers and a graphic artist. Team members include: Eric Cheng ‘99, Rob Jensen ‘98, Drew Leamon ‘99, Tim Milliron ‘99, Philip Nickolv ‘99, Trevor Sumner ‘98.

Turbulent Smoke Simulator

• Developed an optimized mathematical model for turbulent smoke simulation within a modeled voxel environment. Work includes rotation dynamics and auditory analysis of turbulent flow through musical instruments.

 

Awards & Recognitions

• NVIDIA Graduate Research Fellowship

• Stanford School of Engineering Fellowship

• Sigma Xi Research Society

• Tau Beta Pi Society, Princeton University

• Cum Laude Society, The Lawrenceville School

• American Chemical Society Science Scholarship

Activities

• Co-Chairman, Association for Computing Machinery, Princeton University Chapter

• Photography Editor, The Princeton Tiger Magazine