Game performance sucks, and one attempt at fixing it
Authors
Ibsen, Carsten Schroll ; Voldby, Frederik Palmelund
Term
4. term
Education
Publication year
2019
Pages
96
Abstract
Denne afhandling undersøger aggregator, en hukommelsesisolationsmodel inspireret af software-transaktionel hukommelse (STM), som et alternativ til låsebaseret parallelisme i spilmotorer. Vi udvikler tre spilmotorer: en sekventiel, en parallel med låse og en parallel med aggregator, og sammenligner dem i tre typer tests: overhead på én kerne, belastning (workload) og håndtering af kritiske sektioner (kodeafsnit der kræver eksklusiv adgang). Implementeringen er lavet i C++ med SFML som grafikbibliotek, og testene køres på fire forskellige systemer for at vurdere ydeevne på tværs af hardware. Resultaterne viser, at aggregatoren har potentiale: den var 4,6 gange hurtigere end den sekventielle motor, men stadig langsommere end den låsebaserede parallelle motor, som var 7 gange hurtigere end sekventiel. Der er tegn på, at aggregatoren kan yde bedre med forbedringer i implementeringen.
This thesis examines the aggregator, a memory isolation model inspired by software transactional memory (STM), as an alternative to lock-based parallelism in game engines. We build three engines—a sequential version, a lock-based parallel version, and a parallel version using the aggregator—and compare them with three tests: single-core overhead, workload scaling, and handling of critical regions (parts of the code that require exclusive access). The engines are implemented in C++ with SFML for graphics, and evaluated on four different systems to see how they perform across hardware. Results show the aggregator has potential: it was 4.6 times faster than the sequential engine but still slower than the lock-based parallel engine, which was 7 times faster than sequential. There is room for the aggregator to improve with changes to the implementation.
[This abstract was generated with the help of AI]
Keywords
software ; stm ; aggregator ; game engine
Documents
