“It was really fun,” says Julia on a call from her home in Cherry Hills Village, Colorado, following an after-school basketball game. “It was one of my first programming classes, I actually did okay at it.”

Everyone is Doing It

Tapping into the power of the graphics chips powering PlayStations and PCs used to be considered a little fringy. Now, it couldn’t be much more mainstream.

Two million people have downloaded our CUDA tool kit. More than 18,000 professionals boast about knowing CUDA on their LinkedIn profiles. Parallel programming is increasingly among the core skills programmers are expected to learn.

CUDA whet Julia’s appetite for more. “I used to want to be an architect,” says Julia. “Now I want to be a computer programmer.”

To create a bigger, more responsive virtual world for Minecraft, Julia says she’s now working with her dad — John Ashley, a post-doctoral fellow at the University of Colorado (Boulder) — to create code that will accelerate the open-source code that powers the servers used to host the game.

While John had signed up for the supercomputing conference in advance, he decided to bring Julia at the last moment. She had a day off from school, and asked to come along.

Father-daughter project: Julia and her father build custom servers in their spare time.

The show was an obvious fit for John, who holds a Ph.D. in chemical engineering. He’s doing design work on medical devices that could one day detect diseases, such as cancer, that leave chemical markers in the blood — markers that might even be detected by a simple breath test.

From Scientists, to Gamers, and Back

Building such devices, however, requires sophisticated micro-fluidics simulations. The need to build these has made CUDA — the programming model that helps programmers unlock the power of NVIDIA’s graphics chips for a wide range of applications — a key technology for John.

He says CUDA has helped him get simulations done overnight with an off-the-shelf graphics chip that would have taken a week on a mainframe computer.

These graphics processors, or GPUs, are built to tackle a large number of tasks at once — making them ideal for creating graphics for video games. And that broad market has made it possible to build chips that pack the kind of power once available only in a high-end supercomputer into an add-in card that can be slipped into a desktop PC.

The result: booming demand for Tesla GPUs among scientists and researchers, who are using CUDA to build applications that sometimes surprise even the technologists who developed CUDA.

People of all ages are using Minecraft to build fantastic virtual worlds.

While John’s work in fluid mechanics is a classic CUDA application, Minecraft isn’t. The game has become a worldwide hit thanks to teens and pre-teens. And its charming, blocky graphics make it playable even on machines that don’t have GPUs.

“It’s really addicting. It teaches you about architecture, about gravity, about a lot of things,” Julia says. The customizable plug-ins powering Minecraft are also a way to dive deeper into the technology powering games, says Julia.

Julia’s plan sounds wild, to be sure, but John thinks it’s doable. There are many plug-ins for Minecraft written in a wide variety of programming languages. Many of them are large, computationally-intensive programs that could benefit from GPU acceleration, John says, and Julia and her brothers have already done some coding work in the past.

But Can It Play Minecraft?

Of course, learning CUDA does take an investment of time. It took an afternoon of tutorials for Julia — who, admittedly, already knows her way around a server — to get started with CUDA.

Her reward: an NVIDIA scarf handed out at the SC13 conference. Maybe next year, they’ll bring the entire clan. John reports that Julia and her brothers — she is one of a set of triplets — already sometimes fight over the bright green neck warmer.

Now go back 25-30 years in time, when there was no internet, no wast amount of free resources, tutorials, documentation and examples on programming. When lot of kids didn’t even have access to a computer at home, but only in school, for a few hours in a week. When the highest level language you had access to were assembly and Basic. When hardware programming was about writing ports and video memory directory, and included calculating cpu cycles, handling interrupts – not about using some high level abstraction.

Now, if under all these limiting circumstances you still manage to pull off some serious stuff, then you have really achieved something. Like you know, some kids at that time have.

On the other side, this still can be considered some serious achievement, relative to the current generation of kids. After all, the most most of them achieve is to get a concert ticket for a Justin Bieber gig and have Miley Cyrus as their idol.

Sam Aubrey-Smith

I think a simple ‘Well done’ would’ve sufficed, rather than complaining about the current generation of youths.

Sam Aubrey-Smith

I’m learning CUDA myself, looking forward to finding out what I can do with it in the future!

allenpan

CUDA has much better support than AMD or OPENCL, try to get AMD to help you to debug your code, and you will see what happen! while Nvidia has the huge team to help, and this is from a graduate student working on robotic with GPGPU.
yes i tried both ATI using OPENCL and Nvidia CUDA, guess what? where is the freaking support on AMD side? if you working on OPENCV or EMGU, where is also no support for AMD, so proprietary or not, it does not matter, as after support is what counts for developers and engineers!

Brian Caulfield

Keep us up to date on your adventures with CUDA!

Brian Caulfield

Thanks for the feedback, glad to hear our support team has been there for you.

What are you building with CUDA?

Brian Caulfield

