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


Brahma.FSharp как основа для обобщённой разреженной линейной алгебры на GPGPU

Работа №141892

Тип работы

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

Предмет

математика

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

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


Введение 4
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

Данные, представимые в виде графов, встречаются повсеместно: при анализе компьютерных и социальных сетей, в биоинформатике и статическом анализе кода [5]. Графы, возникающие в этих областях, могут содержать миллионы узлов и ребер, поэтому существует необ­ходимость в высокопроизводительных инструментах анализа больших графов. В связи с этим многообещающей становится идея использо­вания графических ускорителей общего назначения — GPGPU. Суще­ствующие решения уже сейчас доказывают, что использование GPGPU может повысить производительность алгоритмов анализа графов [1] [6], однако ценой служит более сложная модель программирования [10]. Иным является подход к организации вычислений над графами, осно­ванный на стандарте GraphBLAS [5], который определяет базовые при­митивы для построения графовых алгоритмов в терминах линейной ал­гебры. Свойством такого подхода является способность оперировать бо­гатым набором графов различных типов с помощью небольшого набора матричных операций над полукольцами. Например, умножение матри­цы на вектор, как показано на рисунке 1, является шагом в алгоритме поиска в ширину. Решения, основанные на стандарте GraphBLAS, про­изводительны, масштабируемы и имеют более дружественное API [3]. Тем не менее на данный момент нет полноценных инструментов, ре­ализующих стандарт GraphBLAS на графических процессорах обще­го назначения. Текущие реализации GraphBLAS на GPGPU (напри­мер, GraphBLAST [10]) показывают, что использование GPGPU дей­ствительно может улучшить производительность инструментов такого рода, однако разработчики сталкиваются не только с проблемами, свя­занными с реализацией обобщенных операций на графических процес­сорах с помощью стандартных инструментов языка Cd—+, но и с перено­симостью решений, основанных на программно-аппаратной платформе CUDA.
Одним из возможных подходов к реализации GraphBLAS на GPU является использование языка высокого уровня, а также библиотек,динамически транслирующих конструкции и объекты данного языка в низкоуровневый код, способный исполнятся на графическом процессоре видеокарты. Данный подход был опробован на прототипе GraphBLAS- sharp1 2, разработанном на кафедре системного программирования СПб­ГУ, который показал жизнеспособность этой идеи. В качестве библио­теки для взаимодействия с OpenCL прототип использует библиотеку Brahma.FSharp, которая также разрабатывается на кафедре систем­ного программирования СПбГУ. Библиотека позволяет использовать подмножество языка F# для написания OpenCL ядер и предостав­ляет интерфейс для работы с ними. В ходе работы над прототипом GraphBLAS-sharp был выявлен ряд недостатков библиотеки Brahma.FSharp, перечисленных ниже.
1. Отсутствие атомарных операций для произвольных типов дан­ных, что не позволяет реализовывать некоторые алгоритмы, ко­торые могут оказаться лучше аналогов.
2. Отсутствие поддержки трансфера пользовательских типов дан­ных из управляемой памяти в видеопамять.
3. Отсутствие возможности вручную управлять выделением памяти на OpenCL устройстве.
4. Отсутствие возможности исполнения нескольких OpenCL ядер параллельно.

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

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

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


В рамках данной работы1 были получены перечисленные ниже ре­зультаты.
• Реализована поддержка обобщенных атомарных операций.
• Реализована поддержка трансфера обобщенных типов данных, та­ких как структуры, кортежи и размеченные объединения.
• Улучшена модель управления памятью.
• Реализована возможность параллельного исполнения OpenCL ядер.
• Проведено экспериментальное сравнение предложенной реализа­ции с аналогами.


[1] CuSha: Vertex-Centric Graph Processing on GPUs / Farzad Kho- rasani, Keval Vora, Rajiv Gupta, Laxmi N. Bhuyan // Proceedings of the 23rd International Symposium on High-Performance Parallel and Distributed Computing. - HPDC ’14.- New York, NY, USA : Association for Computing Machinery, 2014.— P. 239-252.— URL: https://doi.org/10.1145/2600212.2600227.
[2] Design of OpenCL Framework for Embedded Multi-core Processors / Jung-Hyun Hong, Young-Ho Ahn, Byung-Jin Kim, Ki Chung // Con­sumer Electronics, IEEE Transactions on.— 2014. — 05.— Vol. 60.— P. 233-241.
[3] Graphs, Matrices, and the GraphBLAS: Seven Good Reasons / Jeremy Kepner, David Bader, Aydin Buluq et al. // Procedia Com­puter Science. — 2015. — Vol. 51. — P. 2453-2462. — International Con­ference On Computational Science, ICCS 2015. URL: https://www. sciencedirect.com/science/article/pii/S1877050915011618.
[4] Khronos OpenCL Working Group. — The OpenCL Specification, Ver­sion 1.1, 2011.— URL: https://www.khronos.org/registry/cl/ specs/opencl-1.1.pdf.
[5] Mathematical foundations of the GraphBLAS / J. Kepner, P. Aalto­nen, D. Bader et al. // 2016 IEEE High Performance Extreme Com­puting Conference (HPEC). — 2016. — P. 1-9.
[6] Multi-GPU Graph Analytics / Yuechao Pan, Yangzihao Wang, Yuduo Wu et al. — 2017. — 05. — P. 479-490.
[7] Optimizing CUDA Code By Kernel Fusion—Application on BLAS / Jiri Filipovic, Matus Madzin, Jan Fousek, Ludek Matyska // CoRR. — 2013. — Vol. abs/1305.1183. — 1305.1183.
[8] Quantifying the Energy Efficiency of FFT on Heterogeneous Plat­forms / Yash Ukidave, Amir Kavyan Ziabari, Perhaad Mistry et al. — 2013. —04.
[9] Wadler Philip. Deforestation: transforming programs to eliminate trees // Theoretical Computer Science.— 1990.— Vol. 73, no. 2.— P. 231-248.— URL: https://www.sciencedirect.com/science/ article/pii/030439759090147A.
[10] Yang Carl, Buluq Aydin, Owens John D. GraphBLAST: A High- Performance Linear Algebra-based Graph Framework on the GPU // CoRR. — 2019. — Vol. abs/1908.01407. — 1908.01407.


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



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


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