Для студентов МГУ им. Ломоносова по предмету Дипломы и ВКРКомпилятор Fortran DVMH - генерация ядер для графического процессораКомпилятор Fortran DVMH - генерация ядер для графического процессора
2024-09-08СтудИзба

ВКР: Компилятор Fortran DVMH - генерация ядер для графического процессора

-67%

Описание

Московский Государственный Университет им. М.В. Ломоносова

Факультет Вычислительной математики и кибернетики

Кафедра Системного программирования

Дипломная работа

«Компилятор Fortran DVMH: генерация ядер для графического процессора»

Научный руководитель

д. ф-м. н., профессор Крюков Виктор Алексеевич

Аннотация

Данная работа посвящена созданию блока транслятора с языка Fortran-DVMH в C-CUDA. (DVMH – система, позволяющая разрабатывать параллельные программы на языках С и Fortran, с возможностью исполнения программ на различных ускорителях. CUDA — архитектура параллельных вычислений с использованием GPU). Проводится обзор инструментариев, предоставляющих пользователю возможность изменения внутреннего представления программы и генерации нового файла на целевом языке по этому внутреннему представлению. Описаны основные преобразования, выполняемые транслятором и представлены результаты тестирования, показывающие корректность работы данного транслятора.

1. Введение

За последние десятилетия для всех областей науки значительно выросла потребность в обработке огромного количества данных. Для этого необходимы мощные вычислительные системы и специалисты, имеющие навыки параллельного программирования. Дефицит высококвалифицированных специалистов и отсутствие требуемых вычислительных мощностей вызвали бурное развитие суперкомпьютерных технологий по всему миру: почти во всех университетах были введены курсы по технологиям параллельного программирования и многие из них стали обязательными, были поставлены новые мощные суперкомпьютерные комплексы в исследовательские лаборатории, и TOP 500 самых мощных суперкомпьютеров обновляется с большой скоростью. В конце первого десятилетия и в начале следующего десятилетия XXI века, с появлением мощных графических карт возникли гибридные суперкомпьютеры, где вычисления происходят и на CPU, и на GPU [1]. GPU вывели параллельное программирование на новый уровень — при их использовании можно достигнуть ускорения работы приложений в десятки раз. Для написания программ, которые должны быть выполнены на графическом процессоре были придуманы специальные языки программирования: CUDA C, CUDA Fortran, OpenCL и другие .

  1. Графические процессоры и их преимущества по сравнению с центральными процессорами.

Графический процессор (Graphics Processing Unit, GPU) — микропроцессор, специализированный для обработки графической информации. Он берет на себя часть функций по формированию трехмерного изображения и позволяет разгрузить центральный микропроцессор от выполнения операций, связанных с расчетами геометрических трансформаций, моделей освещения и т.д. Как правило, графическим процессором оснащены все современные видеокарты.

Термин Graphics Processing Unit (GPU) был впервые использован корпорацией NVIDIA для обозначения того факта, что графический ускоритель, первоначально используемый только для ускорения трехмерной графики, стал мощным программируемым устройством (процессором), пригодным для решения значительно более широкого класса вычислительных задач [2].

Отличительными особенностями GPU по сравнению с центральным процессором (CPU) являются:

  • архитектура GPU, максимально нацелена на увеличение скорости расчета текстур и сложных графических объектов;
  • GPU имеет ограниченный набор команд
