Skip to content

[Stacked] Adds GLOBE Model updates for 3D + Dual Tree Traversal Acceleration#1

Open
peterdsharpe wants to merge 2 commits intopsharpe/add-mesh-improvements-for-GLOBE-3Dfrom
psharpe/stacked-add-GLOBE-3D-DTT-model-changes
Open

[Stacked] Adds GLOBE Model updates for 3D + Dual Tree Traversal Acceleration#1
peterdsharpe wants to merge 2 commits intopsharpe/add-mesh-improvements-for-GLOBE-3Dfrom
psharpe/stacked-add-GLOBE-3D-DTT-model-changes

Conversation

@peterdsharpe
Copy link
Owner

PhysicsNeMo Pull Request

Description

This PR includes:

  • GLOBE model architecture modifications that fundamentally break the previous O(n^2) bottleneck, enabling scaling to large industrial problems. Scaling is now (both theoretically and empirically verified) to be O(n), which is very exciting to see for an all-to-all interaction problem. This is performed by doing a dual-tree variant of classical Barnes-Hut (or Fast-Multipole-Method-like) hierarchical acceleration by exploiting spatial locality. Normally Barnes-Hut would get you to O(n log n), but it turns out that by putting both the sources AND the targets in trees (a "dual tree traversal" approach), you can make it so that the interactions are no longer the bottleneck at all. This leaves O(n) operations as the bottleneck.
    • This dual-tree algorithm is implemented using a variant of a Linear Bounding Volume Hierarchy (LBVH), which is a nice way to make this more GPU-friendly (basically, this allows each layer of the tree (or in the case of dual tree traversal, each combination of layers from both trees) to coalesce into a single kernel launch, rather than doing a full tree traversal for every interaction.

Adds a theory doc about the dual tree traversal approach at ./physicsnemo/experimental/models/globe/hierarchical_acceleration.md.

This PR is:

Checklist

Dependencies

Review Process

All PRs are reviewed by the PhysicsNeMo team before merging.

Depending on which files are changed, GitHub may automatically assign a maintainer for review.

We are also testing AI-based code review tools (e.g., Greptile), which may add automated comments with a confidence score.
This score reflects the AI’s assessment of merge readiness and is not a qualitative judgment of your work, nor is
it an indication that the PR will be accepted / rejected.

AI-generated feedback should be reviewed critically for usefulness.
You are not required to respond to every AI comment, but they are intended to help both authors and reviewers.
Please react to Greptile comments with 👍 or 👎 to provide feedback on their accuracy.

…uations

- Introduced a new `ClusterTree` class for spatial decomposition, enabling efficient dual-tree traversal.
- Updated `GLOBE` model to utilize the new clustering mechanism, significantly reducing kernel evaluation complexity.
- Enhanced `CHANGELOG.md` to reflect the addition of the dual-tree algorithm and its impact on performance.
- Added comprehensive tests for the `BarnesHutKernel` and `ClusterTree` functionalities to ensure correctness and performance.
- Refactored existing kernel evaluation methods to integrate the new dual-tree approach, improving overall efficiency.

This update is crucial for handling large mesh scales effectively, particularly in scenarios with 800k+ faces.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant