It'd also be cool for people to realise that even though your job title is Software Manager, that you're still getting your hands dirty writing code.

Yeah, so I wrote most of the driver and some bits of nvcc....

So there's no team of monkeys going off and doing that for you?

No monkeys, sadly, but it's been a lot of fun building that platform from scratch, using experience from my Brook days. And the coolest thing now compared to back doing Brook before I started at NVIDIA is that I don't have to fight the hardware or driver any more. I am the driver, I own the hardware, and I get to make that work to my advantage. So now CUDA gives you more control over the memory management for example, compared to what Brook can do. Call the CUDA malloc and you'll get a pointer to GPU memory, right? These days I have less to do with the driver than before, so my check-in activity is low, but I still fix bugs and I still hit the tree and think, "man, who wrote this code, it's terrible.....oh, that was me!", but I'm definitely doing a bit more than I did with just the driver. So now I'm in charge of the language and the API and the direction that takes, too.

So how much of your day is writing software now? Is it less and less now that CUDA has shipped?

A big part of my job now is to make sure the team has everything it needs to make good progress, so that all my engineers are happy and aren't fighting anything, that their goals are clear and they're able to bang on the code that they want to. I'll try and pick up the slack where I can, but a lot of my time is devoted to keeping the team efficient. And one of the great things about doing that here is that architecture and software are in the same building, so if one of my guys has a problem then the guy who built the chip is just down the hall, we can go ask him what's up.

There's no disconnect there?

Oh no, I personally have two weekly meetings with architecture and any of my guys can do the same thing and walk down the hall and talk to the guy who built the silicon he's playing with at any given time. Even if it gets down to an RTL issue where we need to get deep, we can go see the guy who wrote the RTL. That's a big advantage about owning both hardware and software here. That's probably been the most enjoyable part of building CUDA so far, from it being a pilot project inside the company to it being what it is today at this point.

So is CUDA taken as seriously as any other large scale software engineering effort at NVIDIA?

Well you heard Jen-Hsun yesterday! It's taken as seriously as anything else, no question.

So because of that do you feel pressure that a large chunk of future NVIDIA business rests on your software pillar as part of Tesla and the GPU compute effort? Do you enjoy the pressure?

Yeah, both me and my guys thrive on that. We'll now and again have to write CUDA apps ourselves to test bits of code and we'll find new things that it can do and think, "wow, this is really cool and people can go out there and use this to build new apps and businesses that didn't exist before". It's great to see that, and it's great to see our customers having those moments too. So we'll deliver, and that experience drives what's going on here and we're pretty excited about it.

So last one. Can you see yourself at NVIDIA 5 years or 10 years from now, and if so will it still be doing CUDA?

I want Jen-Hsun's job! *laughs all round*

Haha, so you've signed up for the long run, then? Might take a while.....

Nah, this project has some serious legs and it's very important to the company that we get it right. The work we're doing now isn't just to hit point release and get 1.0 out. We're thinking 1.1, 2.0, 3.0 and even further out, so I'll be around doing CUDA for a long time.