высокая вычислительная мощность GPU, рассмотрим отличия архитектуры GPU от CPU. Центральные процессоры содержат небольшое число ядер, работающих на высокой тактовой частоте независимо друг от друга. GPU, в свою очередь, работает на низкой тактовой частоте, его вычислительные элементы сильно упрощены, но их количество на порядки превышает количество элементов в CPU. Также значительная доля кристалла CPU занята кэшем, в то время как практически весь GPU состоит из арифметико-логических блоков (рис 1.1). В архитектуре GPU кэш имеет меньшее значение, поскольку используется принципиально иная стратегия покрытия латентности памяти. За счет этих отличий производительность каждого нового поколения GPU быстро растет как в пиковом значении, так и на реальных приложениях [2].
Различия в архитектуре приводят к различию в принципах работы процессоров. Исторически сложилось так, что CPU предполагает последовательную обработку информации, а GPU первоначально предназначался для обработки компьютерной графики, поэтому рассчитан на максимальное распараллеливание.
Нельзя сказать, что одна из этих архитектур лучше, чем другая, каждая из них имеет свои плюсы. С последовательными вычислениями лучше работает СPU, а при обрабатывании больших объемов данных, над которыми нужно произвести одинаковые вычисления, очевидное преимущество имеет GPU.
Метод программирования графических ускорителей следует из их архитектуры . Концепция – разделить большие объемы входной информации (массивы, матрицы, кубы) на независимые участки и для обработки каждого участка по некоторому алгоритму запустить отдельные группы потоков.
Все группы выполняют одинаковый алгоритм над различными частями исходного набора данных. Отдельные нити сгруппированы в блоки. Блоки могут быть одномерными, двумерными или трехмерными. Гарантируется, что каждый блок полностью запускается на исполнение в пределах одного симметричного мультипроцессора со своей общей памятью. Поэтому, нити в пределах одного блока могут пользоваться разделяемой памятью, при этом необходимо обеспечить синхронизацию явно, так как порядок выполнения нитей внутри блока неизвестен и определяется динамически. Максимальное число нитей в каждом блоке ограничено параметрами и ресурсами конкретного ускорителя [3].
  1. CUDA.

CUDA (Compute Unified Device Architecture) — это архитектура параллельных вычислений от NVIDIA, позволяющая существенно увеличить вычислительную производительность благодаря использованию GPU (графических процессоров) [4].

С точки зрения программного обеспечения, реализация CUDA представляет собой кроссплатформенную систему компиляции и исполнения программ, части которых работают на CPU и GPU. CUDA предназначена для разработки GPU-приложений без привязки к графическим API и поддерживается всеми GPU NVIDIA, начиная с серии GeForce 8 [2].

CUDA SDK позволяет программистам реализовывать на специальном упрощенном диалекте языка программирования С (Fortran) алгоритмы, выполнимые на графических процессорах NVIDIA, и включать специальные функции в текст программы на C (Fortran).

Несмотря на хорошую документированность, наличие множества хороших руководств, online/offline-курсов и вебинаров, разработка приложений с помощью CUDA все равно является очень трудоемкой и «временно-затратной» задачей. Поэтому для облегчения работы программистов с графическими процессорами были созданы такие технологии как DVMН[5][6] и openACC[7].


Файлы условия, демо

Характеристики ВКР

Список файлов

Компилятор fortran dvmh - генерация ядер для графического процессора.doc
Обратите внимание, что данная работа уже сдавалась в МГУ им. Ломоносова, а также её могли покупать другие студенты, поэтому её уникальность может быть нулевой. Для получения уникальной работы воспользуйтесь услугами.
Картинка-подпись
Ваше удовлетворение является нашим приоритетом, если вы удовлетворены нами, пожалуйста, оставьте нам 5 ЗВЕЗД и позитивных комментариев. Спасибо большое!

Комментарии

Поделитесь ссылкой:
Цена: 1 999 650 руб.
Расширенная гарантия +3 недели гарантии, +10% цены
Рейтинг ждёт первых оценок
0 из 5
Оставьте первую оценку и отзыв!
Поделитесь ссылкой:
Сопутствующие материалы
Вы можете использовать ВКР для примера, а также можете ссылаться на неё в своей работе. Авторство принадлежит автору работы, поэтому запрещено копировать текст из этой работы для любой публикации, в том числе в свою выпускную квалификационную работу в учебном заведении, без правильно оформленной ссылки. Читайте как правильно публиковать ссылки в своей работе.
Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6367
Авторов
на СтудИзбе
310
Средний доход
с одного платного файла
Обучение Подробнее