CUDA (Compute Unified Device Architecture) – GPGPU технология параллельных вычислений, которая реализуется посредством программной составляющей на языке C(Си) и аппаратной, с помощью видеокарт NVidia с исполнительными блоками — Cuda ядрами (начиная с 8ххх серии и чипа G80). Работает как на игровой серии GeForce, так и на профессиональных сериях Tesla, Quadro.
NVidia Tesla применяется в основном, для нужд «не графических вычислений» в биологии, криптографии, математики, а так же для облачных вычислений. NVidia Quadro применяется для визуализации в 3D/2D, а также в обработке фото и видео.
CUDA используется как программная платформа для реализации физического движка PhysX и движка Bullet.
Для Windows и Linux – технология была представлена 15 февраля 2007 года. MacOS стала поддерживаться с версии 2.0 (с 14 февраля 2008).
Главными преимуществами являются:
- · Основан на C (Си) – образном языке, что упрощает изучение архитектуры тем, кто с данным языком знаком.
- · Аппаратная поддержка побитовых и целочисленных операций, а так же целочисленных текстур.
- · Более быстрая скорость обмена между процессором и видеопамятью, в сравнении с обычной оперативной памятью.
- · Общая кэш память (до 48кб), разделяемая и используемая между потоками вычислений, которая гораздо быстрее и может быть использована пользователем в любых целях.
- · Возможность аппаратного использования вычислений с двойной точностью (начиная с G200), но скорость обычно падает в 2 раза. Начиная с серии GTX 4xx (Fermi), благодаря архитектурным улучшениям для вычислений с двойной точностью, падение производительности немного уменьшилось (~1.8 раза).
- · Программная модель CUDA преподается более чем в 300 вузах и университетах по всему миру.
- · Начиная с версии 3.0 – CUDA поддерживает открытый язык вычислений OpenCL.