自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 CUDA编程 - clock 学习记录

在CUDA编程中,共享内存是一种特殊的内存类型,它是在块级别共享的。共享内存的主要优势在于其低延迟和高带宽,适合于需要快速访问和多次读写的数据。

2024-07-14 00:22:03 599

原创 CUDA编程 - asyncAPI 学习记录

CUDA流处理:使用cudaMemcpyAsync进行异步内存拷贝,<<<blocks, threads>>>语法启动并发执行的CUDA内核函数increment_kernel。获取设备属性:cudaGetDeviceProperties函数获取指定设备的属性,这些属性包括设备名称等信息。内存分配:使用cudaMallocHost分配CPU上可访问的页锁定内存,cudaMalloc分配设备上的内存。创建CUDA事件和计时器:CUDA事件用于记录时间,计时器用于测量CPU执行时间。

2024-07-12 00:37:41 407

原创 工程师每日刷题-7

声明的作用主要两点,第一,提供链接时需要的符号信息,这些信息存储在目标文件的重定位表和符号表当中;第二,提供类型大小信息,c++采取的是单文件编译策略,当不知道某个符号对应类型的定义的时候,需要在链接前预留出合适大小的内存空间,供链接时填充。引入标准布局类型是为了向C语言兼容,使得用户能够通过对象第一个成员的指针类型指向对象;引入trivial类型是为了提高对象初始化效率,memcpy比构造函数初始化效率效率更高。不考虑继承,一个类没有虚函数、所有非静态变量的访问权限相同,则是标准布局类型;

2024-04-21 11:09:21 1050 1

原创 ubuntu20.04 运行 lio-sam 流程记录

记录流程,方便自己快速复现。

2024-04-02 10:38:42 1623 1

原创 c++ 堆栈内存、引用和指针 - 学习总结

定义:指针(pointer)是一种特殊的变量,其值为内存地址。作用:通过指针可以直接访问和操作内存中的数据。声明语法:Type *pointer_ame;,其中Type是指针所指向的数据类型,pointer_pame是指针变量名。初始化:可以将指针初始化为某个变量的地址,也可以将其初始化为nullptr(空指针)。取地址操作符:&,用于获取变量的地址。解引用操作符:*,用于访问指针所指向的数据。长度:不管 Type 是什么,指针长度都是一样,都是一个代表内存地址的长的十六进制数。

2024-03-30 12:20:55 785

原创 ubuntu 安装 cloudcompare(两种方法)

两种方法安装,根据需求安装

2024-03-26 14:37:03 1825 3

原创 工程师每日刷题 - 6(slam)

BA的全称是Bundle Adjustment优化,指的是从视觉重建中提炼出最优的三维模型和相机参数,包括内参和外参。从特征点反射出来的几束光线,在调整相机姿态和特征点空间位置后,最后收束到相机光心的过程。BA优化和冲投影的区别在于,对多段相机的位姿和位姿下的路标点的空间坐标进行优化。

2024-03-21 00:32:55 583

原创 模型部署 - onnx的导出和分析 - onnx 的架构和 onnx helper 的使用 - 学习记录

首先来了解一下 学习 onnx 架构和 onnx helper 的使用的目的。一般模型部署的流程是前处理+模型推理+后处理,然后c++ 上进行推理。前处理(与tensorRT无关)模型推理(生成的engine交给tensorRT去做前向传播)后处理(与tensorRT无关)模型推理部分是指利用 tensorRT 的 onnx 解析器编译生成 engine (即转换为tensorRT能看懂的模型)。1、有些时候我们应该把后处理部分在onnx模型中实现,降低后处理复杂度。

2024-03-20 23:17:15 1220

原创 C++字符串类 - std::string - 常用总结

compare(str) 比较两个字符串大小, ==,!=, <, > 支持比较运算符。insert(pos, str) // 在指定的位置pos前插入字符char。c_str() 返回C风格字符串(const char*)find(str, pos) 查找子串位置。swap(str) 交换两个字符串内容。data() 返回内部字符数组指针。

2024-03-16 00:37:15 437

原创 Livox激光雷达 mid360 跑 fastlio2 - 流程记录

