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


Использование современных Web-технологий для виртуализации платформы вычислений на основе GPU

Работа №147110

Тип работы

Дипломные работы, ВКР

Предмет

информационные системы

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

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


ВВЕДЕНИЕ 3
ПОСТАНОВКА ЗАДАЧИ 5
1. Предварительные объяснения 5
2. Постановка задачи 6
ГЛАВА 1: ПРОИЗВОДИТЕЛЬНОСТЬ WEBGPU 9
1. Постановка задачи исследования 9
2. Проведение исследования 9
3. Анализ результатов исследования 10
ГЛАВА 2: РАСШИРЕНИЕ ВИРТУАЛИЗАЦИИ? 12
1. Постановка задачи исследования 12
2. Проведение исследования 13
3. Анализ результатов исследования 14
ГЛАВА 3: СОЗДАНИЕ ПЛАТФОРМЫ 15
1. Постановка конкретных задач 15
2. Выбор технологий 16
3. Продумывание архитектуры 17
4. Работа над требованием: редактор кода 19
5. Работа над требованиями: контрольная панель, элементы удобства и разработка для
людей с ограниченными возможностями 21
6. Разработка основного ядра взаимодействия с WebGPU 24
7. Работа над требованием: вывод ошибок и уведомлений 27
8. Работа над требованием: использование JavaScript для ввода и вывода данных 29
ГЛАВА 4: ДЕМОНСТРАЦИЯ РАБОТЫ ПЛАТФОРМЫ 31
1. Демонстрация работы в платформе 31
2. Выводы по работе в платформе 34
НЕДОСТАТКИ ПЛАТФОРМЫ 35
ЗАКЛЮЧЕНИЕ 37
Приложения 42
1. Приложение А: HTML и JavaScript-код для эксперимента 42
2. Приложение Б: OpenCL-код для эксперимента 48
3. Приложение В: Связующий Python-код для эксперимента 49
4. Приложение Г: Python-код для генерации матриц 50


Сегодня можно уверенно утверждать, что Web-браузер является незаменимой компонентой практически любого персонального устройства — от компьютера до смартфона. Действительно, найти его можно практически где угодно, и, открыв его, можно увидеть, что за последние десятилетия Web-технологии совершили ощутимый прогресс: из простого средства передачи текстовых документов и информационных ресурсов они превратились в полноценную платформу для разработки самых разнообразных приложений: от простых калькуляторов до 3Б-игр и редакторов изображений и видео. Это объясняется в первую очередь удобством и универсальностью Web-платформы — приложения на ней не нужно устанавливать и обновлять, они доступны по запросу и за счёт возможностей в плане виртуализации (в смысле абстракции от аппаратных ресурсов) такие приложения пишутся в одном экземпляре и сразу доступны практически на любой операционной системе. Так, можно сказать, что Web-браузер представляет собой ещё одну абстракцию — полноценную платформу, работающую на базе другой, нативной платформы в виде операционной системы.
В то же время в данный момент активно развивается такое направление, как GPGPU — General-Purpose computing on Graphics-Processing Units, или же вычисления при помощи GPU, которое позволяет нам использовать графические процессоры скорее не для непосредственно графики, а для решения более общих вычислительных задач. Такой подход применяется, когда задача предполагает выполнение однотипных операций над однородным, обычно большим объёмом данных (в отличие от вычислений на CPU, где предполагаются гетерогенные операции над различными и разнородными данными). В частности, GPGPU активно применяется в таких областях, как криптография и решение задач машинного обучения и искусственного интеллекта.
Как и с другими направлениями, существует множество решений для осуществления вычислений на GPU, из самых известных можно отметить CUDA [1] и OpenCL [2]. Вместе с тем, начиная работу с ними и, в частности, обучаясь процессу вычисления на GPU как направлению можно столкнуться с тем, что они довольно сложны как в плане установки и настройки (часто приходится действовать в соответствии с длинными и запутанными инструкциями для конкретной операционной системы), так и в плане взаимодействия. К тому же, иногда требуется использование специального оборудования, которое может быть не у всех: так, та же CUDA, разрабатываемая компанией NVIDIA, предназначена только для использования на GPU, произведённых самой NVIDIA.
Следовательно, хотелось бы иметь такую виртуализированную платформу, на которой можно было бы практиковаться работе с GPGPU или же демонстрировать такие вычисления в аудитории, не прибегая к установке и настройке больших программных продуктов, желательно на как можно более обширном круге устройств. Возникает резонный вопрос: можно ли для этих целей использовать уже виртуализированную платформу Web-браузера? Ведь, если посмотреть со стороны, это кажется вполне логично — характеристики Web-платформы, описанные выше, как раз подходят под те требования, которые мы поставили для нашей платформы. И, на самом деле, такая возможность существует, и в ходе данной выпускной квалификационной работы подобная платформа действительно была реализована.

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

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

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


