ЛАБОРАТОРНЫЙ ПРАКТИКУМ ПО ИЗУЧЕНИЮ КВАНТОВО

advertisement
К.Ю. МАСЛЕННИКОВ
Научный руководитель – А.А. ДЮМИН, старший преподаватель
Московский инженерно-физический институт (государственный университет)
ПЕРЕНОС КРОССПЛАТФОРМЕННЫХ РЕШЕНИЙ ДЛЯ
ОБРАБОТКИ ИЗОБРАЖЕНИЙ НА ГЕТЕРОГЕННЫЕ
ВЫЧИСЛИТЕЛЬНЫЕ ПЛАТФОРМЫ
В рамках работы было проведено исследование параллельных реализаций алгоритмов фильтрации и корреляции на различных архитектурных конфигурациях
графических ускорителей, поддерживающих технологию NVIDIA CUDA. Приводятся оценки эффективности использования гетерогенных вычислительных платформ для задач обработки изображений.
Архитектурные решения, которые на сегодняшний день применяются
для вычислительных задач, связанных с параллельной векторной обработкой изображений в 3D-графике, кардинально отличаются от универсальных вычислительных архитектур. Работы по использования GPU для
неграфических вычислений успешно ведутся двумя крупнейшими производителями графических ускорителей NVIDIA и AMD, в ходе чего родились две различные платформы: CUDA (Compute Unified Device
Architecture) у компании NVIDIA и CTM (Close To Metal или AMD Stream
Computing) у компании AMD. Компания Intel также выпустила первые
образцы ядер параллельной архитектуры общего назначения на основе
своей модифицированной архитектуры х86, получившей название
Larrabee.
Технологии от NVIDIA и AMD позволили в задачах, использующих
вычислительные ресурсы GPU, уйти от прямого доступа к аппаратным
ресурсам графических ускорителей и дали возможность использовать архитектуру видеокарт максимально гибко и универсально. Решение построить технологию CUDA на базе [1] расширенного языка программирования C дало возможность переносить и оптимизировать программный
код со стандартного языка С. Технология CTM от компании AMD по сути своей представляет виртуальную машину, которая исполняет на графических ядрах ассемблерный код программы разработчика. Обе платформы
решили некоторые критические проблемы, накладывающие ограничения
на применение более ранних моделей GPGPU в задачах параллельной
обработки данных, такие как, необходимость использования классического графического конвейера и интерфейсов Direct3D или OpenGL.
В качестве объектов исследования были выбраны алгоритмы распознавания образов, т.к. графические изображения являются одним из тех
видов данных, при обработке которых предъявляются высокие требования к аппаратному обеспечению вычислительных систем и, следовательно, целесообразно использовать возможности GPU для параллельной обработки.
Использование технологии NVIDIA CUDA наглядно демонстрирует
эффективность параллельных [2] реализаций алгоритмов фильтрации и
корреляции для обработки изображений, причем в ряде случаев достигается существенное преимущество по сравнению с использованием в подобных задачах универсальных процессоров. Например, на двух графических ускорителях NVIDIA GeForce 8800 GTX в режиме Single и режиме
SLI были получены результаты использования параллельных реализаций
алгоритмов обработки изображений. Последовательная реализация данных алгоритмов на CPU Intel Core 2 Quad Q6600 показала падение скорости обработки до двух порядков. Таким образом, становится видна разница в архитектурных решениях GPU и CPU. Поскольку, ядра CPU изначально спроектированы и оптимизированы так, чтобы вести обработку
одного потока последовательных команд с максимальной производительностью, а GPU проектируются для быстрого исполнения большого числа
параллельно выполняемых потоков команд. Организация доступа к памяти также играет принципиальную роль – в CPU доступ к памяти произвольный, а в GPU каждый поток имеет свою область локальной памяти.
В ходе работы была разработана методика исследования реализаций
параллельных алгоритмов обработки изображений с использованием технологии NVIDIA CUDA. На основе полученных результатов можно сделать выводы о высоком потенциале по переносу схожих задач параллельной обработки, таких как архивирование, шифрования/дешифрования,
обработка данных физических экспериментов и т.д. С появлением
NVIDIA CUDA SDK v2.0 аналогичные задачи стали доступны для решения не только в ОС Windows, но и многих версиях Linux, а также Mac OS
X, тем самым алгоритмы, реализованные на CUDA, стали обладать свойством кроссплатформенности. А с выходом первой версии CUDA.NET
этот потенциал стал доступен для всех приложений, использующих платформу .NET.
Список литературы
1.
2.
CUDA (Compute Unified Device Architecture) Programming Guide v2.0. Sep 16, 2008
Tom Halfhill. Parllel Processing With CUDA. Microprocessor Report. Jan 28, 2008
Related documents
Download