下载 ikdtree 源码 在 xx/FAST_LIO-main/include/ikd-Tree/下。创建工作空间 fast_lio2_ws ,把 fast-lio2源码放在 工作空间的 src 下。,其中88是我的 SN 码后两位。下载 fast-lio2 源码。修改 lidar ip。

2024-03-15 17:18:32 1811 1

原创 高质量 Git 仓库汇总(持续更新,方便查看)

https://github.com/kamyu104/LeetCode-Solutionshttps://github.com/viva64/pvs-studio-cmake-examplesAwesome-3D-Object-DetectionAwesome-3D-Object-Detection-for-Autonomous-DrivingAwesome-BEV-Perception-Multi-Camerashttps://github.com/changh95/visual-slam-roadma

2024-03-15 01:22:24 866

原创 模型部署 - BevFusion - 思路总结

PyTorch 转 ONNX 转 TRTFP16 优化cuda-graph 优化INT8 量化优化ONNX 模型层面优化Pipeline 优化模型内深度优化我们需要先快速的去了解网络,然后将其转换成 Onnx 和 Tensorrt,然后再去根据结果进行二次优化。

2024-03-04 00:10:04 1238 1

原创 模型部署 - onnx的导出和分析 - onnx 注册自定义算子 - 学习记录

第一步:手写一个算子,然后注册一下第二步:将算子放进模型定义第三步:利用 torch.onnx.export() 编写onnx 导出函数一般我们自定义算子的时候,有以下流程编写算子并注册将算子放进模型定义利用 torch.onnx.export() 编写 onnx 导出函数return x。

2024-03-03 16:52:24 743 2

原创 模型部署 - onnx 的导出和分析 - PyTorch 导出 ONNX - 学习记录

上面是 onnx 可以直接被导出的情况,是因为对应的 pytorch 和 onnx 版本都有相应支持的算子在里面。与上面例子不同的是,这个注册方式跟底层文件的写法是一样的(文件在虚拟环境中的 torch/onnx/symbolic_opset*.py )比如下面的这个报错,提示当前 onnx 的 opset 版本不支持这个算子,那我们可以去官方手册搜索一下是否在高的版本支持了这个算子。有些算子在 onnx 中是有的,但是在 pytorch 中没被登记,则需要。(实际上就是一个矩阵乘法)

2024-03-03 01:02:38 2518

原创 CUDA编程 - 用向量化访存优化 elementwise 核函数 - 学习记录

Element-wise操作是最基础,最简单的一种核函数的类型,它的计算特点很符合GPU的工作方式:对于每个元素单独做一个算术操作,然后直接输出。虽然简单,但深度学习领域,有很多算子都是这个类型。常见的有Add,Mul,Concat,各种激活Sigmoid,Relu及它们的变体,归一化里的BatchNorm都属于这个类型。

2024-02-26 23:20:05 1273

原创 CUDA编程 - 用向量化访存优化 - Cuda elementwise - Add(逐点相加)- 学习记录

Element-wise 操作是最基础,最简单的一种核函数的类型,它的计算特点很符合GPU的工作方式:对于每个元素单独做一个算术操作,然后直接输出。Add 函数 :逐点相加传入 数组 a,b,c传入 数据数量 N传出结果 数组c。

2024-02-26 17:03:47 1800

原创 vscode 离线安装--扩展包

在很多情况下,我们不能联网下载 vscode 的扩展包,下面记录一下怎么离线安装和下载。

2024-02-26 10:57:19 475

原创 CUDA编程 - Nsight system & Nsight compute 的安装和使用 - 学习记录

在 cuda 编程中,经常会用到 Nsight system 和 Nsight compute 进行性能分析等,下面做个学习总结。本篇包括安装和常用分析思路总结,具体实践操作总结会放在下一篇博客。

2024-02-23 15:53:42 5654 2

原创 工程师每日刷题 -5

智能指针是一个RAII类模型,用于动态分配内存,其设计思想是将基本类型指针封装为(模板)类对象指针,并在离开作用域时调用析构函数,使用delete删除指针所指向的内存空间。智能指针的作用是,能够处理内存泄漏问题和空悬指针问题。分为auto_ptr、unique_ptr、shared_ptr和weak_ptr四种,各自的特点:对于auto_ptr,实现独占式拥有的概念,同一时间只能有一个智能指针可以指向该对象;

