Skip to navigation

PCPro-Computing in the Real World Printed from www.pcpro.co.uk

Register to receive our regular email newsletter at http://www.pcpro.co.uk/registration.

The newsletter contains links to our latest PC news, product reviews, features and how-to guides, plus special offers and competitions.

// Home / Blogs

Posted on September 30th, 2009 by Darien Graham-Smith

Reports of CUDA’s death exaggerated?

Nvidia-Hall

In my last post I suggested that DirectX 11’s extensive GPGPU support could mark the end of the road for CUDA. And I do expect that mass market GPU applications will quickly move to DirectX rather than restricting themselves to a single architecture.

But the other day I was discussing DX11 with Bit-Tech editor Tim Smalley, and I found him very reluctant to write CUDA off just yet. He pointed out that CUDA retains one big advantage over DX11, in that developers can knock up CUDA routines directly in C – or Fortran or even Matlab – without having to deal with the DirectX API.

Two different markets

Thinking about this, I’ve realised that there are in fact two wholly separate markets for GPU computing. As a mainstream technology, it’s a great way for application developers to wring extra performance from whatever hardware the user happens to already own. In this market, it makes sense to write code that will benefit as many users as possible, which today means DirectX.

But the truth is that there aren’t many desktop tasks that really benefit all that much from GPU acceleration – everyone talks about video transcoding, physics simulations and AI for games, but once you move past those very specific applications it’s slim pickings. For now, the real potential of massively parallel computing appears to lie in its ability to accelerate scientific research.

An academic question

And when scientists and engineers are choosing a research platform, they don’t really care about issues like market share. Their code only needs to run on a handful of machines, and it’s no problem to design those machines to suit the task, rather than vice versa. Here, CUDA is a no-brainer, because it lets researchers program in familiar languages, producing code that can be maintained and expanded without having to learn a new API.

Nvidia realises this, of course, and rather than continuing to talk about games, it’s been carefully positioning CUDA as a friend of academia. As the photo above shows, the hallways at GTC this morning were filled with boards – not whiteboards, like at IDF, but display boards showing summaries of research projects. Some focused on graphical techniques; others targeted problems in biology, physics or engineering. But all of them had something in common…

Cuda-montage

It’s a bold display. It cleverly makes CUDA look like serious business while ATI is still worrying about copying DVDs onto iPods.

And, what’s more, it’s persuaded me that Mr Smalley does have a point. Clearly, CUDA isn’t going to vanish from these environments overnight. Why would it, when DirectX offers no advantage?

The road ahead

But while academia may be a respectable market, you have to question how much actual revenue Nvidia sees from each of these projects. And though the use of (more or less) industry standard C is working for CUDA right now, it will work against it when a real rival comes along – a rival, perhaps, that can offer even greater programmability, backed up by the kind of muscle that doesn’t need to worry about revenue.

So here’s my crazy prediction. Some form of high-level GPGPU interface will survive alongside DX11 for the foreseeable future. And for the time being that will be CUDA as a matter of default. But I don’t think CUDA will ever be a real money-maker for Nvidia. And within five years I predict that Nvidia’s share of the GPU computing market will be swallowed up… by Larrabee.

Tags: , , , , , ,

Posted in: Hardware, Random, Real World Computing

Permalink

Follow any responses to this entry through the RSS 2.0 feed.

You can skip to the end and leave a response. Pinging is currently not allowed.

4 Responses to “ Reports of CUDA’s death exaggerated? ”

  1. Gary Silcott Says:
    October 1st, 2009 at 12:56 am

    Disclaimer: I work for AMD.
    I feel obligated to comment since its obvious the Nvidia PR machine has done its jog – the idea that CUDA is somehow “industry standard C” is pure fallacy. If you speak directly to actual developers they know it’s not accurate, but marketing has a different standard. If CUDA were “industry standard C” that would be 2 simple things: 1) you could take a CUDA program and compile it and run it with another standard C compiler; and 2) you could take a standard C program and compile and run it with the CUDA compiler: Actually you can’t do either. CUDA is not standard C.

     
  2. Tim Smalley Says:
    October 1st, 2009 at 7:48 pm

    Gary:

    C for CUDA isn’t ‘industry standard C’ – Nvidia has never said that to me, or any other member of the press as far as I’m aware – but my understanding is that it is very similar to writing conventional C code. I’ve spent quite some time speaking to a number of companies (one whose office used to be nextdoor to bit-tech’s, before we moved into London) who have ported their apps to CUDA. Every one of them said that the porting process requires very little effort on their part.

    As for Nvidia’s PR machine doing its job and paying developers to use CUDA (not your accusation, but an accusation that has come out of AMD on multiple occasions)… the company next door to bit-tech was asking me if I could help them to establish a contact window in order to help debug some of their code. They didn’t have any contact with Nvidia, but they witnessed big speed ups in their applications with a very simple port from C to C for CUDA.

    I asked another British dev, who works for a finance company in Chicago, if he’d consider porting their applications from C to DirectCompute or OpenCL, since they’re standards supported by both AMD and Nvidia, but the answer was a resounding no. He has moved the app from C# to C++ to C on the CPU and seen some decent performance increases CPU-only. Those performance increases were easy to justify, but he said the effort required to take a C program and port it to “a graphics API” (his words, not mine) was too great and difficult to justify to his bosses when the effort required to move from C to CUDA was minimal in comparison, but offered effectively the same speed ups.

     
  3. John Melonakos Says:
    October 11th, 2009 at 12:51 am

    Disclaimer: I work for AccelerEyes.
    I just wanted to point people to the work we’re doing to make it super easy for MATLAB code to run on the GPU using CUDA underneath the hood (see Jacket at http://www.accelereyes.com). As other GPU APIs mature, we’ll support them, but our requirement is that they be useful to scientists (i.e. at least containing FFTs, some BLAS, and have a good plan for doing LAPACK-level functions as well). CUDA has all of that and is the only option today for any of the above. It’ll be exciting to see AMD and Intel jump into the mix as their libraries mature, but they are several years behind in terms of the libraries that scientists, engineers, and financial analysts need.

     
  4. Patrick Degenaar Says:
    December 7th, 2009 at 12:55 pm

    It’s nice to see my poster there in your picture (nearest on the right). On a more serious note, I would caution against describing CUDA as being only used by ivory tower academics doing high level physics simulations. A reasonable minority of us were actually thinking of real world applications (My poster described retinal prosthesis). The crazy concepts being pioneered in academia will become the products, and thus the revenue streams of tomorrow.

     

Leave a Reply

Spam Protection by WP-SpamFree

* required fields

* Will not be published

SEARCH
SIGN UP

Your email:

Your password:

remember me

advertisement


Hitwise Top 10 Website 2010