Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

MacRumors

macrumors bot
Original poster
Apr 12, 2001
69,371
40,416


Appleinsider claims that NVIDIA is working on bringing "general-purpose computing on graphics processing units" (GPGPUs) to the Mac.

GPGPUs are described as a new type of graphics processors that can perform complex computations typically reserved for the system's primary CPU.
The technology -- in Nvidia's case -- leverages a proprietary architecture called CUDA, which is short for Compute Unified Device Architecture. It's currently compatible with the company's new GeForce 8 Series of graphics cards, allowing developers to use the C programming language to write algorithms for execution on the GPU.
According to Appleinsider, the GPGPUs can be beneficial in a number of applications with complex mathematical requirements, such as raytracing, scientific applications, cryptography, and audio and image processing.

NVIDIA's $1500 Telsa card is the first example of this class of graphics card. When launched for Mac, these GPGPUs will likely be a high-end build-to-order option for Mac Pros.

Article Link
 
The CUDA SDK for windows is awesome. It includes some small demos of CUDA implementations such as a real-time mandelbrot generator, particle simulation, stable fluids model, and a bunch of other command-line based tests and such. I ran the demos on an 8800GTS which was sustaining several hundred GLOPS during the demos and tested to about 60 GB/s of internal bandwidth.

There is some extreme power in GPUs that's just waiting to be unlocked.

Edit: While it's not SLI, CUDA does support multiple GPUs per configuration.
 
This GP GPU sounds like another CPU. I mean, mathematical tasks such as image and sound processing? If they're really interested in another CPU, just add another CPU. It doesn't have to be from NVIDIA. It can be from Intel, no?

I don't really get it. Or is this just like what AltiVec used to be?
 
GPGPU is more-or-less for highly parallel operations. It can achieve an order of magnitude higher performance than a normal CPU.

I suppose it's like altivec in the sense that it's not x86... GPGPU is more like a single processor with hundreds of more specialized cores.
 
Well GPU's are good in dumb parrallel processing, which is what rendering 3d images is all about. Your CPU can't do it that fast because it has to be able to do all kinds of differnet stuff.
 
Specialized coprocessors were all the rage in the 80s and into the very early 90s. Rapidly advancing speeds of general purpose CPUs rendered them moot and that line of development was dropped. Now we're back to repeating history. No different than high-speed interconnects, really. They started out serial, went parallel for the next round of speed bumps, and now we're back to serial.
 
Sorry Intel, sounds like the days of x86 instruction set CPU(s) are coming soon to an end. In a few years these babies maybe be providing most of the horse power for general purpose computing.
 
This is one advantage of the Apple marketshare growing. Increased support from the hardware community.
 
The only issue I have is that I think the current GF8 series of cards are only FP16 - 16 bit floating point aka single precision. This may not be enough for most apps. It would be great for running test runs, but I know for scientific calcs FP16 isn't sufficient, they need FP32.
 
Maybe we will finally get SLI now....
CUDA doesn't need SLI to support multi GPU. The application developer addresses the threading to individual GPUs in the application itself, this way, they can access all memory on all GPUs, where as SLI just uses the additional GPUs only and approximates the splitting of frames in DirectX and OpenGL.
Don't get too excited about new cards, the Quadro FX 5600 and 8800GT already support CUDA.
Yah, but the 8800 GTX only has half the memory and the QuadroFX 5600 is twice as expensive.
This GP GPU sounds like another CPU. I mean, mathematical tasks such as image and sound processing? If they're really interested in another CPU, just add another CPU. It doesn't have to be from NVIDIA. It can be from Intel, no?
That is essentially what it is. Treating the GPU like a CPU in terms of compute intensive tasks. The problem with just adding another CPU is that the performance of Tesla for certain applications can exceed that of many CPUs. From experience, the 8800 GTS in VMD (molecular dynamics) benched about 200 GFLOPS, while a 2.6GHz Intel processor (only one core) was 5 GFLOPS. The application supported multi GPU, so even if you decided you should add another processor, might as well add another GPU while you're at it. Heck, I built an entire workstation around this concept, and have 6 GPUs successfully running in a box, and got just over 1 TFLOP with 6 8800 GTS GPUs.

http://www.ocia.net/articles/tycrid/page1.shtml
 
The only issue I have is that I think the current GF8 series of cards are only FP16 - 16 bit floating point aka single precision. This may not be enough for most apps. It would be great for running test runs, but I know for scientific calcs FP16 isn't sufficient, they need FP32.

I don't understand your post at all.

Standard "single" floating precision is 32-bit floating, "double" precision is 64-bit floating. 16-bit floating is an oddity that has very little traction (it is not supported by the x86 architecture, for example).

See http://en.wikipedia.org/wiki/Floating_point

