Nvidia has released a Mac OS X version of its CUDA programming tools. Nvidia's CUDA tools help developers utilize the GPUs on newer Nvidia graphics hardware as parallel processing engines.
CUDA, or Compute Unified Device Architecture, lets programmers utilize a dedicated driver written using C language subroutines to offload data processing to the graphics processing hardware found on Nvidia's late-model GeForce graphics hardware. The software lets programmers use the cards to process data other than just graphics, without having to learn OpenGL or how to talk with the card specifically.
Supported hardware includes the GeForce 8800GT and Quadro graphics cards that are available as configure-to-order options on the Mac Pro and the new GeForce 8600M graphics chip found in Apple's recently refreshed MacBook Pro. The technology is specific to Nvidia graphics systems and doesn't work either with the ATI or Intel integrated graphics hardware found on other Mac models.
While adding support for CUDA into an application is a relatively simple process, Andy Keane, general manager of Nvidia's GPU computing business, explained that how CUDA tools can actually assist the application becomes, as he put it, "more of a computer science problem."
CUDA is not a magic bullet that will suddenly make all software on an Nvidia-equipped Mac run dramatically faster, in other words -- the programmer needs to figure out where the program can be optimized to process data in parallel. But within that context, programming support for CUDA can make a big difference, he said.
Since CUDA tools first emerged in late 2006, Nvidia's seen them used in everything from consumer software to industrial products, and the applications are limitless, according to Keane.
"Transcoding video is a good example," said Keane. Transcoding high-definition video from one format to another is an extremely processor-intensive task, and it's one that scales very well when you can distribute it to multiple processors. With 128 processors on an Nvidia GPU working in tandem, that task can be sped up by orders of magnitude rather than forcing the CPU, even a multiple core CPU, to handle it alone.
Nvidia has also seen the CUDA technology used in financial markets, biotechnology, industrial markets and astrophysics -- basically, anywhere the principals of parallel computing can be applied.
CUDA tools are available for download from Nvidia's Web site for free, and are listed as beta versions. The toolkit and the Software Development Kit (SDK) are both vetted for use with Mac OS X v10.5.2.