NVIDIA CUDA - Революция в вычислениях на GPU
Технология NVIDIA CUDA - это фундаментально новая архитектура вычислений на GPU, предназначенная для решения комплекса вычислительных задач потребителей, бизнеса и технической индустрии. Технология CUDA (compute unified device architecture - вычисления на унифицированной аппаратной архитектуре) предоставляет приложениям, активно работающим с данными, доступ к потрясающим процессинговым мощностям графических процессоров NVIDIA через революционную вычислительную архитектуру, связанную с новыми возможностями. Придавая значение большей производительности и упрощению разработки программного обеспечения через стандартный язык C, технология CUDA даёт возможность разработчикам создавать решения для интенсивной работы с данными в кратчайшие сроки.
Что это за технология "CUDA"?
Вычисления на GPU с технологией CUDA - это инновационное сочетание вычислительных способностей следующего поколения графических процессоров NVIDIA, доступныз через стандартный язык 'C'. Тогда как предыдущее поколение графических процессоров было основано на "потоковых шейдерных программах", программисты CUDA могут испльзовать 'C' для создания программ, вызывающих потоки также, как и на традиционных многопоточных CPU (Блин, традиционных. _Ни у кого_ из моих знакомых нет двуядерника. Да даже Пня4 с гипер-трейдингом.). Но многоядерные процессоры могут исполнять лишь несколько потоков одновременно, а графические процессоры NVIDIA с технологией CUDA обработают сразу тысячи потоков с высоким уровнем информационной нагрузки. (Блин. Вот у "них" есть thread и flow. А как я должен назвать "поток", чтобы не повториться?)
Одна из наиболее важных инноваций в технологии CUDA - возможность объединения потоков графических процессоров NVIDIA для решения одной задачи, что позволяет приложениям работать с большей эффективностью. Графические процессоры NVIDIA с технологией CUDA имеют параллельные кэши данных, которых сохраняют часто используемую информацию прямо в GPU. Хранение информации в GPU позволяет исполнять потоки, использующие общую информацию, во много раз быстрее, чем если бы она запрашивалась из системной памяти. Эта прогрессивная технология даёт возможность пользователям решать вычислительные задачи в режиме реального времени.
Какие преимущества получают приложения от CUDA?
Вычисления на GPU подходят для решения широкого спектра задач, связанных с обработкой больших объёмов информации. Например игровые приложения могут использовать графический процессор NVIDIA для физических расчётов, поднимающих производительность и эффектность на новый уровень. Также, коммерческие приложения, используемые для разработки программ или анализа больших массивов данных, ранее требовавших высокой производительности системы, получат преимущество от использования на рабочей станции или сервере с технологией CUDA. Это перелом в технологиях, позволяющий выполнять анализ и решение задач любого рода в режиме реального времени. Кроме того, научные приложения, которые требуют высокой интенсивности вычислений больше не будут занимать всё процессорное время. Вычисления с CUDA предоставляет платформу с высоким уровнем производительности вне зависимости от предполагаемого использования.
Почему используется технология CUDA?
Производительность. Графические процессоры NVIDIA предоставляют немыслимый уровень производительности для приложений, интенсивно работающих с данными. Технология CUDA предоставляет стандартное, широко доступное решение для поставки новых приложений с беспрецендентными возможностями.
Совместимость. Приложения, разработанные с использованием CUDA C-компилята совместимы с будующим поколением графических процессоров NVIDIA (лучше бы они предыдущее добавили). Разработчики, вкладывающие силы в разработку приложений для GPU, сразу получат преимущество от использования производительных графических процессоров текущего поколения и могут быть уверены, что NVIDIA в будущем будет вкладывать средства в разработку ещё более производительных решений.
Продуктивность. Разработчики, ищущие доступ к вычислительной мощи графических процессоров NVIDIA могут теперь пользоваться стандартным языком программирования 'C' для разработки приложений. CUDA предоставляет законченное решение для разработчиков, которое интегрируется в программное обеспечение для CPU и GPU, чтобы быстро получить доступ к новым возможностям и высокой оценке потребителей (возможно, они имели ввиду что-то другое. но получилось так).
Масштабируемость. Приложения, разработанные с использованием технологии CUDA масштабируются в производительности и возможностях по всей линейке графических процессоров NVIDIA, начиная от интегрированных решений и заканчивая высокопроизводительными профессиональными графическими картами, использующими множество графических процессоров. Производительность CUDA теперь фактически доступна в системах любого уровня от специальных вычислительных станций до потребительских продуктов.
Разрабатывайте с CUDA
Комплект разработки программного обеспечения CUDA (CUDA SDK) - это законченное решение для разработчиков, использующих возможности графических процессоров для решения задач общего назначения. SDK включает стандартные библиотеки FFT и BLAS (я не в курсе об этом), компилятор C для графического процессора NVIDIA и runtime-драйвер. CUDA runtime-драйвер работающий совместно с самостоятельным драйвером, решающим задачи распределения нагрузки OpenGL и MS DirectX. Технология CUDA в равной степени поддерживается операционными системами MS Windows XP (ага! виста не поддерживается) и Linux.
Возможности технологии
- Унификация программных и аппаратных решений для потоковых вычислений на графических процессорах NVIDIA с поддержкой CUDA.
- Графические процессоры с CUDA поддерживают кэш параллельных данных (Parallel Data Cache) и менеджер исполняемых потоков (Thread Execution Manager) для высокопроизводительных вычислений.
- Стандартный язык программирования C для GPU.
- Стандартные числовые библиотеки для FFT и BLAS.
- Отдельный драйвер CUDА для вычислений.
- Оптимизированный путь загрузки и выгрузки с CPU на GPU с CUDA.
- CUDA-драйвер, работающий совместно с графическим драйвером.
- Поддержка Linux и WinXP
- Масштабируемость от высокопроизводительных профессиональных графических решений до мабильных и интегрированных GPU.
- Встроенная поддержка multi-GPU для высоко"плотных" вычислений.
- Поддержка аппаратной отладки и профилер для разработки и оптимизации программ.
Источник: people.overclockers