Phát triển bởi | Tập đoàn NVIDIA |
---|---|
Phiên bản ổn định | 3.2
/ 17 tháng 9 năm 2010 |
Hệ điều hành | Windows 7, Windows Vista, Windows XP, Windows Server 2008, Windows Server 2003, Linux, Mac OS X |
Thể loại | GPGPU |
Giấy phép | Proprietary, Freeware |
Website | Nvidia's CUDA zone |
CUDA (Compute Unified Device Architecture - Kiến trúc Đơn vị Tính Toán Thống Nhất) là một kiến trúc tính toán đồng thời do NVIDIA phát triển. Tóm lại, CUDA là nền tảng tính toán trên các GPU của NVIDIA, sử dụng ngôn ngữ lập trình phổ biến như C for CUDA và trình biên dịch PathScale Open64 C để triển khai các thuật toán trên GPU.
CUDA cho phép các nhà phát triển truy cập vào tập các lệnh ảo và bộ nhớ của các phần tử tính toán đồng thời trong đơn vị xử lý đồ họa CUDA (CUDA GPU). Sử dụng CUDA, các GPU mới nhất của NVIDIA có thể dễ dàng thực hiện các tính toán tương tự như CPU. Tuy nhiên, khác với CPU, GPU có kiến trúc đồng thời trên toàn bộ giúp tập trung vào khả năng thực thi đa luồng dữ liệu chậm hơn thay vì thực thi nhanh một luồng dữ liệu.
Trong ngành công nghiệp trò chơi trên máy tính, GPU không chỉ thực hiện nhiệm vụ làm mượt hình ảnh mà còn tính toán các hiệu ứng vật lý như mảnh vụn, khói, lửa, dòng chảy... Các phần mềm xử lý vật lý trên GPU như PhysX và Bullet là ví dụ điển hình. CUDA cũng được sử dụng để gia tốc các ứng dụng ngoài lĩnh vực đồ họa như tính toán sinh học, xử lý dữ liệu lớn cùng với CPU, trong mật mã học và nhiều lĩnh vực khác. Một ví dụ là hạ tầng tính toán phân tán BOINC.
CUDA cung cấp cả giao diện ứng dụng (API) ở cấp độ thấp và cao. SDK CUDA đầu tiên ra mắt vào ngày 15 tháng 2 năm 2007, hỗ trợ cả Windows và Linux. Phiên bản 2.0 hỗ trợ Mac OS X, thay thế cho bản beta từ ngày 14 tháng 2 năm 2008. CUDA có trên mọi GPU NVIDIA từ dòng G8X trở đi, bao gồm GeForce, Quadro và Tesla. NVIDIA cam kết các chương trình phát triển cho dòng GeForce 8 sẽ tiếp tục hoạt động trên tất cả video card của họ trong tương lai, nhờ vào tính tương thích nhị phân.
1. Sao chép dữ liệu từ bộ nhớ chính vào bộ nhớ GPU
2. CPU chỉ đạo xử lý tại GPU
3. GPU thực thi đồng thời trên mỗi nhân
4. Sao chép kết quả từ bộ nhớ GPU về bộ nhớ chính.