2024-02-14 01:26:44 1107

原创 CUDA编程 - 共享内存 - shared memory - 学习记录

1、共享内存是可受用户控制的一级缓存。2、共享内存是基于存储体切换的架构。所以我们必须要解决存储体冲突的问题数据重复利用全局内存合并线程之间有共享数据4、线程访问共享内存的时候需要排队等候5、以行的方式访问全局内存的时候,性能最好6、在GPU上线程块的大小或者线程束的大小可以理想地映射为数据集的大小。对于一个长为N的数据,我们可以最多用N/2个线程来进行。7、共享内存的主要作用是减少对全局内存的访问,或者改善对全局内存的访问模式。

2024-02-14 01:09:01 1390

原创 三维点云常用数据增强 - python【代码记录】

这里做个代码记录,方便以后调用。

2024-02-06 12:42:40 343

原创 wsl + vscode 离线配置 ERROR: Faild to download https://update.code.visualstudio.com

很多情况下是没有现成的VS Code Server程序的,需要手动下载。记住上面的Commit ID,可以通过下面的链接下载 vscode-server-linux-x64.tar.gz。然后将vscode-server-linux-x64.tar.gz上传在服务器上的$HOME/.vscode-server/bin文件夹中,解压。在wsl中下载不了 vscode 的核心。运行下面两行命令,建立空的$HOME/.vscode-server/bin文件夹。重新运行 wsl与vs的链接即可。

2024-02-02 16:15:44 1367 2

原创 CUDA编程- - GPU线程的理解 thread,block,grid - 学习记录

3、同一个线程束中的线程存储访问合并在一起了,长方形布局只需要一次访问操作就可以获得连续的内存数据 // 正方形要两次访问。在 blockIdx.x = 1 中, blockDim.x 表示所要求每个线程块启动的线程数量,在这 = 128。3、在核函数中编写单个线程的使用代码,再调用核函数,便可简单的达到 cpu 中 openmp 的多线程方式。在 cpu 中,用 openmp 并行计算,有限的线程数对 128 进行分组运算。2、线程数量的多少是由线程块,线程,线程网格等决定的,

2024-01-27 18:02:18 1945 2

原创 ubuntu 编译使用 liblas 读取点云

在ubuntu上使用las读取点云。

2024-01-23 17:55:46 663

原创 工程师每日刷题 -4

CNN 本质上是一个多层感知机 (MLP),其成功的原因关键在于它所采用的【稀疏连接】(局部感受)和【权值共享】的方式,一方面减少了的权值的数量使得网络易于优化,另一方面降低了过拟合的风险。,即内联函数是在编译期间直接展开,可以减少函数调用的花销,即是编译阶段就确定调用哪个函数了。多态是依托于类的,多态的使用必须是在类创建以后,而构造函数是用来创建构造函数的,所以不行。与虚函数的作用不是一路的。C++不支持友元函数的继承,不能继承的函数指定不是虚函数。多态是依托于类的,要声明的多态的函数前提必须是虚函数。

2023-11-30 10:48:46 416

原创 工程师每日刷题 -3

对激活函数进行求导,如果此部分大于1,那么层数增多的时候,最终的求出的梯度更新将以指数形式增加,即发生梯度爆炸,如果此部分小于1,那么随着层数增多,求出的梯度更新信息将会以指数形式衰减,即发生了梯度消失。weak_ptr 相对于 shared_ptr 来说,避免了两个对象相互使用一个 shared_ptr成员变量指向对方,造成循环引用,使引用计数失效,从而导致内存泄漏。1.weak_ptr 通常情况下需要跟 shared_ptr 一起使用。问题:深度学习梯度消失与梯度爆炸现象,如何处理?

2023-11-29 14:29:52 411

原创 工程师每日刷题 -2

