HackerNews

AnukariのCPU(第2部:CPU最適化)

Anukari on the CPU (part 2: CPU optimization)

https://anukari.com/blog/devlog/anukari-on-the-cpu-part-2-cpu-optimization


このブログ記事では、Anukari 3D物理シンセサイザーのCPU実装における最適化の過程が説明されています。著者は、GPUコードをCPUで実行することで5倍の遅延を発見し、さらに最適化を進めました。最初のアプローチとして、SIMD命令を用いたベクトル化を行い、float3ベクトルの数値演算を効率化しました。特に32ビットのfloat3を32バイト境界に整列させ、SSEやNEONの命令を使用して基本的な算術演算を実装しました。この最適化により、CPU実装の速度が大幅に向上しましたが、GPU版には及びませんでした。さらに、著者はCPUに特化した物理シミュレーションの設計が価値があると認識し、GPUコードのメモリアクセスパターンがCPUに最適化されていない理由についても触れています。最終的には、CPUの特性に応じた新しいアプローチへの移行が計画されています。