The demand for real-time and high-definition 3D graphics has driven the Graphic Processor Unit (GPU) to evolve into a highly parallel, many-core processor with tremendous computing power and ultra high memory bandwidth. If the applications are able to utilize the power of GPU, the huge speedup improvement is expected. GPU was traditionally used in graphics rendering, but in recent years, a technique named GPGPU (General Purpose computing on GPU) has been developed. At the beginning, the developers have to port their general purpose code to the OpenGL style code since GPU is unlike CPU which is born for general purpose computing. GPU only knows the graphic commands. In November, 2006, NVIDIA announced CUDA, a parallel computing architecture. In June, 2007, NVIDIA also released C for CUDA 1.0, which is a C language developing tool for general purpose computing on GPU. CUDA soon became a popular tool in academia till now because of its easy-to-code feature. The management of GPU resources is automatically controlled by CUDA runtime library. Therefore, developers can focus on their computing algorithms on GPU. But CUDA only runs on NVIDIA GPUs rather than ATI GPUs. In December, 2008, OpenCL (Open Computing Language) is announced and supported by both NVIDIA and ATI GPUs. Currently CUDA is more mature and popular than OpenCL, which is the reason Moldex3D now supports CUDA rather than OpenCL for acceleration.
NVIDIA CUDA Technology
CUDA (Compute Unified Device Architecture) is a parallel computing architecture developed by NVIDIA. Application developers use “C for CUDA” to implement algorithms for running on GPU. Using CUDA, NVIDIA GPUs become a computing resource like CPUs. Unlike CPUs, GPUs have a parallel throughput architecture that emphasizes running many concurrent threads slowly, rather than running a single thread very quickly. The approach to solve general purpose problems on GPUs is known as GPGPU.
CUDA works with all NVIDIA GPUs from the G8x series, including Geforce, Quadro and the Tesla line. CUDA is compatible with most standard operating systems like Windows and Linux. NVIDIA states that applications developed for the G8x series will also work without modification on all future NVIDIA video cards, due to binary compatibility.