Тема: Brahma.FSharp как основа для обобщённой разреженной линейной алгебры на GPGPU
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
1. Постановка задачи 6
2. Обзор 7
2.1. Обзор аналогичных инструментов 7
2.2. Платформа OpenCL и модель исполнения 9
2.3. Язык программирования F# 11
2.4. Библиотека Brahma.FSharp 12
3. Реализация 14
3.1. Поддержка обобщенных атомарных операций 14
3.2. Поддержка трансфера пользовательских типов данных . 17
3.3. Улучшение модели управления памятью 19
3.4. Общая архитектура решения 20
4. Эксперимент 24
4.1. Условия эксперимента 24
4.2. Оценка затрат на трансфер данных 24
4.3. Оценка затрат на использование атомарных операций . . 28
Заключение 30
Список литературы 31
📖 Введение
Одним из возможных подходов к реализации GraphBLAS на GPU является использование языка высокого уровня, а также библиотек,динамически транслирующих конструкции и объекты данного языка в низкоуровневый код, способный исполнятся на графическом процессоре видеокарты. Данный подход был опробован на прототипе GraphBLAS- sharp1 2, разработанном на кафедре системного программирования СПбГУ, который показал жизнеспособность этой идеи. В качестве библиотеки для взаимодействия с OpenCL прототип использует библиотеку Brahma.FSharp, которая также разрабатывается на кафедре системного программирования СПбГУ. Библиотека позволяет использовать подмножество языка F# для написания OpenCL ядер и предоставляет интерфейс для работы с ними. В ходе работы над прототипом GraphBLAS-sharp был выявлен ряд недостатков библиотеки Brahma.FSharp, перечисленных ниже.
1. Отсутствие атомарных операций для произвольных типов данных, что не позволяет реализовывать некоторые алгоритмы, которые могут оказаться лучше аналогов.
2. Отсутствие поддержки трансфера пользовательских типов данных из управляемой памяти в видеопамять.
3. Отсутствие возможности вручную управлять выделением памяти на OpenCL устройстве.
4. Отсутствие возможности исполнения нескольких OpenCL ядер параллельно.
✅ Заключение
• Реализована поддержка обобщенных атомарных операций.
• Реализована поддержка трансфера обобщенных типов данных, таких как структуры, кортежи и размеченные объединения.
• Улучшена модель управления памятью.
• Реализована возможность параллельного исполнения OpenCL ядер.
• Проведено экспериментальное сравнение предложенной реализации с аналогами.





