Тип работы:
Предмет:
Язык работы:


Исследование технологий реализации алгоритмов линейной алгебры с использованием технологии CUDA

Работа №109395

Тип работы

Бакалаврская работа

Предмет

программирование

Объем работы57
Год сдачи2017
Стоимость4760 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
73
Не подходит работа?

Узнай цену на написание


ВВЕДЕНИЕ 4
Глава 1 УМНОЖЕНИЕ МАТРИЦ БОЛЬШИХ РАЗМЕРНОСТЕЙ НА ЭЛЕКТРОННО-ВЫЧИСЛИТЕЛЬНОЙ МАШИНЕ 7
1.1 Применение матричного умножения в современном мире 7
1.2 Общий вид умножения матриц 13
1.3 Математическое описание 14
1.4 Архитектура графического процессора 18
1.5 Описание вычислителя на графическом процессоре лаборатории
распределенных вычислений ТГУ 20
Глава 2 РЕАЛИЗАЦИЯ МАТРИЧНОГО УМНОЖЕНИЯ 27
2.1 Сравнение различных технологий внедрения параллельного
программного обеспечения 27
2.2 Особенности решения систем линейных алгебраических уравнений на
CUDA 28
2.3 Реализация и тестирование алгоритмов матричного умножения 30
2.3.1 Умножение матриц при ленточной схеме разделения данных 30
2.3.2 Метод Фокса 33
Глава 3 АНАЛИЗ ЭФФЕКТИВНОСТИ РАЗРАБОТАННЫХ АЛГОРИТМОВ . 38
3.1 Разработка технологии анализа эффективности алгоритмов 38
3.2 Описание эксперимента и их анализ полученных данных 44
3.2.1 Умножение матриц при ленточной схеме разделения данных 44
3.2.2 Метод Фокса 44
3.3 Проведение экспериментов по эффективности 45
3.4 Анализ эффективности 48
ЗАКЛЮЧЕНИЕ 50
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 51
ПРИЛОЖЕНИЕ

Все вычислительные системы, от мобильных до суперкомпьютеров, становятся гетерогенными, огромное количество параллельных компьютеров используется для повышения энергоэффективности и вычислительной пропускной способности.
Ускоренные вычисления с GPU- это использование графического процессора (GPU) вместе с процессором CPU для ускорения научных, аналитических, инженерных, потребительских и корпоративных приложений. Впервые они были открыты компанией NVIDIA® в 2007 году, ускорители GPU стали энергоэффективными центрами обработки данных в государственных лабораториях, университетах, предприятиях, а также широко используются на малых и средних предприятиях по всему миру. Графические процессоры ускоряют приложения на платформах, начиная от автомобилей, мобильных телефонов и планшетов, до беспилотных летательных аппаратов и роботов.
Существует много преимуществ использования суперкомпьютеров. Во- первых, использование графических ускорителей NVIDIA позволяет значительно увеличить скорость вычислений, она становится в тысячу раз быстрее обычного персонального компьютера, что очень полезно, например, при прогнозировании погоды. Потребовались бы десять дней для ПК, чтобы спрогнозировать прогноз погоды всего на одни сутки, что нельзя сказать о суперкомпьютере, который значительно отливается своей мощностью, а следовательно и скоростью выполнения сложных операций. Второе преимущество суперкомпьютера заключается в то, что он обладает самым передовым технологическим уровнем, например, арсенид Галлума (GaAS).Третий аспект, касающийся этих удивительных машин, которые помогают людям во всем мире, заключается во множестве конкретных архитектурных решений, направленных на повышение быстродействия выполняемых задач.
Суперкомпьютеры дали возможность решению задач огромного размера. Стало возможным приступить к реализации реалистических математических моделей сложных физических явлений и технических устройств, которые ранее невозможно было решать на маломощных последовательных компьютерах[6].
В течение десятилетий суперкомпьютеры стремились к повышению производительности. Но, кроме умопомрачительного повышения быстродействия одного микропроцессора, производители суперкомпьютеров зачастую увеличивали число процессоров в целом. Их труды не прошли даром, потому что в наше время суперкомпьютеры насчитывают десятки и сотни тысяч согласованно работающих процессорных ядер[1].
Производительность в разы увеличилась благодаря распараллеливанию алгоритмов под многоядерные цифровые преобразователи (ЦП), но, к сожалению, увеличивать скорость на традиционных архитектура становится с каждым годом сложнее.
В настоящее время, применение дополнительных ускорителей, которые принимают на себя часть вычислительной нагрузки, является актуальным для высокопроизводительной обработки данных
Основной отличительной чертой современных GPU является включение в архитектуру CUDA (Compute Unified Device Architecture) унифицированного шейдерного конвейера, который в свою очередь позволяет программе задействовать разнообразные фрифмитически-логические устройства (АЛУ), входящее в микросхему [1].
Данное добавление средств было произведено с целью расширения возможности решения спектра задач, начиная от традиционных задач компьютерной графики и заканчивая вычислениями общего назначения.
Производительность вычислений на GPU может в разы увеличиться за счет количества ядер и других архитектурных особенностей. Таким образом, мы приходим к тому, что решение задач матричного умножения на программно-аппаратной архитектуре параллельных вычислений NVidia CUDA является актуальной.
Практическая новизна работы заключается в сравнительном анализе программных технологий перемножения матриц на графическом процессоре с учетом архитектурных особенностей плат NVidia Tesla K10.
Объектом бакалаврской работы является вычислительный процесс умножения матриц на аппаратно-программной платформе CUDA.
Предмет бакалаврской работы - параллельные алгоритмы и программная реализация процесса умножения матриц.
Цель работы: анализ эффективности разработанных алгоритмов матричного умножения с использованием программно-аппаратной архитектуры параллельных вычислений NVidia CUDA.
Задачами работы являются:
1. Изучить методы параллельных алгоритмов матричного умножения.
2. Спроектировать параллельные алгоритмы матричного умножения.
3. Реализовать параллельные алгоритмы умножения матриц на языке CUDA C/C++.
4. Протестировать и исследовать эффективность разработанных алгоритмов матричного умножения.
Бакалаврская работа состоит из трех глав.
Первая глава работы посвящена анализу матричного умножения и численных способов решения под ЭВМ с распараллеливанием. А также анализу суперкомпьютера ТГУ, технологии CUDA и архитектуры NVidia Kepler.
Вторая глава описывает особенности умножения матриц под технологию CUDA, реализацию алгоритмов решения и их тестирование.
Третья глава посвящена процессу анализа эффективности реализованных алгоритмов матричного умножения и их улучшению.
В заключении подводится общая оценка данных реализаций алгоритма, анализ возникших при разработке трудностей, а также перспективы применения алгоритма в различных ситуациях.


