
Jetson
文章平均质量分 67
Arnold-FY-Chen
On the way of AI spiritual practice...
展开
-
调用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 评论 -
什么是TAO以及如何安装和使用TAO
NVIDIA的TAO(Train, Adapt, Optimize)Toolkit以前叫TLT(Tranfer Learning Toolkit),即迁移学习工具,关于什么是迁移学习,网上资料大把,这里只说TAO,故不多说迁移学习。只要是干过模型的,看看NVIDIA官网上给出的这张关于TAO的架构图,也能大概明白了七八分:近来琢磨熟悉TAO的使用并写PPT给组内培训,所以对TAO的相关文档仔细过了一遍,也在不连贯的文档说明指导下琢磨了从TAO的环境安装到训练数据及预训练模型的准备和模型训练再到模型的原创 2022-01-28 22:53:52 · 10660 阅读 · 2 评论 -
在Jetson板子上编译代码时发生c++: internal compiler error: Segmentation fault (program cc1plus)错误
在Jetson板子上多次遇到编译caffe或video-caffe或opencv时或者某些网络模型的python代码内调用的C++版加速算子时,会遇到编译到半路报这种错误:c++: internal compiler error: Segmentation fault (program cc1plus)Please submit a full bug report,...后面更多的信息就不贴出来了,这些信息很具有迷惑性,搞得好像代码本身有问题似的。 其实解决这个问题...原创 2022-01-19 18:41:39 · 5703 阅读 · 22 评论 -
如何dump出基于Deepstream开发出的app的pipeline结构图
Dump出app的pipeline的全部结构有助于快速了解一个陌生app的组成,也有助于分析和查找问题或者进行展示说明。在Deepstream开发的app里按要求增加一些代码将pipeline结构图导出成DOT语言脚本文件 *.dot,并且安装AT&T实验室的用于绘制DOT语言脚本描述的图形的开源工具包graphviz,使用这个工具将*.dot文件转换输出成图片文件即可。 1) 首先,安装graphviz sudo apt-get installgra...原创 2022-01-02 22:37:44 · 1326 阅读 · 0 评论 -
Jetson Nano上如何自己编译deepstream-app
Deepstream安装后除了提供了编译好的二进制版的deepstream-app(安装在/usr/bin/下)外还在在samples下提供了deepstream-app等sample app的源码,平时如果只需直接使用deepstream-app跑跑做实验的话(例如查看Deepstream的版本,执行deepstream-app --version),直接执行deepstream-app -c <config-file>即可把deepstream-app跑起来,但是如果需要在dee...原创 2022-01-02 22:11:21 · 1117 阅读 · 2 评论 -
如何将基于Jetpack 4.5 + Deepstream 5开发的程序升级到Jetpack 4.6 + Deepstream 6
Jetpack 4.5.1及以前的版本4.x里使用的是TensorRT 7.1.3,JetPack 4.6开始则是使用的TensorRT 8,由于我们在模型加速上多是建立在TensorRT的基础上的,而TensorRT 8没有完全保证对TensorRT 7.x的兼容,所以受TensorRT这个版本的变化对封装调用模型的部分代码是有影响的,在Jetpack 4.5 + Deepstream 5开发的程序涉及到AI模型的部分在Jetpack 4.6 + Deepstream 6下很可能编译都会出错,...原创 2021-11-13 12:10:40 · 1668 阅读 · 0 评论 -
Jetson上VideoCapture打开视频出错及重装opencv-python时出错ModuleNotFoundError: No module named skbuild
最近在Jetson Nano上遇到个怪事,考虑到懒得自己编译安装arm64平台上的pytorch,直接拉取NVIDIA的用于JetPack4.5的镜像l4t-pytorch来使用:docker pull nvcr.io/nvidia/l4t-pytorch:r32.5.0-pth1.7-py3sudo docker run -it -d --runtime nvidia --network host --ipc host -e DISPLAY=$DISPLAY -v /home/ubuntu:/wo原创 2021-10-23 12:36:35 · 5034 阅读 · 2 评论 -
Jetson上如何集成支持使用GPU的NCNN到应用程序
nccn通过vulkan使用GPU,所以实际上需要集成vulkan和ncnn的头文件和so库。用于Jetson的JetPack里默认提供了vukan的so文件,例如libvulkan.so.1.2.142以及指向它的链接libvulkan.so.1,但是没有libvulkan.so这个名字的so文件或者链接,所以需要创建一个如下的链接:ln -s libvulkan.so.1 libvulkan.soncnn的源码里包含有vulkan的头文件,所以头文件就不用从https://github..原创 2021-10-16 19:48:51 · 2761 阅读 · 0 评论 -
编译支持使用GPU的NCNN
我个人的使用经验感觉,NCNN最大的优势在于运行模型推理时使用内存非常少,一个超轻量级的模型只需几十M的内存,而TensorRT下同一模型则需要几百个M的内存!NCNN这个优点是NVIDIA的TensorRT不能比的,TensorRT的优势就是模型推理时速度基本稳定,当然也比较快,FP32和FP16模式下占用内存和推理速度都有差异,NCNN下轻量级模型的FP32和FP16模式感觉推理速度和占用内存差异不明显,使用NCNN进行模型推理的速度有时波动有点大,但是比较占用的总内存很小,速度有时也不比...原创 2021-10-01 10:03:51 · 5380 阅读 · 0 评论 -
模型集成到Deepstream里后为何识别效果变差以及如何从Deepstream Infer Plugin里导出预处理过的用于模型推理的图片数据并使用TensorRT进行推理测试
在将模型集成到Deepstream Infer Plugin过程中可能会碰到这样那样的问题,其中一个困扰人的问题就是一个模型集成到Deepstream Infer Plugin后,模型推理时的精度下降,比不使用Deepstream而是直接使用python或者C++调用原始模型或者使用TensorRT API实现的模型的精度要差,两种方式使用同样的视频或图片和同样的模型engine文件,模型在Deepstream Infer Plugin里的表现要差一些,经过很多次的调查和实验,可以确定这个问题和...原创 2021-09-04 14:07:03 · 1386 阅读 · 11 评论 -
使用i2cdump查看Jetson板子的模组编号
对于Xavier,执行 sudo i2cdump -f -y 0 0x50输出类似如下:对于Nano,执行 sudo i2cdump -f -y 2 0x50输出类似如下:关于字符串的含义,参见https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fjetson_eeprom_layout.ht..原创 2021-01-19 15:33:45 · 1784 阅读 · 0 评论 -
Cudnn占用大量内存问题
近来在对一个3D图像识别模型做部署裁剪时发现,做了一些有效的裁剪后,模型启动后占用的内存虽然减少了两三百个M,但是再继续对网络做裁剪缺减少不明显了,包含封装调用这个模型的deepstream插件在内始终占用800多个M,感觉很奇怪,于是花了些时间,捣腾琢磨网络本身的C++实现代码,找出哪些代码执行后占用了可观的内存,最后发现,其他跟训练有关的可减的都减了也没见省多少内存,但是模型启动的过程中,当cudnn的API被第一次调用时,启动有卡顿,同时看着内存一路不停飙升,把相关网络层的代码注释掉试试,...原创 2020-09-30 22:29:08 · 1206 阅读 · 1 评论 -
NVIDIA Jetson板子上安装nvidia docker需要注意的问题
一般来说,使用NVIDIA官网上下载的sdk image烧写入SD卡或者使用sdk manager/jet package连到板子安装全部软件后,里面什么都有了,包括docker和nvidia docker里面都有了,使用nvidia docker可以把GPU用起来,但是如果误删或者不小心弄坏了docker,或者为了减少发布系统的image的大小,尽量减少不需要安装的软件包,比如想从最基本的Basic Packages for L4T 开始根据需要一点一点的添加,那么自己安装nvidia doc...原创 2020-08-22 12:54:23 · 14752 阅读 · 34 评论