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) 功能:加速(车速自增)减速(车速自减)修改车牌号,查询车的载重量。 编写两个构造方法:一个没有(代码片段