Возникли сложности?

Нужна помощь преподавателя?

Помощь студентам в написании работ!


В ходе проведенной работы была изучена архитектура видео ускорителей от NVidia, были изучены и реализованы методы повышения производительности алгоритмов под графические процессоры NVidia Tesla K10, А также проведен сравнительный анализ методов матричного умножения, были представлены параллельные реализации матричного умножения с использованием как общих, так и распределенных подходов к памяти. Матричное умножение является превосходным алгоритмом параллельной обработки, как показали показатели ускорения / эффективности. Чтобы избежать конфликтов памяти при использовании подхода с разделяемой памятью, важно перенести данные на встроенную / локальную память для выполнения. Поскольку межпроцессорная связь требуется только изначально, она не оказывает сильного влияния на производительность подхода с распределенной памятью; Но с использованием методов двойной буферизации, это можно свести к минимуму еще больше. Также необходимо учитывать балансировку нагрузки.
Для хорошо распараллеливаемых вычислений и сложных алгоритмов использование CUDA дает лучший результат.
На примере умножения матриц мы видим эффективность и способы оптимизации реализации параллельных алгоритмов на технологии Nvidia Cuda. Серия экспериментов выявила один небольшой недостаток, заключающийся в том, что передача данных в видеопамять и обратно требует много времени.
Графические процессоры от NVIDIA и программно-аппаратная архитектура параллельных вычислений NVidia CUDA позволяют программистам использовать тысячи CUDA ядер для параллельных вычислений. Для простых вычислений глубокие знание архитектуры GPU не требуются. Однако только реализация программ под конкретную архитектуру конкретного GPU даст максимальную производительность.



