Skip to content

EPA Algorithm in C++, faster EPA CUDA#69

Merged
MattiaMontanari merged 13 commits intoMattiaMontanari:masterfrom
vismaychuriwala:master
Apr 7, 2026
Merged

EPA Algorithm in C++, faster EPA CUDA#69
MattiaMontanari merged 13 commits intoMattiaMontanari:masterfrom
vismaychuriwala:master

Conversation

@vismaychuriwala
Copy link
Copy Markdown
Contributor

@vismaychuriwala vismaychuriwala commented Mar 27, 2026

This update adds a CPU EPA algorithm and parallelizes aspects of the GPU EPA versions, updating API for ease of use and python wrapper updates.

Features

  • Added a new EPA algorithm in C++ in \scalar alongside the current GJK.
  • A much faster (~10x) EPA kernel in CUDA using shared memory and parallelized face creation.
  • Streamlined API for CUDA, no longer using separate arrays for witness points, updates witness points in simplex in place.
  • New indexed API for CUDA EPA.
  • Reworked GPU python wrapper to work primarily using indexed GPU batches (Allocate and upload once, query multiple times at different indices for both GJK and EPA).
  • Updated tests to check consistency in CPU-GPU versions (GJK+EPA), added simple EPA tests.

@MattiaMontanari MattiaMontanari merged commit 913a7ed into MattiaMontanari:master Apr 7, 2026
6 checks passed
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vismaychuriwala nice API!

Copy link
Copy Markdown
Owner

@MattiaMontanari MattiaMontanari left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @vismaychuriwala !

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.

2 participants