玩转NVIDIA Jetson AI GPU计算平台
Jetson是NVIDIA推出的高性能GPU计算平台,本专栏针对该平台,包括Xavier Nano等产品,从软件,硬件,AI几个方面进行介绍和实践,旨在与大家共同学习进步
Gaosiy
吾日三省吾身
展开
-
玩转NVIDIA Jetson (30)--- 解决jetson平台使用Python import包时出现illegal instruction(cpre dumped)问题
这个方法是最简单的方法,需要注意的是,这种方法只适用于特定的软件包,不能解决所有类似的问题。最近在一台新的jetson nano上配置python开发环境,使用conda方法安装的包,在import导入时出现了错误。作用就是设置OpenBLAS库使用ARMv8架构编译,这样可以避免与Jetson Nano的CPU架构不匹配的问题。这个问题之前在国外的论坛找到过解决方案,但是时间久了又忘了,这次再遇到,记录下来,以免以后再碰到同样的问题。在这种情况下,可以通过设置环境变量来指定使用的CPU架构。原创 2023-02-28 10:43:21 · 1532 阅读 · 0 评论 -
玩转NVIDIA Jetson (29)---浅谈jetson nano上的CPU绑定
根据问题,找到原因,因地制宜。原创 2023-02-21 10:31:15 · 580 阅读 · 0 评论 -
玩转NVIDIA Jetson (28)--- jetson clocks对tensorRT推理速度的影响
使用resnet18训练了一个CNN网络,放到jetson nano上进行推理的时候,发现前几组推理耗时比较久,五次大概是50ms 40ms 30ms 20ms这种递减的情况,随后进入了一个比较稳定的阶段,稳定在20ms左右的推理速度。jetson clocks的使用在之前文章中专门提过,这次是在使用tensorRT加速CNN的时候偶然发现了他的一些影响,记录下来,希望对其他人有所帮助。可以看到,除了第一次耗时之外,后边的计算耗时就很稳定了,也解决了我的应用问题。原创 2023-02-15 12:45:45 · 846 阅读 · 6 评论 -
玩转NVIDIA Jetson (27)--- jetson系统时间问题
jetson nano 时间不同步的问题处理原创 2022-12-08 10:41:08 · 1885 阅读 · 5 评论 -
玩转NVIDIA Jetson (26)--- 在python虚拟环境中快速使用tensorRT
python版本的tensorRT是跟随jetpack已经安装好的,但是在编译的时候只适配了python2.7和python3.6版本,也就是jetpack自带的python版本,如果需要在自己创建的conda环境中进行使用,会出现无法引入包的情况。pythonpath环境变量是导入包的时候自动检索的目录,默认情况下是检索python解释器所在文件目录下的包,我们只需要将这个变量多配置一个原机自带的python包目录,就可以快速使用tensorRT了。2.切换到你所使用的虚拟环境,安装pycuda。原创 2022-09-04 17:24:03 · 1605 阅读 · 0 评论 -
玩转NVIDIA Jetson (25)--- jetson 安装pytorch和torchvision
在jetson上安装pytorch能够快速的帮助PC用户在熟悉的环境下进行开发,但是这个过程里边有一些坑,我建议大家参照官方给出的安装指导来进行安装,包括pytorch和包含各种网络的torchvision。这里需要特别注意的一个问题就是你需要选择与你机器上jetpack相匹配的版本,千万别下错了,比如我这里用的是jetpack4.6,那我安装的pytorch就是V1.10.0版本。我还是建议大家用虚拟环境,不然jetson上的python环境非常容易被搞乱,具体安装方法见之前的文章。原创 2022-09-04 10:45:37 · 7971 阅读 · 5 评论 -
玩转NVIDIA Jetson (24)--- jetson docker非sudo使用
jetson系统中安装了docker,但在使用的时候每次都需要加sudo权限,很麻烦。6.测试docker命令,拉取一个ubuntu18.04镜像跑hello world。解决方案是将当前用户添加到docker的用户组里,这样就避免了重复的sudo输入。一般会出现类似 docker:x:127,证明用户组存在,如果没有,手动创建。一般会出现 docker:x:127:nano, nano就是我们新加入的。3.将当前用户加入docker用户组,以nano用户名为例。5.查看用户是否已经在用户组中。原创 2022-08-24 08:44:18 · 600 阅读 · 0 评论 -
玩转NVIDIA Jetson (23)--- jetson nano 添加swap内存
不管是使用4GB还是2GB的nano,在进行一些任务会受到内存的限制,要么卡死,要么killed,要么无法分配内存,而刷机的时候我们很少会去分配swap分区,这会影响到我们使用jetson进行一些大内存的任务,比如训练神经网络,编译一些软件工具,使用tensorRT等。本文介绍如何在刷机后添为nano添加swap分区,从而保障一些AI任务的运行。创建好swap分区以后,在/etc/fstab文件中追加一行。这样保障了改变的永久生效。原创 2022-08-19 11:50:24 · 1607 阅读 · 2 评论 -
玩转NVIDIA Jetson (22)--- jetson clocks的使用
Jetson 使用了DVFS (Dynamic voltage and frequency scaling )技术,该技术的目的是调节各处理器的电压值。有的时候我们需要在一次开机过程中的一段时间使用高性能模式,任务结束后又想要关闭应该如何操作。在默认情况下,DVFS功能是开启的,但针对一些特殊的任务,比如用深度网络run一张图片,需要打开性能封印。系统默认是不开启jetson_clocks模式的,也就是一个平衡性能的状态,此时使用命令。保存当前的DVFS模式,然后关闭DVFS。查看板子当前的工作状态。原创 2022-08-19 11:32:14 · 3737 阅读 · 0 评论 -
Jetson人工智能系列(1)- jetson安装python和anaconda那些事
jetson平台下的python版本管理和anaconda安装原创 2022-06-19 11:12:31 · 5605 阅读 · 9 评论 -
玩转NVIDIA Jetson (21)--- jetson isolcpus
在jetson平台jetpack4.6之后的版本,可以很容易的将一个CPU独立出来使用。打开/boot/extlinux/extlinux.conf在APPEND选项最后加入isolcpus=3这时可以通过cat /proc/cmdline来查看是否已经将isolcpus加入,并且重启可以通过系统监视来查看独立出来的CPU是否使用率是0%。独立出来的CPU不接受其他程序进行运算,除非显示的使用taskset -c 3 xxx上述代码可以使XXX程序单独运行原创 2022-01-03 20:24:45 · 1119 阅读 · 0 评论 -
工具类 - jetson录屏工具和串口调试工具
录屏工具vokoscreen安装sudo apt-get install vokoscreen运行vokoscreen带界面的串口调试工具cutecom安装sudo apt-get install cutecom运行cutecom原创 2021-10-26 10:14:22 · 899 阅读 · 0 评论 -
玩转NVIDIA Jetson (20)--- jetson 配置国内源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bakjiaruyixianeirong.deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universedeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main mult..原创 2021-09-29 15:50:10 · 2123 阅读 · 0 评论 -
解决jetson Xavier nano没有spidev的问题
在最新的36.2.1版本中,使用ls /dev/发现没有spidev0.0之类的设备,自然也就无法使用spidev的驱动了,之前的版本是默认加载spidev的。不知道这个版本是怎么考虑的。解决办法1modprobe spidev这种方式是手动加载spidev的驱动,但是重启后失效。解决办法2打开module config的文件gedit /etc/modules-load.d/modules.conf添加一行spidev这样每次启动会默认加载。...原创 2021-09-18 11:05:50 · 2134 阅读 · 12 评论 -
玩转NVIDIA Jetson(19)--- jetson的40pin外部接口
Jetson平台的所有设备都向外提供了40pin的接口,包含了丰富的常用通信接口,SPI,I2C,UART等。下图是Xavier的40pins的详细信息。下图是nano的40pins详细信息。以上两张图片均来源于国外网站https://www.jetsonhacks.com/下面说说上边两幅图如何应用1.关于GPIO编号。如Xavier图中所示的,pin7是GPIO422,这个GPIO422就是你在写程序的时候输入的GPIO编号信息。比如我可以用以下代码设置GPIO...原创 2021-08-29 20:46:09 · 3409 阅读 · 3 评论 -
玩转NVIDIA Jetson (18)--- nano xavier设备树device tree相关
背景本文介绍一些设备树相关的知识,包括设备树文件在哪,如何修改,如何编译,如何应用等。这些问题在我做设备驱动开发的时候踩了很多坑,找了很多资料。修改设备树文件的两种方式1.在机器上反编译DTB文件直接修改首先找到/boot/目录下系统所使用的dtb文件,具体文件需要去官网查看,我在下文中会列出nano和Xavier的文件名,其他机器可以自行去查找。找到文件后把他拷贝到外边的一个单独目录,建议拷贝两份,一份用于备份,一份做修改。使用dtc命令进行反编译。比如你的DTB文件是A.DTB,原创 2021-08-29 12:06:14 · 6540 阅读 · 9 评论 -
玩转NVIDIA Jetson AGX Xavier(17)--- 驱动开发之jetson的设备驱动编译
前言通过内核编译设备驱动是做驱动开发的必备技能。这篇文章的内容我废了很大的劲儿,但是估计需要的人不多。NVIDIA给出了一套编译驱动的教程,在下边的链接,但是写的说实话不太好懂。我这里单独出一个。官方教程https://docs.nvidia.com/jetson/l4t/#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/kernel_custom.html#wwpID0EUHA如果后边地址该了,可以参考 ke.原创 2021-07-16 10:45:27 · 5001 阅读 · 11 评论 -
玩转NVIDIA Jetson AGX Xavier(16)--- 驱动开发之GPIO的应用
操作GPIO是使用硬件的开始,本篇介绍如何使用jetson的GPIO,这里使用的语言是C语言。操作GPIO包含两种方法:终端使用命令直接操作程序操作命令控制第一种方法可以帮我们了解GPIO在linux系统中的存在形式。建议大家了解这种方法,自己去操作一下,会对写代码非常有帮助。我们打开终端,进入GPIO的目录下/sys/class/gpiols一下该目录下的文件可以看到,最开始的gpiochipX是一组GPIO的控制器,不是具体的GPIO,如果我们想要控制具体的一个,首先查看jet原创 2021-06-25 17:19:35 · 4705 阅读 · 13 评论 -
玩转NVIDIA Jetson AGX Xavier(15)--- 驱动开发之jetson-io的应用
最近准备开始用jenson连接一些外设,因此需要做一些驱动开发来完成jenson和外设的通信,随后的即便文章会对jetson的外部接口和如何使能这些接口做一个介绍。本篇首先介绍一下jetson上推出的最新的工具jetson-io,这个工具可以说极大的方便了开发者使能jetson上的种种接口,如SPI I2C等。在jetson-IO推出来之前,也就是jetpack 32.3版本之前,想要使能SPI接口需要做很多的工作,非常麻烦,可以参考我之前的文章。这里还是强烈建议大家更新jetpack,然后用这个工具。原创 2021-06-25 16:53:11 · 3194 阅读 · 1 评论 -
玩转NVIDIA Jetson AGX Xavier(14)--- 在jetson上运行tensorflow+tensorrt的官方demo
本文介绍在jetson Xavier上如何从一个tensorflow的网络搭建到部署的完整过程。环境准备jetson Xavier jetpack4.2 (已安装tensorrt)tensorflow安装,请点击demo位置/usr/src/tensorrt/samples/python/end_to_end_tensorflow_mnist具体步骤打开demo文件位置,有...原创 2019-07-24 11:29:38 · 7631 阅读 · 10 评论 -
深度学习的宏观框架——训练(training)和推理(inference)及其应用场景
一个完整的深度框架中应该包含两个主要部分,即训练(training)和推理(inference)训练(Training)打个比方,你现在想要训练一个能区分苹果还是橘子的模型,你需要搜索一些苹果和橘子的图片,这些图片放在一起称为训练数据集(training dataset),训练数据集是有标签的,苹果图片的标签就是苹果,橘子亦然。一个初始神经网络通过不断的优化自身参数,来让自己变得准确,...原创 2019-02-24 10:55:41 · 43290 阅读 · 12 评论 -
玩转NVIDIA Jetson AGX Xavier(13)--- L4T内核kernel编译之在x86 PC上交叉编译jetson kernel
上一篇讲了在jetson平台上编译内核,本篇讲在x86 PC上编译这里提一点,我并不建议你用虚拟机来搞Linux开发,你的host至少应该是个ubuntu+windows双系统,虚拟机可能有各种问题,不要浪费时间在这些没有意义的问题上,可能会影响到你搞正事的情绪。配置交叉编译环境请查看第10篇博文玩转NVIDIA Jetson AGX Xavier(10)— L4T内核kernel编...原创 2019-06-19 09:37:45 · 6579 阅读 · 28 评论 -
玩转NVIDIA Jetson AGX Xavier(12)--- L4T内核kernel编译之在jetson上编译kernel
在Jetson平台上直接编译内核的好处是不存在交叉编译,编译非常顺利。但是慢!适用于想在Jetson平台上一步到位,干所有事的玩家本期内核版本L4T 32.1,使用Jetpack4.2刷机官网教程有点confuse,因为没说明白是在哪编译,对于初学者不太友好,老规矩放上官网教程https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra...原创 2019-06-19 09:19:25 · 6864 阅读 · 14 评论 -
玩转NVIDIA Jetson AGX Xavier(11)--- JetPack4.2安装TensorFlow
本文讲述如何在jetson平台L4T系统上安装TensorFlow本文更新的前两天我用官网的教程发现安装失败,在NVIDIA论坛上提出问题后官方教程已于6.17号更新,我今早起来用最新教程测试安装没问题,喜欢看英文的可以到官方教程去看一下NVIDIA开发者论坛帖子https://devtalk.nvidia.com/default/topic/1055816/confused-downlo...原创 2019-06-19 08:38:00 · 7119 阅读 · 13 评论 -
玩转NVIDIA Jetson AGX Xavier(9)--- L4T内核kernel编译之理解L4T及kernel编译
kernel的问题可以说很多,本节简单介绍一下这里边的关系,为什么要编译内核以及编译方法有哪些。L4T是什么L4T是Linux for Tegra的缩写,因为jetson系列用的是Tegra架构,因此L4T可以理解为jetson定制的Linux操作系统,具体的来说就是ubuntu定制款。为什么要编译内核通常来说编译内核的工作是为了客户基于jetson产品自己定制一些功能,比如增加一...原创 2019-06-18 23:07:45 · 8652 阅读 · 8 评论 -
玩转NVIDIA Jetson AGX Xavier(10)--- L4T内核kernel编译之Linaro 交叉编译环境搭建
本文主要介绍了为什么使用交叉编译环境以及Linaro 交叉编译环境搭建kernel 版本,jetpack4.2 L4T 32.1官方教程链接,写的不是很清楚,可以去看看:https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide%2Fxav...原创 2019-06-18 22:50:26 · 5937 阅读 · 0 评论 -
玩转NVIDIA Jetson AGX Xavier(8)--- jetson平台实用命令(持续更新补充)
本文罗列jetson平台上使用的系统命令,持续更新查看当前工作模式sudo nvpmodel --query设置当前模式sudo nvpmodel -m 0开启风扇,开启最大时钟jetson_clocks查看clock工作状态jetson_clocks --show查看CPU温度sudo apt install lm-sensorssensors显示当前目录p...原创 2019-06-18 21:09:25 · 7333 阅读 · 5 评论 -
玩转NVIDIA Jetson AGX Xavier(7)--- jetson打开关闭风扇,解决风扇不转
本文介绍如何控制Xavier的风扇很多小伙伴拿到Xavier之后发现运行的很热但是风扇始终不转,经过了四处查找资料,终于搞定了如何打开关闭风扇以及控制转速。本文系统环境基于 jetpack4.2 L4T 32.1安装硬件温度检测工具sensorssudo apt install lm-sensors安装成功以后,输入sensors系统会显示当前温度,一般不开风扇的话系统温度能...原创 2019-06-18 20:53:52 · 25012 阅读 · 16 评论 -
玩转NVIDIA Jetson AGX Xavier(6)--- 安装强大的跨平台编程IDE QT5及charts模块
Xavier安装QT5及charts模块QT的强大不用多说,其信号-槽机制以及强大的跨平台能力优势明显。下图是我在jetson Xavier上用QT开发的带GUI的多节点信号传输程序。使用了多线程和socket网络编程,关键的关键是,这个程序是我从Windows上开发的,拿到jetson上直接可以跑,这就是QT的强大之处。安装QT5只需一句代码sudo apt-get install ...原创 2019-06-18 19:11:08 · 5678 阅读 · 0 评论 -
玩转NVIDIA Jetson AGX Xavier(5)--- Xavier jetpack 4.2 刷机(nano TX2)
使用jetpack 4.2为Xavier nano TX2刷机JetPack从4.2版本开始不再是.run的安装方式,而是.deb的安装方式1.下载安装包https://developer.nvidia.com/embedded/jetpack找到4.2版本下载,新安装包长这个样子2.在主机上安装sdkmanager有三种方式可以安装1.直接双击deb文件(我这失败了,应用商店一直...原创 2019-05-17 20:38:29 · 7865 阅读 · 41 评论 -
玩转NVIDIA Jetson AGX Xavier(4)--- Xavier 无线上网&安装rtl8812au驱动
Xavier的接口比较密集,而且本身有一个TCP通信的项目需求,wifi上网是一个很好的选择,在选网卡上折腾了很久Xavier不支持大部分的USB网卡想着省事,USB网卡即插即用,但是我试了手上有3个网卡,小米,TPLINK,relink(大概是这个名字),都无法使用。后来去国外的NVIDIA论坛上发现确实是这样,有些大牛说可以用USB,自己搞驱动什么的,如果你不是玩底软的,建议不要折腾,...原创 2019-05-15 15:27:45 · 18309 阅读 · 34 评论 -
玩转NVIDIA Jetson AGX Xavier--- 中文用户手册
翻译了Xavier的中文用户手册对于英文不好的开发者可以进行参考,但是建议大家还是学习看英文版,翻译版毕竟会有一些理解上的出入,可以以此版本为辅助材料,英文阅读是个长期的过程,大家加油。CSDN下载连接(有积分的可以支持一下)https://download.csdn.net/download/huiyuanliyan/11062065百度网盘连接链接: https...原创 2019-03-29 09:03:41 · 15489 阅读 · 5 评论 -
玩转NVIDIA Jetson AGX Xavier(3)--- 使用JetPack 4.1为Xavier刷机
这篇文章开始我们正式要介绍如何玩转Xavier了在开始本章内容之前,大家可以下载我翻译的Xavier中文指导手册地址:准备工作:一台Xavier一台ubuntu 16.04 或 18.04主机1.下载JetPack安装包下载地址https://developer.nvidia.com/embedded/jetpack下图JetPack-l4t-4.1.1x...原创 2019-03-26 23:15:19 · 14022 阅读 · 36 评论 -
玩转NVIDIA Jetson AGX Xavier(2)--- Jetson系列产品简介
Jetson平台目前已经推出了5款产品5个产品使用的硬件架构都不一样,提供的接口和性能都不一样。K1属于探索性产品,TX1 TX2 Xavier算是逐代升级,最新推出的Nano主打便宜。1. 初代产品TK1售价不详,2018年已经下架,官方介绍开发者套件为您提供所需的一切,针对嵌入式系统应用释放 GPU 的潜能。它以革命性的NVIDIA Tegra® K1 SoC为基础构建,...原创 2019-03-26 22:45:16 · 33684 阅读 · 1 评论 -
玩转NVIDIA Jetson AGX Xavier(1)--- jetson是什么
先进的 AI 边缘设备平台NVIDIA Jetson 是业内领先的AI 计算平台,它面向移动嵌入式系统市场中的 GPU加速并行处理。在深度学习和计算机视觉方面的高性能、低能耗计算,使得Jetson成为计算密集型嵌入式项目的理想平台。 ...原创 2019-02-22 11:22:20 · 15507 阅读 · 3 评论