CUDA là từ viết tắt trong tiếng Anh của thuật ngữ Compute Unified Device Architecture, tạm dịch là kiến trúc thiết bị hợp nhất cho tính toán. CUDA bắt đầu xuất hiện từ tháng 11 năm 2006 với vai trò ban đầu là một bộ công cụ phát triển phần mềm dựa trên ngôn ngữ lập trình C, và giờ đây cuối năm 2010, sau bốn năm phát triển, CUDA đang tiến hóa thành kiến trúc điện toán GPU, hay còn gọi là GPGPU, của NVIDIA. CUDA có mặt trên hầu hết các GPU đời mới của NVIDIA, từ dòng GeForce giành cho giải trí, đến Quadro giành cho điện toán hình ảnh chuyên nghiệp, ví dụ nhƣ trong thiết kế và sáng tạo, và mới nhất là dòng Tesla cho tính toán hiệu năng cao.
Hình dƣới đây cho chúng ta thấy bức tranh toàn cảnh về điện toán GPU xét trên khía cạnh phần mềm từ quan điểm và công nghệ của NVIDIA. Trong hình này, ở lớp thấp nhất của kiến trúc phần mềm giành cho điện toán GPU, chúng ta có các GPU của NVIDIA đƣợc trang bị kiến trúc tính toán song song CUDA, bao gồm cả trình điều khiển thiết bị CUDA vốn đƣợc nhúng bên trong trình điều khiển thiết bị đồ họa do NVIDIA cung cấp.
Hình 10: Điện toán GPU được tăng cường bởi kiến trúc CUDA
Trình điều khiển thiết bị CUDA này giữ nhiệm vụ chuyển đổi mã PTX (viết tắt của thuật ngữ Parallel Thread Execution, tạm dịch là mã thực thi luồng song song) đƣợc sinh ra bởi các trình biên dịch của từng ngôn ngữ lập trình – ví dụ nhƣ C/C++, Fortran, Java, Python, v.v… – sang dạng mã máy thật sự của GPU đƣợc dùng để thực thi ứng dụng. Nhờ cách tiếp cận thống nhất này cho mọi ngôn ngữ lập trình mà các nhà phát triển phần mềm chỉ cần sử dụng ngôn ngữ lập trình quen thuộc với mình để tạo ra các ứng dụng mới chạy đƣợc trên GPU. Lớp thứ hai kể từ dƣới lên trong Hình 10 cho chúng ta thấy một số ngôn ngữ lập trình nhƣ C/C++, Fortran, Java, Python,… và giao diện lập trình nhƣ OpenCL, Direct Compute, .NET,… mà hiện tại lập trình viên có thể dùng để tạo ra phần mềm.