Theoretical Q: Open CL and many GPUs?

Discussion in 'Mac Pro' started by Loa, May 28, 2009.

  1. Loa macrumors 65816

    Loa

    Joined:
    May 5, 2003
    Location:
    Québec
    #1
    Hello,

    Simple curiosity on my part, but I'm pretty sure a few of you guys will already know the answer.

    Is it possible that, after 10.6 brings us Open CL, people start buying extra GPUs purely for the increased performance?

    For example you have 4 GPUs, 2 of them driving displays, and the other two as extra help, should the rest of your system need it.
     
  2. TheStrudel macrumors 65816

    TheStrudel

    Joined:
    Jan 5, 2008
    #2
    That depends completely upon how OpenCL is being implemented (as in, will non primary graphics cards matter at all?) and software support specific to the applications in question. I don't think that information's been made public yet.

    I'm going to go out on a limb and say that I doubt there will be much emphasis on a boost from non primary cards, so we won't see it. But I'm hoping I'm wrong.
     
  3. nuckinfutz macrumors 603

    nuckinfutz

    Joined:
    Jul 3, 2002
    Location:
    Middle Earth
    #3
    Again we'll have to see how robust the implementation of OpenCL is but CUDA can handle multiple GPU cards (check out the Badaboom video encoder)

    It's not really OpenCL that is going to handle multiple cards but Grand Central Dispatch that would be tasked with keeping everything in order. OpenCL must rely on GCD especially when we have more than one GPU in the system.
     
  4. 300D macrumors 65816

    300D

    Joined:
    May 2, 2009
    Location:
    Tulsa
    #4
    It all depends on Apple and if they choose to make it work that way.

    My bet is no, it will only use cards working as a display or the only primary card. We'll just have to wait and see.
     
  5. macz1 macrumors 6502

    macz1

    Joined:
    Oct 28, 2007
    #5
    I think even if they would be used, the advantage of two GPUs vs a single one would be rather small or restricted to very specific scenarios. A typical CUDA program like Badaboom does not use all the stream processors available in a GPU (max. 64 IIRC) because video encoding it's not infinitely parallelizable. Adding another GPU would not speed up the task.
    It's better to have a fast GPU rather than many slower ones.
     
  6. 10THzMac macrumors 6502

    Joined:
    Dec 17, 2007
    #6
    Yes - as many as possible

    I have already configured two Mac Pros with 2 GPUS (one 8800+260, one 8800+285) precisely to have extra programming power. OpenCL and CUDA both drives multiple GPUs happily. Driving a display will be the job of one card (8800 in my case) and other GPUs might not even have video out (e.g. the TESLA). Applications can be enabled to find and use as many GPUs as are present. So people doing video rendering or running big mathematical models will stuff their machines with GPUs as a matter of course.

    The real issue at the high end is whether Apple will provided a bigger and more powerful Pro machine with many double-width PCI slots and power supplies to make this straightforward. Mac Pro logic board power supports just one card needing 2 6-pin connectors. Many of us are grabbing power form the optical bays to power up two cards or beasts like the GTX 295. In the Windows world people just buy a suitable motherboard and a PSU like the Toughpower range and happily power up 3/4 295s or TESLAs and get on with it. OS X users have to go the hackintosh route for now based on such s config.

    Nvidia have now made it public that they have released their OpenCL toolkit to registered developers and if you get that level of access you will see the start of how all this works. As under CUDA, you can run a device Query to see how many GPUs are present, and then give every one part of a job to do. (added under edit - re the macz1 remark - my stuff will make use of as many cores as are around - code that is not infinitely parallelizable is of course different).
     
  7. Loa thread starter macrumors 65816

    Loa

    Joined:
    May 5, 2003
    Location:
    Québec
    #7
    Thanks 10THzMac, very interesting stuff!
     
  8. nuckinfutz macrumors 603

    nuckinfutz

    Joined:
    Jul 3, 2002
    Location:
    Middle Earth
    #8
    While CUDA may have limitation in optimizing for all cores Apple has sought to address this with Grand Central.

    It is not OpenCL that determines how many compute resources to tap and track but Grand Central.

    Thus the more GPU you have should not matter as OpenCL is not burdened with the task managment here.

    There's a reason why there are a lot of Grand Central sessions at WWDC. It is very important for the future of Apple and dealing effectively with muticore processors.

    Google

    "Grand Central Dispatch "
    "Blocks"
    "OpenCL"

    All are important strategies for moving forward.
     
  9. 10THzMac macrumors 6502

    Joined:
    Dec 17, 2007
    #9
    I won't dispute the importance of Grand Central for Mac OS apps. However, for OpenCL to succeed it has to be open with regard to both processor types (CPUs, and both NVIDIA and ATI GPUs) and operating systems.

    I was a bit startled when I got my paws on the test version of the OpenCL SDK from Nvidia. It is for Windows and Linux only at the moment.:eek: After I lifted my jaw back into place I realized what "Open" meant, so I wonder how many big multi-platform developers will write GPU-enabled code that relies on Apple-specific Grand Central for task allocation. :confused:
     
  10. nuckinfutz macrumors 603

    nuckinfutz

    Joined:
    Jul 3, 2002
    Location:
    Middle Earth
    #10

    I presume the ones that want performance. Adobe or Microsoft can ignore it but that just gives a leg up on the smaller companies that will take the time and effort to optimize their apps for multi-core and GPGPU processing.

    Of course Apple will eat it's own dogfood and they will deliver their Pro apps with the necessary support.
     

Share This Page