Institutional Repository
Technical University of Crete
EN  |  EL

Search

Browse

My Space

Modeling and design of “Projected Gauss-Seidel” algorithm in FPGA

Toupas Petros

Full record


URI: http://purl.tuc.gr/dl/dias/61E099BC-F3BC-4D08-9051-523B80207667
Year 2018
Type of Item Diploma Work
License
Details
Bibliographic Citation Petros Toupas, "Modeling and design of “Projected Gauss-Seidel” algorithm in FPGA", Diploma Work, School of Electrical and Computer Engineering, Technical University of Crete, Chania, Greece, 2018 https://doi.org/10.26233/heallink.tuc.79074
Appears in Collections

Summary

Over the past years, physics engines were widely used in the industry of video games, computer graphics, and films. Their main goal is to simulate the motions of objects as if they were obeying real-world physics rules. The input to a physics engine is a collection of objects (rigid bodies) with their properties and a collection of forces acting on those bodies. Rigid bodies are objects that do not deform when they collide and rigid body dynamics is the study of the motion of one or several rigid bodies. This input is being processed by performing a certain number of simulation steps which produce the updated properties for each object in the output. The complexity of the modern games is rapidly increasing, so does the computational cost of the simulation the physics engines must accomplish. The use of GPGPU (General-Purpose computing on Graphics Processing Units) can help us overcome the need for high computational requirements by exploiting the parallel processing a GPU can provide. In this thesis, we are going to use FPGA instead of GPU since we can still exploit the parallel processing and furthermore we can achieve much better energy efficiency in comparison with GPU. The physics engine we are working on is Bullet which has already implemented a high computational costgame scene with many rigid bodies (38880) in GPU with the use of the OpenCL library. Our implementation of the same game scene in Xilinx UltraScale+ ZCU102 with the use of Vivado HLS and C++, achieving 7.65x to 9.65x speedups over CPU, while these numbers change to 1.96x to 2.48x speedups and 50x energy efficiency when compared to GPU (NVIDIA GeForce GTX 980).

Available Files

Services

Statistics