Sign in with
Sign up | Sign in

Conclusion, Continued

Nvidia's CUDA: The End of the CPU?
By

So what does CUDA need in order to become the API to reckon with? In a word: portability. We know that the future of IT is in parallel computing – everybody’s preparing for the change and all initiatives, both software and hardware, are taking that direction. Currently, in terms of development paradigms, we’re still in prehistory – creating threads by hand and making sure to carefully plan access to shared resources is still manageable today when the number of processor cores can be counted on the fingers of one hand; but in a few years, when processors will number in the hundreds, that won’t be a possibility. With CUDA, Nvidia is proposing a first step in solving this problem – but the solution is obviously reserved only for their own GPUs, and not even all of them. Only the GF8 and 9 (and their Quadro/Tesla derivatives) are currently able to run CUDA programs.

nvidia CUDA

nvidia CUDA

Nvidia may boast that it has sold 70 million CUDA-compatible GPUs worldwide, but that’s still not enough for it to impose itself as the de facto standard. All the more so since their competitors aren’t standing by idly. AMD is offering its own SDK (Stream Computing) and Intel has also announced a solution (Ct), though it’s not available yet. So the war is on and there won’t be room for three competitors, unless another player – say Microsoft – were to step in and pick up all the marbles with a common API, which would certainly be welcomed by developers.

nvidia CUDA

So Nvidia still has a lot of challenges to meet to make CUDA stick, since while technologically it’s undeniably a success, the task now is to convince developers that it’s a credible platform – and that doesn’t look like it’ll be easy. However, judging by the many recent announcements in the news about the API, the future doesn’t look unpromising.

See our review of Nvidia’s GT200 GPUs for more on CUDA.

For the latest on CUDA click here.

