dc.contributor.advisor | Eidheim, Ole Christian | |
dc.contributor.author | Schøyen, Edvard | |
dc.contributor.author | Romestrand, Jarand Jensen | |
dc.contributor.author | Nordang, Vetle Ålesve | |
dc.date.accessioned | 2024-07-12T17:21:21Z | |
dc.date.available | 2024-07-12T17:21:21Z | |
dc.date.issued | 2024 | |
dc.identifier | no.ntnu:inspera:233962665:234001256 | |
dc.identifier.uri | https://hdl.handle.net/11250/3140793 | |
dc.description.abstract | Denne bacheloroppgaven er inspirert av et prosjekt gjennomført i emnet ”Anvendt maskinlæring med prosjekt” (IDATT2502), som omhandlet bruk av Gabor-filtre for bildeklassifisering og utforsking av effekten av støy på disse bildene, se vedlegg A. Fokuset i denne oppgaven er på den parallel- liserte anvendelsen av de nye Gabor-lignende filtrene. Disse nye filtrene er utviklet og implementert ved å bruke algoritmen som finnes i artikkelen av Devakumar og Eidheim (Devakumar & Eidheim, 2024).
De ulike parallelle maskinvarealternativene GPU, FPGA og ASIC for å par- allelisere filteranvendelsen er utforsket. På grunn av tidsbegrensninger er implementeringer kun gjort for CPU og GPU. Flere versjoner er utviklet for hver av disse for en grundig sammenligning av deres ytelse. Vers- jonene for CPU er én sekvensiell versjon i Python ved bruk av NumPy, en annen sekvensiell versjon i Rust, og en parallelisert versjon i Rust ved bruk av Rayon. GPU-implementeringene er skrevet i Rust og C++. Forskjellige shaders, som er kode for GPU, er utviklet og testet 2.
Prosesseringstiden for versjonene er samlet inn fra plattformene for å fast- slå hvilken som var mer effektiv. Dette ble oppnådd ved å bruke maskin- vareklokkene på hver plattform for å måle tiden som ble brukt for hver kjøring av filteranvendelsen. Resultatene viser at GPU-en overgår CPU-en så lenge tiden for minneoverføringen mellom CPU-en og GPU-en er kortere enn prosesseringstiden til CPU-en. En annen indikasjon fra resultatene er den betydelige variasjonen i ytelsen til beregningene som observeres ved implementering av de ulike paralleliseringsstrategiene. | |
dc.description.abstract | This thesis is inspired by a project conducted in the course ”Applied Ma- chine Learning with Project” (IDATT2502) which involved using Gabor fil- ters for image classification and exploring the effect of classifying these images with different levels of noise A. The focus of this thesis is on the parallelized application of the new Gabor-like filters. These filters are de- veloped and implemented using the algorithms described in the article by Devakumar and Eidheim (Devakumar & Eidheim, 2024).
Different parallel hardware options, including Graphics processing unit (GPU), Field Programmable Gate Array (FPGA), and Application-specific integrated circuit (ASIC), for parallelizing the filter application have been explored. However, due to time constraints, implementations have been made only for Central Processing Unit (CPU) and GPU. Multiple versions have been developed for both the CPU and the GPU, for a thorough comparison of the implementations and their performance on different hardware. For the CPU, there are three implementations: a sequential version in Python us- ing NumPy, another sequential version in Rust, and a parallelized version in Rust utilizing Rayon. The GPU implementations have been written in both Rust and C++. Different shaders, which are code for GPU execution, have been developed and tested1.
The processing time for the implementations has been collected from the platforms to determine which was more effective. This was achieved using the hardware clocks on each platform to measure the time taken for each run of the filter application. The results show that the GPU outperforms the CPU as long as the time of the memory transfer between the CPU and GPU is shorter than the computation time of the CPU. Another indication from the results is the substantial variation in computational performance observed when implementing diverse parallelization strategies. | |
dc.language | eng | |
dc.publisher | NTNU | |
dc.title | Parallelization of Gabor-like Filter Application on Different Hardware Architectures | |
dc.type | Bachelor thesis | |