What it is and the problem it solves
CUDA is a proprietary parallel computing platform that solves the problem of general-purpose computation on GPUs. Before CUDA, GPUs could only be programmed via graphics APIs like OpenGL or DirectX, limiting their use to rendering tasks.
How it works
CUDA exposes GPU parallelism through two APIs: a low-level Driver API and a higher-level Runtime API. It manages data movement between CPU and GPU memory, enabling direct access to both. It is written in C but integrates with C++, Fortran, Python, and Julia.
What works
CUDA enables developers to write kernels in familiar languages and launch them on Nvidia GPUs from the G8x series onward—including GeForce, Quadro, and Tesla. It interoperates with OpenMP, OpenACC, and OpenCL on CUDA-powered hardware.
What does not
CUDA does not run on non-Nvidia GPUs. It does not abstract away GPU architecture differences across generations. It does not provide portability to OpenCL or OpenMP implementations—interop is one-way support, not equivalence.
What it changes
CUDA redefines the GPU from a fixed-function graphics co-processor into a programmable compute device. It establishes Nvidia’s dominance in accelerated computing by creating a proprietary, high-friction, high-reward development stack.
Is it worth your time
Yes—if you are developing compute-intensive software on Nvidia hardware and need fine-grained control over GPU execution. It demands learning GPU memory models and thread hierarchies, and locks you into Nvidia’s ecosystem.