Display all 40 comments.
This thread is closed for comments
  • 0 Hide
    Anonymous , June 18, 2008 5:03 AM
    CUDA software enables GPUs to do tasks normally reserved for CPUs. We look at how it works and its real and potential performance advantages.

    Nvidia's CUDA: The End of the CPU? : Read more
  • 8 Hide
    Anonymous , June 18, 2008 8:31 AM
    Well if the technology was used just to play games yes, it would be crap tech, spending billions just so we can play quake doesnt make much sense ;) 
  • -5 Hide
    dariushro , June 18, 2008 9:59 AM
    The Best thing that could happen is for M$ to release an API similar to DirextX for developers. That way both ATI and NVidia can support the API.
  • 0 Hide
    dmuir , June 18, 2008 10:44 AM
    And no mention of OpenCL? I guess there's not a lot of details about it yet, but I find it surprising that you look to M$ for a unified API (who have no plans to do so that we know of), when Apple has already announced that they'll be releasing one next year. (unless I've totally misunderstood things...)
  • 1 Hide
    neodude007 , June 18, 2008 12:56 PM
    Im not gonna bother reading this article, I just thought the title was funny seeing as how Nvidia claims CUDA in NO way replaces the CPU and that is simply not their goal.
  • -3 Hide
    LazyGarfield , June 18, 2008 1:44 PM
    I´d like it better if DirectX wouldnt be used.

    Anyways, NV wants to sell cuda, so why would they change to DX ,-)
  • -3 Hide
    Anonymous , June 18, 2008 1:57 PM
    I think the best way to go for MS is announce to support OpenCL like Apple. That way it will make things a lot easier for the developers and it makes MS look good to support the oen standard.
  • 1 Hide
    Shadow703793 , June 18, 2008 1:58 PM
    Mr RobotoVery interesting. I'm anxiously awaiting the RapiHD video encoder. Everyone knows how long it takes to encode a standard definition video, let alone an HD or multiple HD videos. If a 10x speedup can materialize from the CUDA API, lets just say it's more than welcome.I understand from the launch if the GTX280 and GTX260 that Nvidia has a broader outlook for the use of these GPU's. However I don't buy it fully especially when they cost so much to manufacture and use so much power. The GTX http://en.wikipedia.org/wiki/Gore-Tex 280 has been reported as using upwards of 300w. That doesn't translate to that much money in electrical bills over a span of a year but never the less it's still moving backwards. Also don't expect the GTX series to come down in price anytime soon. The 8800GTX and it's 384 Bit bus is a prime example of how much these devices cost to make. Unless CUDA becomes standardized it's just another niche product fighting against other niche products from ATI and Intel.On the other hand though, I was reading on Anand Tech that Nvidia is sticking 4 of these cards (each with 4GB RAM) in a 1U formfactor using CUDA to create ultra cheap Super Computers. For the scientific community this may be just what they're looking for. Maybe I was misled into believing that these cards were for gaming and anything else would be an added benefit. With the price and power consumption this makes much more sense now.

    Agreed. Also I predict in a few years we will have a Linux distro that will run mostly on a GPU.
  • 0 Hide
    kelfen , June 18, 2008 2:40 PM
    Well this is a huge step, hope to see it successful.
  • 0 Hide
    LogicalError , June 18, 2008 2:48 PM
    FYI: Apple has been working with the Khronos group (the people behind OpenGL at the moment) to make an API called OpenCL which should do all the things that Cuda et al can do. Since it's not just Apple that's behind it, but also the Khronos group, it should be cross platform. So who knows.. maybe this is going to be the unifying API for this.. well, until Microsoft comes up with 'DirectC' ofcourse
  • -2 Hide
    Anonymous , June 18, 2008 3:00 PM
    the last page comments on how MS could come in and create a common API, this common API is already in process, its just that MS isn't part of it ;) 
    http://arstechnica.com/journals/apple.ars/2008/06/18/apple-joins-working-group-to-hammer-out-opencl-spec
  • -2 Hide
    Anonymous , June 18, 2008 3:32 PM
    I know that this is not too close to the article, but i hope that it is still not too OFF topic.
    I just have a question, and someone might answer it (the TH is full with smart guys). My problem is that there are too many misconceptions floating around in the net regarding CUDA and overall the whole GPGU businnes.
    I have seen somewhere, that these GPU's are able to do Double Precision floating point calculations, but personally i find this unlikely.
    Others say that you can take directly your parallel code writen in C or Fortran90, and adopt it to CUDA, because the standard stuff can run serial on the CPU and the most computationally expensive part parallel on the GPU. On top of that you can 'adress' or cummunicate with your GPU directly from a Fortran code with sort of system calls (i think this is BS).
    Quiet frankly, i have not found a site on which i can really rely on, where they show an example (source code and explanation) of how something like this could be done.
  • 0 Hide
    bf2gameplaya , June 18, 2008 4:38 PM
    I wish Intel and NVidia would get over themselves and co-operate and finally give total system performance that big ass boost it needs.

    Intel is wasting time ray-tracing on a CPU and NVidia is wasting frames by folding proteins on their GPU.

    "You're doing it wrong!"
  • -1 Hide
    Anonymous , June 18, 2008 5:09 PM
    No, the best would be if we got an open API, like OpenGL. I seriously do not want another DirectX locking me to MS >_
  • 0 Hide
    thr3ddy , June 18, 2008 6:10 PM
    @dariushro: That would quite possibly be the worst thing that could happen to GPGPU. Microsoft equals Windows and GPGPU and super computing is not Windows' strongest point (understatement).

    It would be better for a neutral party composed of GPGPU experts from different IHVs to initiate something like what you propose, more like what the OpenGL ARB creates, a specification.

    IHVs and other companies could then implement this standard on their own hardware, thus decentralizing development from the ISV. If you leave development of this type of technology up to Microsoft (or any other single developer) you'll end up with vendor lock-in, which is a Bad Thing, for all of us.

    Anyway, CUDA is great but not cross-platform compatible (Intel, AMD/ATI, etc.) which makes it impossible to implement in commercial software, unless a CPU-bound alternative is provided, which would defeat the purpose of the architecture.

    On a similar note: think of the choice between the PhysX SDK and Havok Physics. Do you want partial GPU accelerated physics supported by one brand (PhysX, NVIDIA G80+) or do you want to stay CPU-bound but have the same feature set regardless of the hardware (Havok)?
  • 0 Hide
    magnesious , June 18, 2008 6:39 PM
    If you had the patience to read this entire thing, I'd recommend you look at the CUDA programming guide(link) It's the same information, but less terse.

    Tom's also forgot to point out that development is possible via emulation (emuDebug build setting, I think, with the .vcproj they give you), so anyone can get their hands dirty with the API. You don't get the satisfaction of seeing cool speedups, but it's just as educational, and easier to debug. No screen flickers :) 
  • 0 Hide
    MxM , June 18, 2008 7:21 PM
    I wonder if a PC can be build today without processor at all? It probably requires different BIOS for mobo and some kind of x86 emulator for NVIDIA card, but is it possible in principle without any modifications in hardware?
  • 0 Hide
    godmodder , June 18, 2008 8:55 PM
    The end of the CPU is nowhere near. To think the GPU could be used for every task is just absurd. The GPU is only good for tasks which can be massively parallellized. Unfortunately, not that many tasks, apart from graphical processing, can be divided into smaller, completely independent parts.
Display more comments