В ходе выпускной квалификационной работы мы поставили себе цель создать виртуализированную (в плане абстракции от аппаратного обеспечения) за счёт средств Web-браузера платформу, на которой можно было бы практиковаться работе с GPGPU или же продемонстрировать работу с GPGPU, не прибегая к установке и настройке больших программных продуктов.
Можно смело утверждать, что с задачей мы справились успешно: в результате работы было сделано обладающее ключевым функционалом и готовое к расширению приложение, которое выполняет все предъявленные требования. Также можно отметить, что приложение обладает автоматическими unit-тестами и внутренней документации в виде комментариев, по которым можно сгенерировать внешнюю документацию в виде Web-страниц — это может помочь сторонним разработчикам быстрее включиться в работу с приложением, а также на протяжении всего периода разработки улучшать его качество.
Безусловно, имеются направления, которых работа может развиваться далее. Так, в будущем, когда инструменты для работы с WebGPU будут более развитыми (или обладая достаточными ресурсами для создания подобных инструментов самостоятельно) можно вновь вернуться к вопросу о расширении понятия виртуализации, чтобы платформа поддерживала не только WGSL, а, скажем, также и OpenCL — это было бы ещё более полезно с практической точки зрения, так как такие платформы куда более популярны, чем тот же WGSL.
Также можно доработать платформу до полноценной платформы GPGPU, а не только ограничившись теми целями, которые мы перед собой поставили. Для этого нужно, например, сделать поддержку настройки пределов использования памяти, поддержку нескольких WGSL программ и создания связей между ними, их полноценное сохранение. Это определённо потребует времени и, скорее всего, значительной переработки хотя бы интерфейса приложения.
Можно также предложить развивать подобные платформы для каких-нибудь специфичных GPGPU-задач, например для популярной сегодня области машинного обучения, то есть вместо абстрактного интерфейса придумать, как оптимизировать его под конкретную область, и предоставить API для удобства работы в этой области.
Отмечу, что всем этим направлениям ещё предстоит пережить пик интереса к ним, скорее всего это произойдёт в тот момент, когда WebGPU и WGSL стабилизируются и окончательно станут частью любого современного Web-браузера (то есть где-то через 5-10 лет).
Основа для этих направлений деятельности, я надеюсь, была создана уже сегодня, вместе с этой выпускной квалификационной работой. При желании, с текущей версией проекта всегда можно будет ознакомиться по следующей ссылке: https://github.com/gpu- browser-project/gpu-browser-project. Надеюсь, что он окажется полезен для тех, кто хотел бы развивать данную тему в будущем. Также код, предоставленный в Приложениях, может оказаться полезен для повторения проведённых экспериментов в будущем с целью обзора улучшений WebGPU и WGSL в плане производительности.


1 NVIDIA Corporation. CUDA Toolkit — Free Tools and Training, 2024. — URL: https://developer.nvidia.com/cuda-toolkit (дата обращения 2024-05-18).
2 The Khronos Group. OpenCL — The Open Standard for Parallel Programming of Heterogeneous Systems, 2024. — URL: https://khronos.org/opencl (дата обращения 2024-0518).
3 Dakkak A., Pearson C., Hwu W.-M. WebGPU: A Scalable Online Development Platform for GPU Programming Courses, 2016 // 2016 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW), Chicago, IL, USA, P. 942-949. doi:10.1109/IPDPSW.2016.63
4 Valdez, A.A.M., Wee, F., Odasco, A.N.L. et al. GPU simulations of spiking neural P systems on modern web browsers, 2023 // Nat Comput 22, P. 171-180. doi:10.1007/s11047-022-09914-1
5 J. Galaz, R. Cienfuegos, A. Echeverria, S. Pereira, C. Bertin, G. Prato, J.C. Karich. Integrating tsunami simulations in web applications using BROWNI, an open source client-side GPU- powered tsunami simulation library, 2022 // Computers & Geosciences, Volume 159, 104976. doi:10.1016/j.cageo.2021.104976
6 The Khronos Group. WebGL Overview, 2024. — URL: https://khronos.org/webgl (дата обращения 2024-05-18).
7 World Wide Web Consortium. WebGPU, 2024. — URL: https://w3.org/TR/webgpu (дата обращения 2024-05-18).
8 Nam, Hyunwoo and Park, Neungsoo. Accelerating AES Algorithm using WebGPU, 2022 // The Transactions of The Korean Institute of Electrical Engineers 71(7):1008-1014. doi:10.5370/KIEE.2022.71.7.1008
9 Satyadhyan Chickerur, Sankalp Balannavar, Pranali Hongekar, Aditi Prerna, Soumya Jituri. WebGL vs. WebGPU: A Performance Analysis for Web 3.0, 2024 // Procedia Computer Science, Volume 233, P. 919-928. doi:10.1016/j.procs.2024.03.281
10 Aldahir Abdulsalam. Evaluation of the performance of WebGPU in a cluster of web-browsers for scientific computing, 2022. — URL: https://umu.diva-portal.org/smash/record.jsf? pid=diva2%3A1674447 (дата обращения 2023-12-24).
11 Калукова Ольга, Кошелева Наталья, Никитина Марина, Павлова Елена. Курс лекций по
высшей математике, 2006. — URL: https://edu.tltsu.ru/er/book_view.php?
book_id=1e2&page_id=499 (дата обращения 2023-12-24).
12 The Khronos Group. WebCL, 2023. — URL: https://khronos.org/webcl (дата обращения 2023-12-24).
13 World Wide Web Consortium. WebGPU Shading Language, 2023. — URL: https://w3.org/TR/WGSL (дата обращения 2023-12-24).
14 The Khronos Group. SPIR, 2023. — URL: https://khronos.org/spir (дата обращения 202312-24).
15 The Clang Authors. Clang: a C language family frontend for LLVM, 2023. — URL: https://clang.llvm.org/ (дата обращения 2023-12-24).
16 The Khronos Group. LLVM/SPIR-V Bi-Directional Translator, 2023. — URL: https://github.com/KhronosGroup/SPIRV-LLVM-Translator (дата обращения 2023-12-24).
17 The Clspv Authors. Clspv, 2023. — URL: https://github.com/google/clspv (дата обращения 2023-12-24).
18 The Khronos Group. Offline Compilation of OpenCL Kernels into SPIR-V Using Open Source Tooling, 2020. — URL: https://khronos.org/blog/offline-compilation-of-opencl-kernels- into-spir-v-using-open-source-tooling (дата обращения 2023-12-24).
19 The Tint Team. Tint, 2023. — URL: https://dawn.googlesource.com/tint (дата обращения
2023- 12-24).
... Всего источников –35.


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




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