Our client was an organically grown SME working on engineering planning applications. Their founder was enthusiastic about using GPUs to accelerate physics simulations that were part of their pipeline, so he ordered a proof-of-concept to evaluate the speed-up that could be achieved. Significant performance gains resulted in not only an improvement of their existing solutions but also the realisation of entirely new applications.
First, our team analysed the relevant literature and designed a novel algorithm that was meant to be inherently more efficient than the state-of-the-art. Such results were possible because a sufficiently close approximation of the brute-force simulation was very viable, inspired by techniques that our engineers knew from different problem domains. Later, several iterations of the original concept were developed to adopt the expanding requirements, and eventually, most of them were implemented on GPUs, too. TechnoLynx provided a family of algorithms with future-proofed design and great potential for further improvements depending on the strategic direction our client is willing to take with an on-demand level of readiness and optimisation.
Despite being an R&D problem in nature, the project successfully incorporated commercial feedback and a few scope changes in an agile fashion. As a result of such changes, utility functions have also been developed alongside the simulation core.
For this project, we almost exclusively relied on C++, CUDA and CMake, although for fast prototyping, we occasionally used Python/NumPy as well. We used best practice task management techniques to achieve a high level of multi-core utilisation and optimised the feeding of the GPUs, too. The code drops were compliant with different operating systems and compilers.
Finally, our team delivered implementations of a new simulation core for our client, who was satisfied with its runtime performance, proving the applicability of GPUs in this domain. The new simulation core could model the required physical phenomena visually pleasantly, enabling an improved UX alongside new features compared to the baseline. Later, the project proceeded to a higher readiness level; hence, rudimentary testing and utility tools were also developed on an on-demand basis, enabling the integration of the new core into the client’s existing system. Several current and recent use cases have been evaluated using these tools, and areas of future improvement have also been identified.