Методы технологии CUDA обработки цифровых изображений на графических процессорах
Введение
В наши дни использование и обработка изображений и различных сигналов требуются во многих сферах деятельности человека. Различные системы наблюдения и мониторинга, техническое зрение, различные автономные системы, которые принимают решения, основываясь на анализе поступающей видеоинформации и так далее. С повышением уровня развития техники важную роль играют методы и технологии обработки видеоинформации. С их помощью обеспечивается общее улучшение качества изображений для более легкого визуального восприятия человеком, распознавания зрительных образов и объектов и их интерпритации для дальнейшего использования автономными системами. Одним из самых распространенных применений данных методов является их использование в системах, работающих в режиме реального времени. Например, дорожно-транспортные системы наблюдений, общие городские системы видеонаблюдения за гражданами и так далее. Поэтому, очевидным образом возникает вопрос об улучшении быстродействия этих методов. Существует множество приемов для повышения скорости работы программ и алгоритмов. Самым эффективным среди всех является использование технологии GPGPU (General-purpose graphics processing units или «GPU общего назначения»). Технология была предложена компанией NVIDIA в качестве инструмента для параллельных вычислений. В настоящее время она рассматривается как эффективное средство разработки приложений для решения различных научно-исследовательских задач. Одна из реализаций GPGPU представлена технологией CUDA и библиотекой CUDAfy. CUDA (Compute Unified Device Architecture) - архитектура и программная модель для реализации параллельных вычислений, позволяющая проводить расчеты с помощью GPU NVIDIA со значительным увеличением скорости.
Содержание
Введение 3
Обзор литературы 4
Глава 1. GPU. Технология CUDA/CUDAfy 6
1.1. Основные понятия. Запуск программы на графических процессорах 6
1.2. Архитектура технологии CUDA. Библиотека CUDAfy.NET. . 8
1.2. Устройство памяти в CUDA. . . . . . . . . . . . . . . . . . . . 11
1.4. Преимущества и ограничения CUDA . . . . . . . . . . . . . . 13
Глава 2. Методы улучшения изображения 17
2.1. Степенные преобразования . . . . . . . . . . . . . . . . . . . . 17
2.2. Модель процесса искажения/восстановления изображения. Медианный фильтр . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3. Программная реализация и результаты. . . . . . . . . . . . . 23
Список литературы не найден
Главные преимущества CUDA по сравнению с прошлыми методами GPGPU следуют из того, что архитектура спроектирована для эффективности использования неграфических вычислений на GPU и применяет язык программирования C, при этом не требуя переноса алгоритмов в удобный вид для концепции графического конвейера. CUDA предлагает совершенно новый способ вычислений на GPU,который не использует графические API и предлагающий произвольный доступ к памяти. Она лишена недостатков GPGPU, использует все исполнительные блоки и расширяет возможности благодаря целочисленной математики и операциям битового сдвига. Также CUDA привносит некоторые аппаратные возможности, которые недоступны из графических API. А именно использование разделяемой памяти. Это память маленького объёма (16 килобайт на мультипроцессор), доступ к которой имеют все блоки потоков. С ее помощью можно кэшировать наиболее используемые данные и обеспечивать при этом высокую скорость, что снижает восприимчивость к пропускной способности параллельных алгоритмов. Это особенно полезно для решения задач линейной алгебры, быстрого преобразования Фурье и фильтров обработки изображений.