Without any doubt, NVIDIA Corporation is [currently] the market leader of GPGPU installed user base. The investment company makes in GPGPU [or GPU Computing, as Jen-Hsun likes to correct us :)] is much more than a marketing effort – the company now has more software than hardware engineers, creating a widespread GPGPU ecosystem which includes independent developers, large institutions, universities and many more.
Unfortunately, it is quite difficult to market the efforts the company makes – for instance, we often criticize nVidia for not being clear enough for explaining what CUDA actually is. There seems to be confusion in perception, but we’ll just leave nVidia to think of that one. In essence, CUDA is a marketing name for their overall GPGPU effort and their proprietary C/C++ extensions for GPU acceleration. Personally, I liked “Cg” or “C for Graphics” moniker more than CUDA [for the C/C++ instructions part].
With the release of CUDA Toolkit 3.0, nVidia is planning to finally clear the air and firm its leadership in the field, which is not going to be an easy task. AMD woke up and is heavily investing into its OpenCL development, while Intel is dismissing CUDA and plans to capture the world with the new architecture that carries the same name as the failed one – Larrabee. The only problem for that strategy is that nVidia now has a chip that could emulate x86 with minimal effort within a product refresh timeframe, if the company had license for it.
We spoke with Sanford Russell, General Manager for GPU Computing who told us that CUDA Toolkit 3.0 is the cornerstone of their GPGPU strategy for the next 12 months. According to Sanford, CUDA Toolkit took off in unprecedented way – v2.3 was released in July 2009 and grew to the current status of 160,000 downloads. Unlike the previous versions of CUDA Toolkit which peaked at 80-100,000 downloads, the interest for v2.3 exploded.
With CUDA Toolkit 3.0, the company is introducing full support for the upcoming 64-bit Fermi architecture chips for both consumer and commercial space, spanning from future ION chips to Quadro and Tesla parts.
CUDA Toolkit 3.0 features full C++ Functionality, both C++ Class Inheritance and Template Inheritance, Dual DMA support, Concurrent Kernel Execution, as well as hardware debuggers.
Most complete OpenCL support?
When discussing the hot topic of OpenCL, Sanford criticized the competition for talking about OpenCL while according to feature set, nVidia has more complete OpenCL support, especially in regards to support for double-precision, OpenGL Sharing [feature that ATI Developer SDK doesn’t have to this date] and nVidia’s own Compute Capability and Compiler Flags. With CUDA Toolkit 3.0, nVidia’s OpenCL ICD now features two missing features that ATI supported since last month [Local Atomics Base and Extender], while adding a sea of additional features such as Pragma Unroll and DirectX 9 [D3D9], DirectX 10 [D3D10] and DirectX 11 [D3D11] Sharing extensions. Even though the world has yet to see an OpenCL application that makes any market impact, it looks like nVidia has raised the bar again. AMD’s yet unannounced reorganization should help AMD to become more competitive in this field. From the other side, Intel currently isn’t competing at all.
The King of GPGPU Development? NEXUS becomes Parallel nSight
Debugging of GPU applications used to be PITA, given that there were no possibilities to “freeze the code” in the same manner as developers can do with CPU-executed code. In a nutshell, GPU was always hard to code for given that you actually had to play it safe. This is also one of reasons why developers didn’t really push the envelope in development of their applications. We spoke with several AAA developers about the improvements brought forth by CUDA Toolkit 3.0 and Fermi architecture itself and there is a general feeling of approval for the debugging aspect of the GPU.
On GTC 2009, nVidia introduced NEXUS, an IDE environment for Visual Studio 2008. We saw the presentation and workshop at GTC and it looked quite promising. In January, during the GF100 Deep Dive sessions, we saw the progress made in NEXUS Development and now, codename is out of the picture as nVidia renamed it into Parallel Nsight. Parallel Nsight enables you to do complete debugging of your 3D or GPGPU application, including freezing the code and debugging on-the-fly.
In my personal opinion, it is hard to figure out why products that have such good codenames receive sterile official names, but it is how it is. Why Nsight alone wasn’t sufficient or clear enough, we’ll never know. In that perspective, nVidia needs to learn a thing or two but to person who decided on a name – Keep it Simple, Salesman Keep it Simple, Salesman [or Stupid, depending on what angle you want to take].
Just like PerfHUD created a major evolution in the world of gaming development, nVidia is pinning its hopes on CUDA Visual Profiler [Windows, Mac OSX, Linux] and OpenCL Visual Profiler for Windows and Mac OS X. CUDA 3.0 also includes the latest version of cuda-gdb, GPGPU debugging tool integrated into GDB environment on 32-bit and 64-bit versions of Linux operating system.
All in all, CUDA Toolkit 3.0 looks like a very comprehensive suite for development of GPU-accelerated applications. We’ll see how the competition will react to this resourceful toolkit.
Original Author: Theo Valich
Webmaster’s note: This news article is part of our Archive, if you are looking for up-to date articles we would recommend a visit to our technology news section on the frontpage. Additionally, we take great pride in our Home Office section, as well as our VPN Reviews, so be sure to check them out as well.