关键:当元素 Ai,j 逆时针旋转后就有了 Ai,j = Aj,(n-i) 的关系。给出一个 n*n 矩阵,将其逆时针旋转 90 °,但是不能开辟新的内存空间。情况一:数据集大,提升模型大小泛化性没有提升。模型泛化性差,如何解决?

2023-11-28 11:03:58 403

原创 工程师每日刷题 -1

自注意力机制的缺陷就是:模型在对当前位置的信息进行编码时,会过度的将注意力集中于自身的位置, 因此作者提出了通过多头注意力机制来解决这一问题。多头注意力融合了来自于相同的注意力池化产生的不同的知识,这些知识的不同来源于相同的查询、键和值的不同的子空间表示。基于适当的张量操作,可以实现多头注意力的并行计算。

2023-11-27 16:16:20 404

原创 pytorch导出onnx不成功的时候如何解决? - 学习记录

可以看到,其实已经支持了,但还是导不出。所以这里要先注册一下这个算子。python1导不出onnx,可以去。• 使用onnx-surgeon。• 一般是用在加速某些算子上使用。查看一下,是否支持了这个算子。主要是这个函数,用来注册算子。

2023-10-28 00:41:32 654

原创 用PyTorch导出ONNX,以及onnxsimplify的使用 - 学习记录

学习记录

2023-10-22 01:15:37 654

原创 CUDA编程 - 使用cuda进行矩阵乘法的加速方法 - 学习记录

🐖:CUDA有规定,一个block中可以分配的 thread 的数量最大是 1024 个线程。如果大于 1024 会显示配置错误。假设是 A(4x8) * B(8x4) = C(4x4)

2023-10-16 01:17:02 403

原创 CUDA编程 - cpp文件 和 cu 文件的相互引用 -学习记录

这里记录了在同一个项目中,如何在cpp文件中引用 .cu 文件。

2023-10-15 23:57:27 397 1

原创 常用 ubuntu环境配置

经常要配置环境,做个ubuntu20.04 安装显卡驱动,cuda,cudnn,tensorrt的记录。

2023-10-11 16:02:15 88

原创 Cuda与TensorRT 实践记录 - 专栏索引

Cuda与TensorRT 实践记录 - 专栏索引自己学习和实践的笔记,在这里做个记录,方便自己学习和检索。

2023-10-10 01:17:48 82

原创 面试问题记录

面试问题记录 1手撕NMS代码有用CUDA编程过么?如何减少模型的推理时间介绍卷积的底层实现方法语义分割有哪些损失函数?Anchor-free标签匹配方式U-Net为什么在扩散模型中有效?Transformer在图像中是怎么训练的?Transformer的计算复杂度,并如何降低?如果要在上万的图片中去搜索,怎么比较高效手撕NMS代码import numpy as npdef nms(dets,score): x1 = dets[:,0] y1 = dets[:,1] x2 =

2023-08-27 11:25:43 442

原创 自动驾驶中的slam笔记 --惯性导航与组合导航

角速度加速度。

2023-08-27 11:10:44 184 1

原创 自动驾驶中的slam笔记 -- 数学基础总结

自动驾驶中的slam笔记 -- 数学基础总结

2023-08-15 15:03:41 160

原创 使用 Open3d-ML训练 Randlanet pytorch Semantic3d

在 git 上找了好多版 randlanet 的 torch 训练 semantic3d,发现训练的效果并不好,而且有些甚至连网络结构都不一样,最后终于找到一个训练效果不错 ,loss可以收敛的代码了,这里记录一下 使用训练 Randlanet 的 pytorch 版本 Semantic3d 的过程因为是 TF 用户,所以 顺便 学一下 torch 的代码。

2023-05-08 11:13:15 686 2

原创 PointNet++ pytorch 代码论文阅读整理

set abstraction 由 sampling,grouping,pointnet 三个模块构成。

2023-05-04 18:17:59 177 1

原创 PointNet pytorch 代码论文阅读整理

对 PointNet 做个整理笔记。

2023-04-27 17:27:49 117 1

sample-cbr.onnx

是博客的参考模型,博客地址:https://blog.csdn.net/weixin_40653140/article/details/136420062?spm=1001.2014.3001.5502

2024-03-20

空空如也

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

TA关注的人

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