Can’t say I’m a fan of Justin Bieber either; but, in defense of the latest generation, I think there are a lot of kids out there doing amazing things. And while hard work is always good, I think one could also argue that it’s a good thing that a sharp, well-rounded twelve year old can, with a little effort, get started with CUDA.

allenpan

Hello Brain, the previous contact i have with Nvidia is Roy Kim (Sr. Product Manager, NVIDIA Tesla Business Unit), i recently graduated from my MSc in ECE (Oct 2013) and was working on autonomous treads base tank robot using microsoft Kinect with Intel mobile processor with Nvidia Fermi GPU.and Nvidia CUDA focus on image processing though OpenCV and some custom build filter/logic in CUDA as well.

now i am working in AUTO industry due to my previous embedded system design and development for my school FSAE team for the past 5 years. I am more of an embedded system person and really enjoy the image processing. ultimately i want to deploy my existing robot system into a kids PowerWheel with additional kinect (consider as a cheap/kiddie version of Google Street Car) and hopefully it can self drive around the town with my 3 years old daughter mounting on it!

Brain we can take the conversation else where as well, i am having a hard time locating the CARMA or KAYLA as currently i am using Samsung’s Exynos5 with Intel ULV board to interface CUDA card….

is there a plan for Tegra support in WinCE?

Durasara

Minecraft is not a parallel task, not in any way shape or form. However, there are plugins such as Dynamp and WorldBorder that could be considered parallel (I don’t really know if they are or not, I don’t know code very well). Whenever I make a new world for my MC server I pre render the entire world out to a specified border, using WorldBorder, then render it AGAIN with Dynmap so that the world can be viewed in 3d from a web interface. I pre render the world so that the clients do not hit lag spikes in unexplored areas, waiting for the server to render that area. It increases speed and decreases server workload during normal operation dramatically. Depending on the size of the world, those pre-render tasks could take anywhere from 6 hours to 4 days, maxing the available threads on my fx-8350 @ 4.5 Ghz as well as 8gb of ram that is allotted just to the server. If there were a way to speed up this rendering process using CUDA or J-Cuda I would definately invest in an inexpensive 650ti or something to use just as a compute card for that task. (though I would prefer OpenCL because I have a couple old AMD cards laying around)

Who knows, maybe such a project could push Mojang to re code their API to be more parallel.

Karl Zhao

“And its charming, blocky graphics make it playable even on machines that don’t have GPUs.”

That’s not true at all. While admittedly Minecraft’s requirements are often over-estimated, a decent mid-ranged GPU is still required to get an enjoyable experience on anything above low settings.

Sin Lee

Here’s a Too Long, Didn’t Read version of this article: CUDA, so easy, even a 12 year old can do it!

Sin Lee

He did started out with “Great.” – it’s your own fault for reading his long complaint about the current generation of youths.

Aim925

I am never ceased to be amazed by some of the things being performed with technology today. Great innovations often start with an unexpected application. Starting with an item of interest such as a game provides an incentive for a kid to learn a serious set of skills. Those skills can later be put to use for other uses that may have a greater and more positive impact – be it in the field of medicine, finance, engineering or some other endeavor.
The fact that the family encourages such a pursuit to follow an interest demonstrates that in some ways, high-technology involving computers may become the new ‘lego’ for families.
Having a parent who assists and guides their kids strengthens the family. The father’s area of study related to the study of disease detection using microfluidic devices sounds interesting
and I’d like to hear more about those studies where CUDA is used for simulations.

Mingy

now i am curious. the article did not say what she actually built. more links plx 😉

Bradley Haggerty

I’m glad someone pointed this out. I laughed when i read that part of the article.

Anthony Marino

You think this little girl can program the drivers to work with premiere pro cc? Because the engineers both at Adobe and Nvidia seem to be sleeping in the job. None of the last few drivers play nice with premiere pro. It’s a disgrace, brand new gtx 780 ti replaced my gtx 670 4gb and it still doesn’t work. What a shame. You guys don’t need to come out with anything new until you fix the existing problems. Come in now, really.

John Flerianos

Well done? Nothing was done, yet. Nvidia is sponsoring 12 year olds instead of scientists. She knows nothing about programming

ingmarmxy321

My Uncle
Jacob got an awesome green Chevrolet Colorado Crew Cab just by working from a
macbook… great post to read B­i­g­2­9­.­ℂ­o­m

Noobs

I don’t know what you mean by Mid-ranged. But it’s recent updates are playable on old integrated graphics. I would like to see my Intel HD 3000 run Crysis 3.

der derpy

I hate how they praise her as a genius. I have been doing more since I was ten I already now python,cuda, and java

Joel S Wilson

I remember A mars 3D program back in 92 when I was A freshman I – made – all it did was make waves like rocks over & over on A open red rock bed like on mars & it really looked liked mars – I used c++ to do it back than & mixed in java code together – that was on a 486 system dos