MegBA A High-Performance and Distributed Library for Large-Scale Bundle Adjustment

基于多GPU的BA算法,有三个创新点:

  • 对于整个BA流程进行了矢量化(Vectorised),使其满足并行化计算的需求。
  • 在多个线程之间进行了合理的工作量分配,同时保证了优化结果的最优性。
  • API和主流的优化库g2o和ceres兼容。在这里插入图片描述

基于SIMD优化的矢量化BA

将BA流程特别是PCG的过程都通过SIMD进行优化。

分布式BA

基于边的工作分配

根据边的数量还将雅可比矩阵分为若干块J = [ J 1 J 2 … J 3 ] T J=[J_1 J_2 \dots J_3]^TJ=[J1J2J3]T,在后续的海森矩阵计算和舒尔补中也体现了这一点。

多线程同步

在矩阵计算和PCG过程中保持同步。

其他优化

GPU显存优化

估计后续矩阵微分需要的显存,避免频繁的显存分配。
在多个GPU线程中共享对于雅可比矩阵等变量的存储。

兼容和可拓展的API

在BA问题的声明和BA求解器的选择上,兼容现有优化库。


版权声明:本文为qq_40268190原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。