• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

Framework Based on Vulkan API to Speed up Computing Using GPU

Student: Valiev Damir

Supervisor: Elena Ivanova

Faculty: HSE Tikhonov Moscow Institute of Electronics and Mathematics (MIEM HSE)

Educational Programme: Information Science and Computation Technology (Bachelor)

Final Grade: 10

Year of Graduation: 2020

The goal of this work is to build a framework that will aid in the development of high-performing applications which make use of hardware acceleration by using a GPU. The framework is based on C++ and the cross-platform software interface Vulkan API, which allows to use the GPU for 3D graphics and computing at a low cost. To understand the basics of working with a GPU, we studied the architecture of GPUs and the Vulkan API specification. To determine the relevance of the development, we analysed existing software solutions for hardware acceleration, and selected the most fitting set of software tools for the work. The framework structure we formed is a set of modules and libraries of our software platform. We developed an algorithm for creating a logical device and a memory allocator, a computing module which includes implementations of working with buffers and images in parallel, pipelines and shaders, linking resources to shaders, methods of running commands in parallel, writing and reading resources and process synchronization. To utilize the framework, we developed an interface which includes function and data type specification. The interface allows for various options changes when the application is running in real time. The software platform can easily be configured before compilation. In addition to the libraries required for the framework, extra plug-in libraries have also been developed to simplify the development of cross-platform applications. To test and demonstrate the structure of the framework, we developed examples which showcase how to work with our software platform. These examples demonstrate procedural data generation and image modification using shader programs. They also demonstrate image output on the screen using a graphics module. As a result of developing these demonstration programs, a high-performance library of hash, procedural textures, and gradient noise algorithms was created using C++ and SIMD instructions, as well as a copy of the same library in the GLSL Shader language. Testing software products which use a GPU is not easy to accomplish due to how the GPU works. We developed testing methods using validation layers and the Valgrind debugging package to solve this issue. The framework interface, along with some libraries, were documented with Doxygen comments. Doxygen allows to generate documentation in HTML, man, LaTeX, and many other formats using special marks in the comments to data types, lists, and function declarations in C, C++, Java, and many other languages. Instructions for configuration and assembly of the software platform and demonstration programs have been developed and placed in the same repositories. To distribute the software product, an open license was selected and applied to each component. Any use of third-party materials was performed legally according to compatible license agreements. All the code presented in this document contains minor corrections: Doxygen comments and tags were removed, indentation was changed, and some logic was simplified to make it easier to understand. The source code for the software platform is publicly available on several repositories. This report contains 134 pages, 77 illustrations, 7 tables, and 6 attachments.

Full text (added May 30, 2020)

Student Theses at HSE must be completed in accordance with the University Rules and regulations specified by each educational programme.

Summaries of all theses must be published and made freely available on the HSE website.

The full text of a thesis can be published in open access on the HSE website only if the authoring student (copyright holder) agrees, or, if the thesis was written by a team of students, if all the co-authors (copyright holders) agree. After a thesis is published on the HSE website, it obtains the status of an online publication.

Student theses are objects of copyright and their use is subject to limitations in accordance with the Russian Federation’s law on intellectual property.

In the event that a thesis is quoted or otherwise used, reference to the author’s name and the source of quotation is required.

Search all student theses