CUDA
NVIDIA CUDA
Revolutionary GPU Computing
NVIDIA® CUDA™ technology is a fundamentally new computing architecture for the GPU to solve complex computational problems across consumer, business, and technical industries. CUDA (compute unified device architecture) technology gives data-intensive applications access to the tremendous processing power of NVIDIA graphics processing units (GPUs) through a revolutionary computing architecture unleashing entirely new capabilities. Providing orders of magnitude more performance and simplifying software development through the standard C language, CUDA technology enables developers to create solutions for data-intensive processing to produce accurate answers, in less time.
If you are interested in developing with CUDA please join our
registered developer program
to get started.
What is CUDA technology?
GPU computing with CUDA technology is an innovative combination of computing features in next generation NVIDIA GPUs that are accessed through a standard ‘C’ language. Where previous generation GPUs were based on “streaming shader programs”, CUDA programmers use ‘C’ to create programs called threads that are similar to multi-threading programs on traditional CPUs. In contrast to multi-core CPUs, where only a few threads execute at the same time, NVIDIA GPUs featuring CUDA technology process thousands of threads simultaneously enabling a higher capacity of information flow.
One of the most important innovations offered by CUDA technology is the ability for threads on NVIDIA GPUs to cooperate when solving a problem. By enabling threads to communicate, CUDA technology allows applications to operate more efficiently. NVIDIA GPUs featuring CUDA technology have a Parallel Data Cache that saves frequently used information directly on the GPU. Storing information on the GPU allows computing threads to instantly share information rather than wait for data from much slower, off-chip DRAMs. This advance in technology enables users to find the answers to complex computational problems in real-time.
What applications benefit from CUDA?
CUDA GPU computing is suitable for a wide range of applications that process massive amounts of information. For example, game applications take advantage of CUDA technology by leveraging the NVIDIA GPU to run the entire physics computation, letting gamers experience amazing performance and visual effects. In addition, commercial software applications used for product development or large data analysis, previously required a large scale computing system to run applications, can now benefit from using a standard workstation or server enabled with CUDA technology. This breakthrough in technology enables customers to make real-time analysis and decisions from anywhere. In addition, scientific applications which require the most intensive technical computing capability are no longer constrained by compute density; computing with CUDA provides a platform with a higher level of performance from the same space requirements.
Why Use CUDA technology?
Performance. NVIDIA GPUs offer incredible performance for data-intensive applications. CUDA technology provides a standard, widely available solution for delivering new applications with unprecedented capability.
Compatibility. Applications developed with the CUDA C-compiler are compatible with future generation GPUs from NVIDIA. Developers investing in GPU computing will immediately benefit from the performance of current GPUs and be confident in NVIDIA’s future investment in high performance technology for GPU computing.
Productivity. Developers wanting to tap into the NVIDIA GPU computing power can now use the industry standard “C” language for software development. CUDA provides a complete development solution that integrates CPU and GPU software to enable developers to quickly provide new features and greater value for their customers.
Scalability. Applications developed with CUDA technology scale in performance and features across the full line of NVIDIA GPUs from embedded form factors to high performance professional graphics solutions using multiple GPUs. The power of CUDA performance is now available in virtually any class system from large, computing installations to consumer products.
Developing with CUDA
The CUDA software development kit (SDK) is a complete software development solution for programming CUDA-enabled GPUs. The SDK includes standard FFT and BLAS libraries, a C-compiler for the NVIDIA GPU and a runtime driver. The CUDA runtime driver is separate standalone driver that interoperates with OpenGL and Microsoft® DirectX® drivers from NVIDIA. CUDA technology is equally supported on both the Linux and Microsoft® Windows® XP operating systems.
Technology Features
• Unified hardware and software solution for thread computing on CUDA-enabled NVIDIA GPUs
• CUDA-enabled GPUs support the Parallel Data Cache and Thread Execution Manager for high performance computing
• Standard C programming language enabled on a GPU
• Standard numerical libraries for FFT and BLAS
• Dedicated CUDA driver for computing
• Optimized upload and download path from the CPU to CUDA-enabled GPU
• CUDA driver interoperates with graphics drivers
• Supports Linux and Windows XP operating systems
• Scales from high performance professional graphics solutions to mobile and embedded GPUs
• Native multi-GPU support for high density computing
• Supports hardware debugging and profiler for program development and optimization
If you are interested in developing with CUDA please join our registered developer program to get started.