Ответ 1
CUDA объединяет несколько вещей:
- Массивно параллельное оборудование, предназначенное для запуска общего (неграфического) кода с соответствующими драйверами для этого.
- Язык программирования, основанный на C для программирования указанного аппаратного обеспечения, и язык ассемблера, который могут использовать другие языки программирования в качестве цели.
- Набор для разработки программного обеспечения, включающий библиотеки, различные инструменты для отладки, профилирования и компиляции и привязки, которые позволяют языкам программирования на стороне процессора вызывать код на основе графического интерфейса.
Точкой CUDA является запись кода, который может работать на совместимых массивных параллельных архитектурах SIMD: это включает в себя несколько типов графических процессоров, а также не-графическое оборудование, такое как nVidia Tesla. Массивно параллельное оборудование может выполнять значительно большее количество операций в секунду, чем процессор, при достаточно схожих финансовых затратах, что дает повышение производительности в 50 раз; или более в ситуациях, которые позволяют.
Одним из преимуществ CUDA над более ранними методами является наличие языка общего назначения, а не использование пиксельных и вершинных шейдеров для эмуляции компьютеров общего назначения. Этот язык основан на C с несколькими дополнительными ключевыми словами и концепциями, что делает его довольно простым для программистов, не являющихся GPU.
Это также признак того, что nVidia готова поддерживать универсальное распараллеливание на своем оборудовании: теперь это звучит не так, как "взлом с графическим процессором" и больше похоже на "использование поддерживаемой вендорами технологии", и это делает его принятие легче в присутствии нетехнических заинтересованных сторон.
Чтобы начать использовать CUDA, загрузите SDK, прочитайте руководство (серьезно, это не так сложно, если вы уже знаете C) и купите CUDA-совместимое оборудование (сначала вы можете использовать эмулятор, но производительность является конечной точкой это, лучше, если вы действительно можете попробовать свой код)