=Paper=
{{Paper
|id=Vol-2267/410-414-paper-78
|storemode=property
|title=Accelerating real-time ship motion simulations using general purpose GPU computations
|pdfUrl=https://ceur-ws.org/Vol-2267/410-414-paper-78.pdf
|volume=Vol-2267
|authors=Ivan Petriakov,Ivan Gankevich,Vladimir Korkhov,Degtyarev Alexander
}}
==Accelerating real-time ship motion simulations using general purpose GPU computations==
Proceedings of the VIII International Conference "Distributed Computing and Grid-technologies in Science and Education" (GRID 2018), Dubna, Moscow region, Russia, September 10 - 14, 2018 ACCELERATING REAL-TIME SHIP MOTION SIMULATIONS USING GENERAL PURPOSE GPU COMPUTATIONS Ivan Petriakov a, Ivan Gankevich b, Vladimir Korkhov c, Degtyarev Alexander d Saint Petersburg State University E-mail: a st049350@student.spbu.ru, b i.gankevich@spbu.ru, c v.korkhov@spbu.ru, d a.degtyarev@spbu.ru Software suites for ship simulations are typically used for statistical studies of ship dynamics, but also as a simulator for training ship crew in dangerous situations. One problem that arises during training is speeding-up a part of the session which does not involve actions from the crew. The aim of the study reported here is to accelerate solution of ship motion equations using general purpose computations on GPU. These equations describe dynamics of ship manoeuvring in wavy sea surface, and are central to the simulator programme. The equations are solved numerically via Runge—Kutta—Fehlberg method. Due to high number of floating point operations, computation on GPU achieves considerable speed-up over CPU. High performance solution allows to shorten training sessions and make them more efficient, but also beneficial for statistical studies as it reduces simulation time. Keywords: GPGPU, OpenCL, ship dynamics, ocean waves, maritime simulator, virtual testbed © 2018 Ivan Petriakov, Ivan Gankevich, Vladimir Korkhov, Degtyarev Alexander 410 Proceedings of the VIII International Conference "Distributed Computing and Grid-technologies in Science and Education" (GRID 2018), Dubna, Moscow region, Russia, September 10 - 14, 2018 1. Introduction This work is carried out within framework of the Virtual testbed project which aims to create a decision support system for simulating, predicting and preventing dangerous situations caused by physical phenomena that may occur with the ship in sea way. The situations include: the flooding of the compartment, the fire in the compartment, the loss of ship stability, large ocean waves and many others. The main feature of the project is the usage of general purpose GPU computations to improve performance. Other key feature is realistic marine objects. These are provided by IGES format, which is vendor-neutral standard for exchanging object models between CAD systems. Finally, novel wavy surface model used to simulate ocean waves [7], but at this stage it is not included in the project yet. On-the-shore decision support system receives data in real-time from ships in the sea, simulates ship motions; to be enable to make decisions the system have to simulate ship motions in real-time. The technology that provides real-time performance is general purpose computations on GPUs. Most of the computations in the programme involve large number of transcendental mathematical functions, linear access to dense arrays and matrices, and no complex information dependencies between computation stages. It allows us to use OpenCL framework as acceleration tool. Simply rewriting source code in OpenCL is often not enough. We need to adapt algorithms and transform mathematical formulae to make them efficient for GPU. The new mathematical formulae for velocity potential computation was derived specifically for this use case. It uses fast Fourier transforms to achieve high performance on GPU and is numerically equivalent to the known formula from linear wave theory. Multidimensional derivatives is another algorithm which requires completely different OpenCL implementation. We plan to write code generator that produces optimised OpenCL programme for each particular derivative dimension and array shape. Finally, geometric transformations (rotation and translation) are easy to do in OpenCL with lots of built-in vector functions. 2. Related work The feature that distinguishes the Virtual testbed from other similar projects is that it is not only a ship motion simulator, but also a decision support system. This results in hard requirements on performance which are not present in other simulators. Often they are either research tools with no no performance requirements , or simulators for computer games or movies which may trade accuracy of describing physical phenomena to improve performance. The Virtual testbed needs both accuracy and performance, and this is the main difference that distinguishes it from similar programmes. In [1] the authors develop a method for performing ship motion simulations based on physical theories with simplifications that are necessary for real-time performance. These simplifications include decomposition of the waves into head and transverse to speed-up calculation of wave excitation forces. The authors mention that using velocity potential theory to compute these forces is impractical to implement in real-time applications. Contrary to this statement we compute wave excitation forces by computing velocity potentials. The reason that this approach works in real-time is twofold. First, we use explicit formula based on Fourier transforms which is fast to compute compared to implicit formulae that slower and needs numerical methods to compute. Second, we use GPU to accelerate computations of Fourier transforms. In [2] the authors use response amplitude operators to simulate ship motions in real-time. To increase performance they also use fast Fourier transforms, but compute everything on CPU. Finally, in [3] the authors study how GPU can be used to simulate ocean surface. In the Virtual testbed GPU is used to improve performance of wavy surface generation, velocity potential and wave pressure calculation. 3. Computation of external forces on GPU The governing system of equations of ship motion is derived from the conservation laws for mass and moment of inertia (second Newton's law), and are described in detail in various books on 411 Proceedings of the VIII International Conference "Distributed Computing and Grid-technologies in Science and Education" (GRID 2018), Dubna, Moscow region, Russia, September 10 - 14, 2018 ship dynamics [4,5]. The system of equations is solved numerically using fourth-order Runge— Kutta—Fehlberg method. It is not the numerical method that consumes a lot of resources, but calculation of external forces acting on the ship hull: buoyant force (due to pressure of water displaced by the ship) and wave pressure force (due to ocean wave motion). Since the calculation of these forces consumes most of the time required to render the frame, the code for computing them was rewritten for GPU. 3.1. Velocity potential Assuming that the fluid is incompressible and inviscid, we compute wave pressure from velocity potentials. Velocity potential is determined from the following system of equations. The first is the continuity (or Laplace) equation, the second is the equation of motion (or dynamic boundary condition), the last one is a kinematic boundary condition on the free surface. Since the free surface is known, the second equation becomes an explicit formula for wave pressure, and the problem reduces to finding the velocity potential φ. The system is solved using the Fourier method with some physical and mathematical simplifications. The full solution is written as a convolution of some window function with superposition of wavy surface derivatives. If we use the assumption of small-amplitude waves, the solution is reduced to the solution from the linear wave theory. Convolution is implemented as three Fourier transforms which makes it efficient to compute on GPUs. The formula is suitable for any wavy surface regardless of the mathematical model used to generate it as long as it is physically feasible: the same formula can be used for both plain and irregular waves of arbitrary amplitude. Full derivation of the formula is given in [7]. 3.2. Buoyant force The buoyant force is proportional to the mass of the water displaced by the ship. In order to compute it we decompose ship hull into triangular panels and determine underwater panels. For partially submerged panels we compute their intersection with the water level (assuming that it is a straight line) and consider only submerged part in the later computations. For each panel we compute pressure due to water displacement and pressure due to ocean wave motion. Then the force is simply a vector in the opposite direction of the surface normal to the panel with length proportional to the pressure and panel area: 412 Proceedings of the VIII International Conference "Distributed Computing and Grid-technologies in Science and Education" (GRID 2018), Dubna, Moscow region, Russia, September 10 - 14, 2018 The total buoyant force is the sum of all individual forces acting on each submerged panel. If one omits velocity potential terms, the formula becomes the Archimedes law for a single material point. This algorithm has linear memory access pattern and involves a lot of floating point operations, as well as vector arithmetic, which makes it efficient to implement on GPU. 4. Evaluation The algorithms described in the previous section were implemented using OpenMP and OpenCL, and using both CPU and GPU significantly improves performance compared to using only CPU. We can see the performance difference between CPU and GPU implementation on the next graphs. All tests were run on computer with AMD FX-8370 CPU and GeForce GTX 1060 6GB GPU. Figure 1. Velocity potential computation Figure 2. External force computation performance performance The first experiment was to measure OpenMP implementation of velocity computation and compare execution time with OpenCL implementation. As was mentioned, it uses three fast Fourier transforms, that can be done very effectively on GPU [6]. So, thanks to this ability, OpenCL has better performance. This fact is illustrated in Figure 1 that shows how performance scales with the number of grid points. The next test is similar to the previous one. We run the testbed with different frameworks to compare time to compute pressures on ship hull. The wave pressure formula is easy to be parallelized with OpenCL. Performance measurements are presented in Figure 2. 5. Discussion We implement and test everything on CPU with OpenMP, and rewrite the programme hot- spots in OpenCL. This allowed us to achieve approximately 30 frames per second on the target machine. However, there is a room for improvement. We compute velocity potential derivatives on the CPU which involves a lot of data copying between CPU and GPU memory. Also, we store ship hull vertices and indices in CPU memory which causes even more data copying. In the future, we plan to eliminate data copying overhead by storing everything in GPU memory and computing derivatives using optimised OpenCL kernels. In similar studies the authors often apply simplifications to the ship motion equations or pressure computations formulae to achieve real-time performance. We choose to optimise only computational part of the problem by offloading programme hot-spots to GPU. To optimise mathematical part we use explicit formula for velocity potentials which works for any physically feasible wavy surface. Thus, there is no restriction on mathematical model for ocean waves that can be used in our programme. 413 Proceedings of the VIII International Conference "Distributed Computing and Grid-technologies in Science and Education" (GRID 2018), Dubna, Moscow region, Russia, September 10 - 14, 2018 6. Conclusion and future work New implementation involves a lot of data copying between CPU and GPU memory, which slowed the application a little bit. The next goal is to rewrite everything in OpenCL. This will further speed-up computations and remove expensive data transfers. Acknowledgements The research was carried out within framework of grant of Saint Petersburg State University no. 26520170. References [1] Chen X. et al. Real-time simulation of ship motions in waves //International Symposium on Visual Computing. – Springer, Berlin, Heidelberg, 2012. – С. 71-80. [2] Varela J. M., Soares C. G. Interactive Simulation of Ship Motions in Random Seas based on Real Wave Spectra //GRAPP. – 2011. – С. 235-244. [3] Ma X., Chen Z., Shi G. Real-time ocean wave motion simulation based on statistic model and GPU programming //Information Science and Engineering (ICISE), 2010 2nd International Conference on. – IEEE, 2010. – С. 3876-3880. [4] Matusiak, J. Dynamics of a rigid ship //Helsinki: Aalto University, 2013 [5] Kornev N. Ship dynamics in waves //Rostock: University of Rostock. – 2011. [6] Volkov V., Kazian B. Fitting FFT onto the G80 architecture // University of California, Berkeley. – 2008. – Т. 40. [7] Gankevich I., Degtyarev A. (2018) Simulation of Standing and Propagating Sea Waves with Three-Dimensional ARMA Model. In: Velarde M., Tarakanov R., Marchenko A. (eds) The Ocean in Motion. Springer Oceanography. Springer, Cham. 414