当前位置 博文首页 > lovely_yoshino的博客:SLAM各种并行加速方法

    lovely_yoshino的博客:SLAM各种并行加速方法

    作者:[db:作者] 时间:2021-09-16 22:28

    前言

    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单独执行时变慢。

    …详情请参照古月居

    cs
    下一篇:没有了