SIMD for Collision
Source Entity
Hacker News

The author discusses the implementation of 'wide SIMD' techniques in the Box3D physics engine to accelerate contact solving. By processing multiple contact points simultaneously, this approach offers significant performance advantages over traditional narrow SIMD methods.
Optimizing Physics Engines with Wide SIMD
The pursuit of high-performance physics simulation relies heavily on efficient numerical computation. In the development of the Box3D engine, the transition from standard vector processing to what is termed "wide SIMD" represents a significant evolution in how contact solvers handle complex geometry. By leveraging modern processor architectures to handle multiple work units in parallel, developers can achieve performance gains that were previously inaccessible through traditional optimization techniques.
Wide vs. Narrow SIMD: A Paradigm Shift
To understand this advancement, it is essential to distinguish between the two primary approaches to SIMD (Single Instruction, Multiple Data). "Narrow SIMD" typically involves packing a 3D vector (x, y, z) into a register to perform standard vector mathematics. While useful, the performance benefits of this method are often incremental. Conversely, "wide SIMD" focuses on processing multiple independent work units simultaneously—such as solving four distinct contact points at once—which dramatically increases the throughput of the contact solver.
Leveraging 3D Geometry for Parallelism
In 3D physics environments, unique opportunities for parallelism emerge that are not present in 2D systems. The inherent complexity of 3D convex hulls allows for sophisticated batching strategies. By analyzing the "convex pile" benchmark—a standard test involving the dropping of 5,120 convex hulls—it becomes clear that the overhead of solving these interactions individually is a primary bottleneck. Wide SIMD addresses this by allowing the engine to treat these hulls as part of a larger, unified computational task.
The Impact of Graph Coloring
As noted in previous technical discussions, the integration of graph coloring has been pivotal to these speed improvements. Graph coloring allows the solver to identify independent sets of constraints that can be processed without data dependencies, creating the perfect foundation for wide SIMD implementation. This combination ensures that the CPU remains saturated with useful work, minimizing idle cycles and reducing the time spent on collision resolution.
Future Implications for Simulation
As physics engines like Box3D continue to iterate, the shift toward wide SIMD suggests a future where high-fidelity simulations can run at significantly higher frame rates or with much greater geometric density. This approach not only optimizes current hardware utilization but also sets a blueprint for future engine development where parallelization is prioritized at the architectural level. By focusing on batching work units rather than just vector math, developers are effectively unlocking more "compute density" per clock cycle.
Conclusion
The transition to wide SIMD in Box3D highlights a sophisticated understanding of modern hardware capabilities. By moving away from narrow, vector-centric optimizations toward batch-processing multiple contact points, the engine achieves a level of efficiency that is critical for real-time physics. This methodology serves as a compelling example of how low-level architectural optimizations can drive substantial improvements in high-level simulation performance.