Generated by DeepSeek V3.2| CUDA | |
|---|---|
| Name | CUDA |
| Developer | NVIDIA |
| Released | 2007 |
| Operating system | Windows, Linux, macOS |
| Genre | Parallel computing, GPGPU |
| License | Proprietary |
CUDA. It is a parallel computing platform and application programming interface model created by NVIDIA. The technology allows software developers and software engineers to use a GPU for general purpose processing, an approach known as GPGPU. This paradigm shift enables dramatic increases in computational performance by harnessing the massively parallel architecture of modern graphics processors for a wide array of tasks beyond traditional rendering.
The platform provides a direct pathway for computational kernels to execute on the NVIDIA GPU's many processor cores. This model is distinct from earlier graphics-based GPGPU approaches that required mapping problems to graphics APIs like OpenGL or DirectX. By giving programmers direct access to the instruction set and memory of the parallel computational elements, it facilitates a more intuitive and powerful development environment for scientific and analytical applications. Its introduction marked a significant evolution in the field of Parallel computing.
The architecture is built upon a scalable array of multithreaded Streaming Multiprocessors. Each SM contains multiple scalar processor cores, shared memory, and cache resources. This hierarchy is designed to execute thousands of concurrent threads efficiently, managed by a hardware scheduler. Key memory spaces include global, constant, and texture memory, each with distinct performance characteristics and use cases. The design closely aligns with the SIMT execution model, enabling single instructions to operate on multiple data threads.
The programming model exposes the GPU as a device capable of executing a high number of threads in parallel. Programmers structure their code into kernels that are launched from a host CPU. The model organizes threads into a hierarchy of blocks and grids, allowing for natural decomposition of data-parallel problems. Extensions to standard programming languages are provided, most notably C++, via the NVCC compiler toolchain. Other supported languages include Fortran and Python through libraries and wrappers.
Applications span a vast range of scientific and commercial fields. It is extensively used in CFD simulations, Molecular dynamics, and Quantum chemistry calculations within research institutions like Lawrence Livermore National Laboratory. In Artificial intelligence, it underpins the training of deep neural networks in frameworks such as TensorFlow and PyTorch. Further uses include Computational finance for risk modeling, Medical imaging reconstruction, and Seismic analysis in the energy sector. The Folding@home project leverages it for disease research.
The software ecosystem includes a comprehensive toolkit featuring compilers, debuggers like Nsight, and performance analysis tools. Key libraries accelerate domain-specific functions, such as cuBLAS for linear algebra, cuFFT for Fourier transforms, and cuDNN for deep neural networks. These libraries are integrated into higher-level frameworks including the MATLAB Parallel Computing Toolbox and the OpenCV library for computer vision. Support is also provided for industry-standard APIs like OpenCL and OpenACC for directive-based parallel programming.
Development began under researchers at NVIDIA, with significant early contributions from Ian Buck. It was first publicly announced in 2006 and formally launched in 2007 alongside the G80 architecture found in the GeForce 8800 GTX. Subsequent generations, named after pioneering scientists like Tesla, Fermi, and Hopper, have continually expanded capabilities, adding features like ECC memory and hardware support for PCI Express. Its evolution has been closely tied to advancements in fields like Machine learning, cementing NVIDIA's role in the AI accelerator market. Category:Parallel computing Category:NVIDIA Category:Application programming interfaces