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