Sparse Fluid Simulation via CPU Prediction and Virtual Table Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Real-time fluid simulation in games faces memory and computational complexity issues due to the 'N-order' problem, especially at higher resolutions, as conventional methods allocate and compute across the full grid without efficiently handling sparse fluid simulations.

Innovation Solution

The Latency-Resistant Sparse Simulation (LRSS) technique uses a CPU-based prediction algorithm to determine the list of bricks occupied by a fluid-like object in a future frame, updating a virtual table that maps GPU memory to tiled resources, thereby avoiding CPU-GPU synchronization points and optimizing memory usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional full-grid fluid simulation is used, then complete coverage of simulation space is achieved, but memory requirements and computational complexity become unmanageable at higher resolutions

Engineering Contradiction:
Improvesimulation completenessVSAvoidmemory requirements
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The simulation grid is divided into multiple bricks (spatial partitions), and only the bricks containing fluid are actively simulated and stored. This segmentation allows the system to handle large simulation spaces by focusing computational resources only on occupied regions rather than the entire grid.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs simulation only on the portion of the grid that is actually occupied by fluid, rather than computing the entire grid. By identifying and processing only the necessary bricks containing fluid data, computational complexity and memory requirements are significantly reduced while maintaining simulation quality in relevant areas.

Inventive Principle:
Principle #16Partial or excessive action

2Device complexity

If CPU-based prediction algorithm is used to determine future frame bricks, then memory consumption is reduced, but CPU-GPU synchronization points are introduced

Engineering Contradiction:
Improvememory consumptionVSAvoidsynchronization overhead
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The CPU predicts which bricks will be occupied in future frames in advance, before the GPU simulation executes. This preliminary prediction allows the system to pre-allocate memory and prepare data structures, reducing the need for synchronization during the actual simulation execution and minimizing performance bottlenecks.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If sparse volume simulation technique is used, then rendering speed is improved, but complexity of managing virtual table mappings increases

Engineering Contradiction:
Improverendering speedVSAvoidvirtual table management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

A virtual table is introduced as an intermediary data structure that maps GPU memory addresses to the actual brick data in system memory. This virtual table abstraction layer simplifies memory management by providing a uniform interface for accessing sparse brick data, while enabling efficient memory utilization through selective allocation only for occupied bricks.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9940689B2Latency-resistant sparse simulation technique, system and method
Publication Date: 2018.04.10 NVIDIA CORP
  • US9940689B2 patent drawing
  • US9940689B2 patent drawing
  • US9940689B2 patent drawing

AI summary

A Central Processing Unit (CPU), system and method of performing a Graphics Processing Unit (GPU) simulation of a fluid-like object in a grid-based simulation space are provided. In one embodiment, the method includes: (1) determining, by a CPU, a list of bricks in the simulation space that the fluid-like object would occupy in a future frame based on simulation data of a current frame and (2) updating, based on the list, a virtual table that maps portions of a GPU memory to tiled resources corresponding to the bricks before a simulation of said future frame.