The "half-floats" in CUDA probably aren't interesting at all. http://forums.nvidia.com/index.php?showtopic=36286

In fact, since modern CPUs run 64-bit floating at almost the same performance as 32-bit single precision - the use of 32-bit float is dropping. Using "half-precision" float would not be interesting for very many applications.
 
I don't understand your post at all.

Standard "single" floating precision is 32-bit floating, "double" precision is 64-bit floating. 16-bit floating is an oddity that has very little traction (it is not supported by the x86 architecture, for example).

See http://en.wikipedia.org/wiki/Floating_point

The "half-floats" in CUDA probably aren't interesting at all. http://forums.nvidia.com/index.php?showtopic=36286

In fact, since modern CPUs run 64-bit floating at almost the same performance as 32-bit single precision - the use of 32-bit float is dropping. Using "half-precision" float would not be interesting for very many applications.
I disagree. Granted, as time goes on, these video cards will get more memory, but like graphics, sometimes you don't care a whole lot about the precision. For example, imagine doing real time image processing on a high resolution video, using fft or other transforms. On a bargain basement PC. It's coming.
 
Logic Pro and CUDA

CUDA is fundamentally awesome, it really does deliver 10x-100x performance of your Intel CPU on floating-point heavy operations, if those operations are amenable to parallelization. Which of course pretty much anything is if it burns enough CPU cycles.

This gets potentially very exciting for users of Logic Pro, Garageband etc - if the heavy duty compute kernels in these apps were ported to CUDA it would introduce a big step function in performance for music production, and be a big incentive for people to upgrade to an NVIDIA-powered Mac from whatever they currently have. Looking forward to the first proof of concept AU effect or instrument that uses CUDA.
 
The CUDA SDK for windows is awesome. It includes some small demos of CUDA implementations such as a real-time mandelbrot generator, particle simulation, stable fluids model, and a bunch of other command-line based tests and such. I ran the demos on an 8800GTS which was sustaining several hundred GLOPS during the demos and tested to about 60 GB/s of internal bandwidth.
There is some extreme power in GPUs that's just waiting to be unlocked.
Damn you! I need one NOW! This may push me over the edge for a new Mac Pro with the 8800GT! :)


This GP GPU sounds like another CPU. I mean, mathematical tasks such as image and sound processing? If they're really interested in another CPU, just add another CPU. It doesn't have to be from NVIDIA. It can be from Intel, no?
I don't really get it. Or is this just like what AltiVec used to be?

Think Copressor. "GPGPU" is just a concept. It refers to a method of programming the shaders (sort of like simple "cores") of a video card to carry out "general-purpose" computationally -intensive calculations, instead of 3d graphics calculations. Due to the highly-parallel nature of 3d graphics processing, the hardware built to calculate it is also very efficient when used on other types of highly-parallel calculations generally seen in the High-performance computing arena (supercomputers). Think of uses such as digital signal processing, digital imaging, Ray-tracing, digital audio and video processing, scientific simulations such as molecular dynamics, computational chemistry, weather modeling, neural networks, etc.

The main article is sort of misleading by making it appear as if a "GPGPU" is only a discrete item seperate from existing graphic cards. Granted, nVidia is now making seperate "GPGPU" cards that are basically an 8800GTX without a DVI port and some other tweaks. My point is that "GPGPU"is just a concept, and can be done on existing high-end Nvidia (and ATI) graphics cards, namely the 8800 series. Originally, people were trying to adapt the shaders in GPUs to process general data using the GPU shading language, which was incredibly difficult. Now both nVidia (with CUDA) and ATI (Close to Metal) offer SDKs for simpler programming of the GPUs in a c-like language.

However, GPGPU won't be replacing your Core 2 Duo anytime soon, as it is not capable of the general tasks your processor does now. It will probably be used as a type of coprocessor on to which specialized applications will off-load their data processing.

So wouldn't my 8800GT technically be capable of running as a GPGPU in my Mac Pro, assuming Appe issues the correct SW update?
In theory Nvidia would just have to release their CUDA SDK for OSX.

Sorry Intel, sounds like the days of x86 instruction set CPU(s) are coming soon to an end. In a few years these babies maybe be providing most of the horse power for general purpose computing.
I would definitely not go that far. GPUs can't do anything other than extremely parallel calculations. You'll still need an x86 for all the general processing tasks.

The only issue I have is that I think the current GF8 series of cards are only FP16 - 16 bit floating point aka single precision. This may not be enough for most apps. It would be great for running test runs, but I know for scientific calcs FP16 isn't sufficient, they need FP32.
Single prec is 32-bit, double is 64. I believe only the new "dedicated" GPGPU cards from Nvidia support double precision CUDA.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.