SLAM各种并行加速方法

Posted Hermit_Rabbit

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SLAM各种并行加速方法相关的知识,希望对你有一定的参考价值。

前言

CPU并行加速

CPU并行加速的本质就是通过硬件并发(hardware concurrency)的形式来实现。这种的操作方式是通过单个进程里多线程,从而实现共享地址空间,全局变量,指针,引用。但是这种方式相对而言更加传统,但是同时更加具有普适性。

其中操作是使用以pthread为代表的多线程并行加速

pthread

这是一个pthread的简单示例代码。

class helloFromObject{
public:
    void operator()() const{
        std::cout << "Hello, My Second thread!" << std::endl;
    }
};

int main() {
    std::cout << "Hello, Coconut Cat!" << std::endl;
    std::thread bthread((helloFromObject()));
    bthread.join();
    return 0;
}

我们可以发现pthread这种多线程加速v-slam场景下都有着充分的应用

OpenMP

openmp作为另一种CPU提速方式,在SLAM的特征提取中拥有比较良好的加速代码。当然thread对于openmp还是有一定的影响的,每个thread分配给omp的线程可能减小或者是在thread里面继续调用omp再开线程会带来更大的成本,导致omp单独执行时变慢。

…详情请参照古月居

以上是关于SLAM各种并行加速方法的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu 20.04+ORB_SLAM3 安装并行全记录(无坑版)

OpenGL 之 Compute Shader(通用计算并行加速)

开放式加速器 | Fortran 90:并行化嵌套 DO 循环的最佳方法是啥?

测量随机算法中的并行加速

创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)减速(车速自减)修改车牌号,查询车的载重量。 编写两个构造方法:一个没有(代码片段

基于intel机器人控制器,支持slam,激光雷达和AI加速