Mueller, D. Pomeranets, M. Gross, “Optimized Spatial Hashing for Collision Detection of Deformable Objects,” Matthias Müller, “Finding collisions among thousands of objects blazing fast” ・mod高速化:n=2^k なら x % n を x & (N-1) に高速化できる 5
h2)を組み合わせる Prashant Pandey, Michael A. Bender, Alex Conway, Martin Farach-Colton, William Kuszmaul, Guido Tagliavini, and Rob Johnson. 2022. IcebergHT: High Performance Hash Tables Through Stability and Low Associativity. ・h0(x)を計算し、Level1バケットが空いていれば格納 ・Level1 が満杯であれば、h1とh2でLevel2バケットを 2つ選び、より空いている方に格納(偏りが減る) ・Level2 バケットが両方とも満杯であれば チェイン法によるLevel3バケットに格納 12
h2)を組み合わせる ・👍安定(データは勝手に移動しない) ・👍平均バケットアクセス回数が少ない ・👌チェイン法は苦しいが、Level3の使用は非常にレア ※別にLevel3をチェイン法以外にしてもOK → GPU実装でもアリとされている Prashant Pandey, Michael A. Bender, Alex Conway, Martin Farach-Colton, William Kuszmaul, Guido Tagliavini, and Rob Johnson. 2023. IcebergHT: High Performance Hash Tables Through Stability and Low Associativity. ・h0(x)を計算し、Level1バケットが空いていれば格納 ・Level1 が満杯であれば、h1とh2でLevel2バケットを 2つ選び、より空いている方に格納 ・Level2 バケットが両方とも満杯であれば チェイン法によるLevel3バケットに格納 13
Gautron. 2022. Advances in Spatial Hashing: A Pragmatic Approach towards Robust, Real-time Light Transport Simulation. ・2x2x2=8セルを1クラスタとして、まとめて配置する ・ただ、それだと8セルの中で使わなかったセルがメモリを浪費... ・クラスタをオーバーラップさせて配置する ・コヒーレンスを高めつつメモリを削減できる 19
Parallel Hash Maps on GPUs. https://developer.nvidia.com/blog/maximizing-performance-with-massively-parallel-hash-maps-on-gpus/ Daniel Junger et al., WarpDrive: Massively Parallel Hashing on Multi-GPU Nodes Warp内の複数スレッドで単一データを処理させれば、 ballotで最初の空きスロットを1発で見つけられる 20