Wide SIMD Accelerates Complex Collision Detection in Box3D
SIMD for Collision

I explored how wide SIMD techniques significantly boost performance in Box3D's collision detection, specifically for complex convex hulls. By processing multiple edge tests simultaneously, we achieved over twice the speed of scalar code in our convex pile benchmark. While simple shapes like boxes see little gain, this optimization is crucial for handling detailed geometry efficiently without relying on GJK or EPA algorithms.
EPA is essentially an algorithm for computing a convex hull, and the input data can be flat slivers. That is a challenging scenario for convex hull computation. Hence the need for a second fallback.
- grg0
As a SIMD noob, one thing that wasn't obvious to me is that SIMD can also speed you up if your mem throughput is underutilized by having the CPU load more data per instruction. It isn't just about compute speedups, which is typically what it's advertised for. Using perf on Linux has been very educational for me to get an intuition for modern CPU performance.
- brcmthrowaway
No support for any ARM vector instructions.. thats horrible