Analysing Deep Halos on Modern GPUs
Master thesis
Permanent lenke
https://hdl.handle.net/11250/3113657Utgivelsesdato
2023Metadata
Vis full innførselSamlinger
Sammendrag
Stensilalgoritmer er en familie av algoritmer som oppdaterer punkter i et flerdi-mensjonalt datanett med naboverdiene som vekter. De er beregningsintensive ogbrukes i mange domener, og utgjør dermed en betydelig del av arbeidsbelastnin-gen innen høy-ytelses databehandling.
Denne avhandlingen presenterer et verktøy for benchmarking av 2D stensil-kalkulasjoner på GPUer. Arbeidet bygger på A. Hammer’s arbeid med flerkjernede3D-stensiler. Vår implementasjon bruker MPI og inkluderer tre forskjellige op-timaliseringsteknikker: dype haloer, synkroniserte kantutvekslinger og overlap-pende kommunikasjon og beregning.
Dype haloer grupperer kommunikasjon sammen for å redusere overhead, menmed økt beregning per iterasjon som en avveining. Denne optimaliseringen forbedrerytelsen når halo-størrelsen øker, inntil reduksjonen i kommunikasjonstid blir over-skygget av økningen i beregningstid.
Vi viser at overlappende kommunikasjon og beregning er en svært effektivoptimalisering som forbedrer ytelsen i nesten alle tilfeller, spesielt for større prob-lemstørrelser. På de største rutenettene som ble testet, skjulte overlappende kom-munikasjon og beregning 83% av den parallelle kommunikasjonen.
Synkronisert kantutvekslingsoptimaliseringen fungerer som forventet, entenmed eller uten samspill med de andre optimaliseringene. Den asynkrone versjonenvår viser evnen til overlapp av kommunikasjon og beregning optimaliseringen tilå redusere effekten av uventede forsinkelser i kommunikasjon mellom noder vedlave halo-dybder.
Totalt sett gir disse tre parallelle optimaliseringene betydelig ytelsesforbedringi stensilkalkulasjoner på GPUer med MPI-kommunikasjon. Merk imidlertid at ytelses-gevinstene som oppnås med disse optimaliseringene avhenger i stor grad av prob-lemstørrelsen og maskinvarekonfigurasjonen. På den største problemstørrelsensom ble testet, ga alle tre optimaliseringene i kombinasjon en hastighetsøkningpå 1,09 når man brukte noder med V100 GPUer og 1,17 hastighetsøkning nårman brukte noder med A100 GPUer.
Våre resultater gir innsikt for beslutningstakere når de vurderer implementerin-gen av disse optimaliseringene i ulike problemområder. Forslag til videre arbeidmed dette benchmark-verktøyet er også inkludert. Stencils are a family of algorithms that update points of a multi-dimensionaldata mesh with the neighbouring values as inputs. They are compute-intensiveand used in many domains and thus account for a significant portion of High-Performance Computing workloads.
This thesis presents a benchmarking tool for 2D stencil computations on GPUs.Our work builds on A. Hammer´ s work on Multicore 3D stencils. Our implemen-tation uses MPI, and includes three different optimisation techniques: Deep halos,Synchronous halo exchanges, and overlapping communication and computation.Deep halos group communication together to reduce overhead traded off withincreased computation per iteration. This optimisation improves performance asthe halo size increases until the decrease in communication time is eclipsed by theincrease in computation time.
We show that overlapping communication and computation is a highly im-pactful optimisation that improves performance over our serial version in almostall cases, particularly for larger problem sizes. On the largest grid sizes tested,overlapping communication and computation hides 83% of the parallel commu-nication.
The synchronous halo exchange optimisation works as expected with or with-out interacting with the other optimisations. Our asynchronous version highlightsthe ability to overlap communication and computation optimisation to mitigatethe impact of unexpected inter-node communication slowdowns at low halo depths.Overall, these three parallel optimisations offer significant performance im-provement in stencil computations on GPUs with MPI communication.
Note, however, that the performance gains achieved with these optimisationsdepend highly on the problem size and hardware configuration. On the largestproblem size tested, all three optimisations in conjunction gave a 1.09 speedupwhen using nodes with V100 GPUs and a 1.17 speedup when using nodes withA100 GPUs.
Our results provide insight for decision-makers when considering the imple-mentation of these optimisations given different problem domains. Suggestionsfor future work on this benchmarking tool is also included.