1. Белоусов И.В. Матрицы и Определители: Учеб. Пособие- Кишинев,2006-101 с.
2. Боресков А.В. Параллельные вычисления на GPU. Архитектура и программная модель CUDA: Учеб.пособие / Боресков А.В. и др. Предисл.: Садовничий В.А. - М.: Издательство Московского университета, 2012. - 336с.
3. Варыгина М.П. Основы программирования в CUDA: Учеб. Пособие/Варыгина М.П. - М.: Краснояр. гос. пед. ун-т. В.П. Астафьева. - Красноярск, 2012. - 138с.
4. Малышкин В.Э. Параллельное программирование
мультикомпьютеров: Учеб. Пособие. / Малышкин В.Э., Корнеев В.Д. - М.: Изд- во НГТУ, 2011. - 296с.
5. Сандерс Дж. Технология CUDA в примерах: введение в программирование графических процессоров:Пер. с англ. Слинкина А.А., научный редактор Боресков А.В./ Сандерс Дж., Кэндрот Э. - М.:ДМК Пресс, 2011. - 232с.
6. Умнов А.Е. Аналитическая геометрия и линейная алгебра: Учеб. Пособие/ Умнов А.Е./ - 3е. изд., испр. и доп. - М.: МФТИ, 2011. - 544 с.
Электронные ресурсы
7. GTC 2012: финальные подробности GK110 [Электронный ресурс] - Шиллинг А. [2012]. - Режим доступа: http://www.hardwareluxx.ru/index.php/news/hardware/grafikkarten/22110-gte-2012- gk110.html
8. NVIDIA представила Tesla K20 и K20X на основе GK110 [Электронный ресурс] Шиллинг А. [2012].- Режим доступа: http://www.hardwareluxx.ru/index.php/news/hardware/grafikkarten/23874-nvidia- tesla-k20-k20x-gk110.html
9. NVIDIA Tesla K10 GPU ускоряет поиски залежей нефти и газа и обработку сигналов и изображений для военных [Электронный ресурс] - NVidia Corp., [2012]. - Режим доступа: http: //www.nvidia.ru/obj ect/nvidia-tesla- k10-gpu-accelerator-20120516-ru.html
10. Казённое А.М. Основы технологии CUDA. / Казённое А.М. // Компьютерные исследования и моделирование [Электронный ресурс]. - Электрон. журн. - 2010. - Т.2 №3. - С.295-308. - Режим доступа: http://crm.ics.org.ru
11. Капорин, О.Ю. Милюкова, Ю.Г. Бартенев. - Электрон.дан. - Режим доступа: http://2013.nscf.ru/T esisAll/Section%205/04 2010 KaporinIE S5.pdf
12. Фролов А.В. Еще один метод распараллеливания прогонки с использованием ассоциативности операций / Фролов А.В. // Суперкомпьютерные дни в России 2015 [Электронный ресурс]. - Электрон. журн. - 2015. - Режим доступа: http://russianscdays.org/files/pdf/151 .pdf
13. Шарый С.П. Курс вычислительных методов [Электронный ресурс] / Шарый С.П. - Электрон.дан. - М.: Новосибирск: НГУ, 2016. - 529. - Режим доступа: http: //www.ict.nsc.ru/matmo d/files/textbo oks/SharyNuMeth. pdf
Литература на иностранном языке
14. CUDA Toolkit 4.1 CURAND Guide [Electronic resource]:
[Руководство по CUDA Toolkit 4.1 CURAND]. - Electronic data. - NVidia Corp., [2012]. - Mode of access: https: //hpc.oit.uci.edu/nvidia-doc/sdk-cuda-
doc/CUDALibraries/doc/CURAND Library.pdf
15. CUDAProgramming[Electronicresource]: [CUDAпрограммирование].
- Romero. M., Urra. R. [2012]. - Mode of access:
http: //cuda.ce.rit.edu/cuda overview/cuda overview.htm
16. Dynamic Parallelism in CUDA 5.0 [Electronic
гезоигсе]:[Динамический Параллелизм в CUDA 5.0]. - Electronic data. - NVidia Corp.,[2012].-Mode of access:
http://developer. download.nvidia.com/assets/cuda/docs/T echBrief Dynamic Parallel ism in CUDA v2. pdf
17. Fastest, Most Efficient HPC Architecture [Electronic resource]: [Самая быстрая и самая эффективная архитектура СуперЭВМ]. - NVidia Corp., [2012].
18. Fastest, Most Efficient HPC Architecture Ever build [Electronic
resource]: [Самая быстрая и самая эффективная GPU архитектура когда-либо созданная]. -NVidia Corp., [2012]. - Mode of access:
http://www.nvidia.com/content/tesla/pdf/NV DS TeslaK Family May 2012 LR.pdf
19. NVIDIA CUDA Compute Unified Device Architecture Programming
Guide. Version 2.0 [Electronic resource]: [Единая вычислительная архитектура устройств. Руководство по программированию. Версия 2.0]. - Electronic data. - NVidia Corp., [2015]. - Mode of access:
http://docs.nvidia.com/cuda/pdf/CUDA C Programming Guide.pdf
20. OpenCL Best Practices Guide [Electronic resource]: [Руководство по
OpenCL]. - Electronic data. - NVidia Corp., [2011]. - Mode of access:
http://camlunity.ru/swap/Library/Conflux/OpenCL/NVIDIA OpenCL Best Practice s Guide.pdf
21. Tuning CUDA Applications for Kepler [Electronic resource]:
[Настройка CUDA приложений для архитектуры Kepler]. - Electronic data. - NVIDIA Corp., [2015]- Mode of access:
http://docs.nvidia.com/cuda/pdf/Kepler Tuning Guide.pdf
22. Understanding the CUDA Data Parallel Threading Model [Electronic resource]: [Общие сведения о параллельной модели потоков данных CUDA]. - Electronic data. - Technical News from The Portland Group, [2012]. - Mode of access: https://www.pgroup.com/lit/articles/insider/v2n 1 a5.htm


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2024 Cервис помощи студентам в выполнении работ