自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 CUDA工作记录3

当不同block同时读写一个全局变量时,很容易出现前面线程修改而后面线程不知道的情况,这时候的计算结果往往是错误的,因为cuda为了加速计算会把一些内存较小的值存在L1缓存里面,第一个线程计算后写入的值不会更新其他block的线程的L1缓存。有时候这里会出现死锁,我分析是因为第一个线程lock的解锁没有同步到其他的线程上,导致其它线程mark的值一直为1,无法跳出while循环。等,cuda中的原子操作是作用在L2缓存上的,会直接绕过L1。另外还有volatile关键字,这个也会让变量的读写绕过L1。

2024-01-22 19:44:44 363

原创 cuda工作记录2

gpu每个线程的寄存器数量和空间是有限的,当遇到函数内有很多临时变量时会直接崩,这时候使用函数增加栈空间。

2023-09-19 14:51:43 79 1

原创 写cuda代码的工作记录

这段代码里面的do …后面一定不能写return语句,不然就会卡死。只能continue;然后在函数末尾写return;至于为什么我不知道。记录一下工作中cuda编程遇到的坑。

2023-08-11 15:44:39 72 1

原创 记录一下std::async的一些相关知识

上述例子中的第二个线程就会在get()处等待第一个线程中的promise使用set_value(int)设置值后再开始下面代码的执行,这就实现了线程间的通信功能,工作中自己写多线程thread用的还是多一点,有天在github上看到c++线程池的实现用的是std::async,就查了下相关知识记录一下。async的返回值会存在std::future里面,而这里只记录下常用的功能。顺便说下std::packaged_task,这个就相当于多了个future返回值的std::function,如下。

2023-04-11 23:41:23 201

原创 八叉树实现的一些思考

当时的想法是写一个base结构体,然后用branch和leaf去继承,不过写的时候发现为了实现遍历他们要互相包含对方的指针,base指针是操作不了子类的私有属性的,后来就不了了之了,这几天又想了一下是不是可以用union解决呢。用level记录节点的深度来判断是leaf还是branch,好像pcl就是这么干的。实习的时候要优化八叉树,当时有个想法就是把八叉树的枝叶节点分开,因为枝节点要存八个指针而叶节点要存法向量之类的东西,而这些东西是不通用的,当点量达到几千万时会浪费几个g的内存。

2023-04-07 15:03:03 68

原创 c++回调函数的小总结

目前在多线程里使用较多,然后就是算法部和软件部代码实时通信也会用到。

2023-04-06 18:34:20 85

原创 关于一些多线程的坑

一些记录

2022-11-23 11:36:16 112

原创 在头文件实现函数的重定义问题

头文件实现函数重定义的五种解决方法

2022-08-19 15:49:21 1362

原创 对于SGM算法代价聚合的理解

这个聚合函数会给人一种错觉,假设求视差d下的p点的聚合代价就得求前一个点视差d-1,d,d+1…的聚合代价,然后又得求前前一个点的聚合代价。这样求下去就是指数级别的运算。实际上这里需要利用动态规划的思想,从第一个点开始计算而不是简单的递归。比如我们的视差范围d是5-10。聚合路径是从左到右,如下图。我们从a点开始计算,利用初始代价即可,然后比较出最小值,假设d=6时代价值最小。则b点的聚合代价就是L1=Cost(d(a)=6)+Cost(d(b)=5)+P1,L2=Cost(d(a)=6)+Cost.

2022-04-04 15:20:27 988

原创 VisualStudio2019运行release版本代码时_Container_base12::_Orphan_all引发了异常: 读取访问权限冲突

_Container_base12::_Orphan_all引发了异常

2021-12-22 01:55:52 1055

原创 LNK2019 无法解析的外部符号 main,该符号在函数 “int __cdecl invoke_main(void)“

今天起床windows自动更新后,发现前几天还能运行的代码报错,找了一下后把vs的windows sdk版本返回去就解决了

2021-10-03 14:50:15 783

原创 ISEF滤波

用opencv随便写了个ISEF滤波ISEF.cpp#include <iostream>#include"ISEF.h"using namespace cv;using namespace std;//该文件将原图施加ISEF滤波后输出int main(){ int cols, rows; float a = 0.5;//滤波参数,0<a<1,a越大定位精度越高,但抗干扰能力越弱 string imagedir = "D:/vs project/ISEF/*.

2021-09-29 15:12:07 180

win10+openmvg+openmvs+VS2019

包含所有要用到库的压缩包和安装包,以及需要的小文件和一份安装文档

2021-06-22

openMVS-master.zip

github下载的openMVS的压缩包

2021-03-14

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除