Large-scale Bundle Adjustment (BA) requires massive memory and computation resources which are difficult to be fulfilled by existing BA libraries. In this paper, we propose MegBA, a GPU-based distributed BA library. MegBA can provide massive aggregated memory by automatically partitioning large BA problems, and assigning the solvers of sub-problems to parallel nodes. The parallel solvers adopt distributed Precondition Conjugate Gradient and distributed Schur Elimination, so that an effective solution, which can match the precision of those computed by a single node, can be efficiently computed. To accelerate BA computation, we implement end-to-end BA computation using high-performance primitives available on commodity GPUs. MegBA exposes easy-to-use APIs that are compatible with existing popular BA libraries. Experiments show that MegBA can significantly outperform state-of-the-art BA libraries: Ceres (41.45$\times$), RootBA (64.576$\times$) and DeepLM (6.769$\times$) in several large-scale BA benchmarks. The code of MegBA is available at https://github.com/MegviiRobot/MegBA.
翻译:大型捆绑调整(BA)要求大量记忆和计算资源,而现有的BA图书馆则难以完成。在本文中,我们提议MegBA,这是一个以GPU为基础的分布式BA图书馆。MegBA可以自动分割大型BA问题,将次级问题的解决者分配到平行的节点。平行解决者采用分布式的Pretiment Conjugate Gragnition and small Schur Eremotion(BA),这样可以有效地计算出一个有效的解决方案,与单个节点计算出的精确度相匹配。为了加速BA的计算,我们采用在商品GPU上可以使用的高性能原始元素进行端到端BA计算。MegBA暴露了与现有流行BA图书馆兼容的容易使用的API。实验表明,MegBA可以大大超越目前先进的BA图书馆:Ceres (41.45美元\timetime $)、FrootBA (64.576美元\ times) 和 DeepLM(6.69\timemets $) 几个) 几个大型BABA基准基准基准。MBA的代码可在 httpsmBA://M/Meggregreg/M/MOBA/MebA/M./M.