Аспекты реализации параллельных алгоритмов
|
Введение 3
1. Теоретические аспекты использования GPU в массивно-параллельной архитектуре 5
1.1 Массивно-параллельная архитектура 5
1.2 Архитектура GPU и ее использование в массивно-параллельной
архитектуре 7
1.3 Архитектура GPU в сравнении с CPU 14
1.4 NVidia CUDA и ее применение 17
1.5 Архитектура CUDA 18
1.6 Типы памяти в CUDA 22
1.7 OpenGl и ее взаимосвязь с CUDA 28
2. Программирование CUDA 30
3. Реализация алгоритма синусоиды 32
4. Описание функций для создания синусоиды 33
5. Полученные результаты 41
Заключение 44
Список использованной литературы 46
Приложение А
1. Теоретические аспекты использования GPU в массивно-параллельной архитектуре 5
1.1 Массивно-параллельная архитектура 5
1.2 Архитектура GPU и ее использование в массивно-параллельной
архитектуре 7
1.3 Архитектура GPU в сравнении с CPU 14
1.4 NVidia CUDA и ее применение 17
1.5 Архитектура CUDA 18
1.6 Типы памяти в CUDA 22
1.7 OpenGl и ее взаимосвязь с CUDA 28
2. Программирование CUDA 30
3. Реализация алгоритма синусоиды 32
4. Описание функций для создания синусоиды 33
5. Полученные результаты 41
Заключение 44
Список использованной литературы 46
Приложение А
В настоящее время среди наиболее актуальных тем для исследования выделяются параллельные вычисления. Практически во всех ведущих IT- компаниях уже давно были созданы подразделения, отвечающие за проектирование и разработку высокопроизводительных систем на основе параллельной обработки данных. Такому пристальному вниманию параллельные вычисления обязаны стремительному росту обрабатываемых объемов данных. Спектр задач, решение которых можно получить при помощи параллельных вычислений, довольно широк. В него входит симуляция физических процессов, анализ и обработка изображения, задачи прогнозирования, анализ данных, финансовые и электромагнитные расчеты и многое другое. Некоторые из задач могут быть решены с использованием распределенных облачных вычислений, другие же могут быть решены за приемлемое время только лишь, будучи запущенными на суперкомпьютере с заявленной производительностью в сотни терафлопов. Но также существует ряд задач, которые по тем или иным причинам должны выполняться здесь и сейчас, на клиентской машине. Центральный процессор, которым оснащены современные компьютеры, является их основным вычислительным устройством и просто не способен решать эти задачи за приемлемое время. Решение данной проблемы было найдено сравнительно недавно.
Но в настоящее время практически каждый персональный компьютер оснащен отдельными видеокартами. Именно они и стали решением проблемы обработки трудоемких вычислительных задач. Графические процессоры спроектированы так, чтобы обрабатывать огромные объемы данных за приемлемое время. На настоящий момент они способны обеспечить производительность, оцениваемую сотнями и тысячами гигафлоп.
Целью данной работы является рассмотрение аспектов реализации параллельных алгоритмов, практическое применение их в GPU в массивно-параллельной архитектуре. Также реализация алгоритма графического 3
отображения «синусоиды» посредством CUDA [1] и OpenGl [2] для ускорения работы видеокарты путем распараллеливания, то есть использование графических процессоров GPU самой видеокарты
Но в настоящее время практически каждый персональный компьютер оснащен отдельными видеокартами. Именно они и стали решением проблемы обработки трудоемких вычислительных задач. Графические процессоры спроектированы так, чтобы обрабатывать огромные объемы данных за приемлемое время. На настоящий момент они способны обеспечить производительность, оцениваемую сотнями и тысячами гигафлоп.
Целью данной работы является рассмотрение аспектов реализации параллельных алгоритмов, практическое применение их в GPU в массивно-параллельной архитектуре. Также реализация алгоритма графического 3
отображения «синусоиды» посредством CUDA [1] и OpenGl [2] для ускорения работы видеокарты путем распараллеливания, то есть использование графических процессоров GPU самой видеокарты
В процессе выполнения данной работы было рассмотрено одно из решений для вычисления графических задач средствами GPU — технология NVIDIA CUDA. Данная технология является эффективным средством, имеющим ряд преимуществ: доступность, поддержка любой современной видеокартой NVIDIA, производительность, легкость в освоении и другие. Результатом работы компилятора является сгенерированный на языке С++ код для демонстрации как динамически изменять буфер вершин используя ядро CUDA.
Были изучены теоретические аспекты, связанные с использованием GPU в массивно-параллельной архитектуре. Проведено сравнение архитектур GPU и CPU. Вышеперечисленное доказывает, что, применение CUDA довольно хорошо сокращает время обработки данных больших размерностей.
С использованием данной технологии CUDA был реализован алгоритм синусоиды:
1. Создание пустого объекта буфера вершин (VBO)
2. Регистрация объекта буфера (VBO)
3. Связывание объекта буфера (VBO) в память Cuda
4. Запуск ядра Cuda для изменения позиции вершин.
5. Выгрузка объекта буфера (VBO) из памяти Cuda
6. Представление результатов вычисления, используя OpenGL.
Подводя итог данной работы, можно отметить, что графический процессор, обладая большим вычислительным потенциалом, однако по- прежнему не может полностью заменить работу центрального процессора, являющегося универсальным вычислительным средством. Он имеет возможность облегчить загрузку CPU, взяв на себя операции, представляющие собой наиболее трудоемкие и сложные вычисления. Но сейчас видеочипы движутся постепенно в сторону CPU, становясь все более универсальными, как и CPU становятся все более «параллельными», увеличивая количество ядер, используя многопоточность. Возможно, GPU и CPU в будущем просто сольются. Известно, что многие компании, в том числе Intel и AMD работают над подобными проектами. Но на данном этапе наиболее актуальной для объемных вычислений остается, и будет становиться все более популярной технология GPGPU.
В данной работе, к сожалению, из-за нехватки времени не удалось провести анализ скорости выполнения алгоритма «синусоиды» с использованием параллелизма и без. В связи с этим отсутствует наглядность использования процессоров GPU для ускорения работы видеокарты путем распараллеливания.
На сегодняшний день о CUDA можно говорить, как о весьма удачно нашедшей свое применение перспективной технологии, поддержка которой уже давно не роскошь, а напротив - весьма затруднительно будет найти чипсет, который бы ее не поддерживал.
Исходные тексты программной реализации алгоритма графического представления «синусоиды» прилагаются на компакт-диске.
Были изучены теоретические аспекты, связанные с использованием GPU в массивно-параллельной архитектуре. Проведено сравнение архитектур GPU и CPU. Вышеперечисленное доказывает, что, применение CUDA довольно хорошо сокращает время обработки данных больших размерностей.
С использованием данной технологии CUDA был реализован алгоритм синусоиды:
1. Создание пустого объекта буфера вершин (VBO)
2. Регистрация объекта буфера (VBO)
3. Связывание объекта буфера (VBO) в память Cuda
4. Запуск ядра Cuda для изменения позиции вершин.
5. Выгрузка объекта буфера (VBO) из памяти Cuda
6. Представление результатов вычисления, используя OpenGL.
Подводя итог данной работы, можно отметить, что графический процессор, обладая большим вычислительным потенциалом, однако по- прежнему не может полностью заменить работу центрального процессора, являющегося универсальным вычислительным средством. Он имеет возможность облегчить загрузку CPU, взяв на себя операции, представляющие собой наиболее трудоемкие и сложные вычисления. Но сейчас видеочипы движутся постепенно в сторону CPU, становясь все более универсальными, как и CPU становятся все более «параллельными», увеличивая количество ядер, используя многопоточность. Возможно, GPU и CPU в будущем просто сольются. Известно, что многие компании, в том числе Intel и AMD работают над подобными проектами. Но на данном этапе наиболее актуальной для объемных вычислений остается, и будет становиться все более популярной технология GPGPU.
В данной работе, к сожалению, из-за нехватки времени не удалось провести анализ скорости выполнения алгоритма «синусоиды» с использованием параллелизма и без. В связи с этим отсутствует наглядность использования процессоров GPU для ускорения работы видеокарты путем распараллеливания.
На сегодняшний день о CUDA можно говорить, как о весьма удачно нашедшей свое применение перспективной технологии, поддержка которой уже давно не роскошь, а напротив - весьма затруднительно будет найти чипсет, который бы ее не поддерживал.
Исходные тексты программной реализации алгоритма графического представления «синусоиды» прилагаются на компакт-диске.
Подобные работы
- Аспекты реализации параллельных алгоритмов, практическое применение их в GPU в массивно-параллельной архитектуре
Дипломные работы, ВКР, информатика. Язык работы: Русский. Цена: 4295 р. Год сдачи: 2016 - Сравнительный анализ параллельных алгоритмов поиска кратчайших путей на графах
Бакалаврская работа, информатика. Язык работы: Русский. Цена: 4350 р. Год сдачи: 2017 - Сравнительный анализ параллельных алгоритмов поиска кратчайших путей на графах
Бакалаврская работа, информатика. Язык работы: Русский. Цена: 3850 р. Год сдачи: 2017 - Параллельные алгоритмы решения задачи коммивояжера методом ветвей и границ
Бакалаврская работа, информатика. Язык работы: Русский. Цена: 4335 р. Год сдачи: 2019 - Параллельный алгоритм решения задачи анализа рыночной корзины для многоядерного ускорителя Intel Xeon Phi
Магистерская диссертация, информатика. Язык работы: Русский. Цена: 4860 р. Год сдачи: 2016 - ИТЕРАЦИОННЫЙ МЕТОД РЕШЕНИЯ СЛАУ НА ОСНОВЕ МОДИФИЦИРОВАННОГО СТАБИЛИЗИРОВАННОГО МЕТОДА БИСПОРЯЖЁННЫХ ГРАДИЕНТОВ С ИСПОЛЬЗОВАНИЕМ ТЕХНОЛОГИИ CUDA
Дипломные работы, ВКР, информатика. Язык работы: Русский. Цена: 4200 р. Год сдачи: 2018 - Поиск похожих подпоследовательностей временного ряда на кластерных вычислительных системах с ускорителями архитектуры Intel MIC
Магистерская диссертация, информатика. Язык работы: Русский. Цена: 4930 р. Год сдачи: 2016 - Исследование технологий реализации алгоритмов линейной
алгебры с использованием технологии CUDA
Бакалаврская работа, программирование. Язык работы: Русский. Цена: 4760 р. Год сдачи: 2017 - Моделирование систем эстафетной схемы с использованием распараллеленного алгоритма
Бакалаврская работа, программирование. Язык работы: Русский. Цена: 4700 р. Год сдачи: 2020



