
C/C++
文章平均质量分 54
Arnold-FY-Chen
On the way of AI spiritual practice...
展开
-
CMake编译过程中出现Configuring incomplete的原因
这种非预期包含调用导致整个编译异常退出,从而Configuring incomplete发生了,Makefile没生成,将发生错误的这个库里除include和lib以外的库都删掉,然后编译整个项目就顺利完成了。原创 2023-01-10 19:22:39 · 13871 阅读 · 2 评论 -
CUDA中实现多线程访问公共临界区的问题
CUDA本来是用于多线程并发计算的,除了device、stream、event、thread级别的synchronize外,没有提供现成的锁的API实现,需要借助atomicCAS()自己写个简单实现。另外加锁功能不能用于同一个block里的线程之间,否则程序会卡死(因为同一个block里的线程属于同一个warp的线程在同一个SM上执行时同一时间周期内执行的指令是相同的!),也就是说要实现多线程并发访问时对公共临界资源的加锁,那么所有的线程必须分布在不同的block里。原创 2022-11-27 23:39:59 · 707 阅读 · 0 评论 -
使用memcpy()给C++ 多维vector的快速拷贝赋值问题
网上搜了很久没找到类似的问题,找资料重新琢磨了一下vector存储数据的内存结构组织形式,发现,当vector嵌套有多维时,其全部数据并不是线性顺序存放的(这和我们平时熟悉的NVIDIA CUDA实现多维数组的线性化存储是不一样),例如说二维时,第一维的数组的每个element的地址里存放的是这个element对应的子数组的首地址(但不是子数组的数据内容存储地址!原创 2022-11-27 20:53:33 · 2345 阅读 · 0 评论 -
调用std::map的emplace()出现Segmentation fault (core dumped)
去年和今年在Jetson板子上写Deepstream插件代码时使用到std::map容器时都遇到过奇怪的崩溃,这些崩溃和网上别人说的引用的值没有初始化导致的崩溃根本不是一回事,就是一个非常简单的定义:std::map<std::string, int>或者std::map<int, int>这里的key和value根本没什么复杂的类型,所以根本不是别人常说的那种情况。代码很简单:在插件的GObject里定义了一个全局性的 std::map<std::string原创 2022-03-26 18:55:40 · 2737 阅读 · 1 评论 -
DeepSORT C++版的一个bug
DeepSORT的官方python版实现是https://github.com/nwojke/deep_sort,C++版的DeepSORT中https://github.com/shaoshengsong/DeepSORT这个版本实现较早,github上可以看到不少人的DeepSORT都是在这个版本上做的集成和修改,绝大部分代码是照抄的,只是使用的目标检测模型或特征抽取模型不一样而已,因此把这个版本里的Bug也带过去了。跑这个C++版本以及其他基于这版的DeepSORT时,长时间跑肯定会因为Eig.原创 2021-12-11 18:29:55 · 3045 阅读 · 2 评论 -
我的AI之路(30)--C++调用Python版AI模型步骤、遇到的问题及解决
机器人移动过程中需识别目标并根据距离作出相应处理,这些功能的移动和获取距离数据的代码都是C++写的,目标识别功能则由一个采用自己收集和标注的数据训练出的py-faster-rcnn模型来实现,这里功能上的整合实现就涉及到需要使用C++代码调用AI模型的python代码。 https://docs.python.org/2/c-api/index.html给出了一些Pytho...原创 2019-06-20 22:15:15 · 1934 阅读 · 0 评论