Linux 36.2@Jetson Orin Nano之Hello AI World!
1. 源由
AI到底有多神奇???
记得神奇的年代有神奇的语言:“人有多大胆,地有多大产;不怕想不到,就怕做不到。“
暂且不去讨论这句话的背景,深意,以及各种解说。在这里,抓一个发散思维的要点,要能想,要感想!
好了,废话不多说,既然我们有了《Linux 36.2@Jetson Orin Nano基础环境构建》,就来看看用这些AI技术可以有些什么好玩的!
2. Hello AI World!
大体所有的新事物都会有个类似“Hello AI World”的介绍,让更加贴心的让我们快速接触和理解新事物。
这里也有一个Jetson AI的Hello AI World!。
大致有三种方法:
通常来说,最难的就是从源代码来构建。因为程序对于环境的依赖关系,不是三言两语能够简单概括的。
3. 步骤
注:长城防火墙永远是技术的一种疼。遇到麻烦,请大家参考:Github操作网络异常笔记。
3.1 准备阶段
git
用来获取最新github上的代码;而cmake
主要用来做编译、链接的。
$ sudo apt-get update
$ sudo apt-get install git cmake
3.2 获取代码
获取最新的代码,通常是一个好的方法。不过也未必,最新不等于最好用。
不过我们的习惯是“不买合适的,不买最好的,就买最贵的;不用好用的,就用最新的。”
$ git clone https://github.com/dusty-nv/jetson-inference
$ cd jetson-inference
$ git submodule update --init
3.3 Python环境
Python在AI程序应用上是非常便捷的方法,当然讲效率那就去用C++。这里都Hello World,谁知道有没有Python示例代码。
$ sudo apt-get install libpython3-dev python3-numpy
3.4 重点环节
这里为什么说是重点,因为按照指南做,死活会出现各种编译、链接问题。经过笔者的牛刀小试,已经给各位解决了问题。
以下这些是Hello World必备的编译链接环境:
$ sudo apt-get install nvidia-cuda-dev tensorrt-dev nvidia-jetpack
3.5 软件配置
注:要按照笔者的方式进行CUDA_TOOLKIT_ROOT
宏定义,切记!
$ cd jetson-inference # omit if working directory is already jetson-inference/ from above
$ mkdir build
$ cd build
$ cmake -D CUDA_TOOLKIT_ROOT=/usr/local/cuda ..
3.6 PyTorch安装
注:这个步骤好像并非必须,笔者就没有做。也许是用到的这个demo用不到吧。
$ cd jetson-inference/build
$ ./install-pytorch.sh
3.7 编译链接
$ cd jetson-inference/build # omit if working directory is already build/ from above
$ make -j$(nproc) # 多核编译,加快速度
3.8 安装更新
注:在没有完全搞清楚软件包安装路径前,不建议安装。其实在build目录下也可以用。
$ sudo make install
$ sudo ldconfig
编译好的应用程序都在aarch64
下。
jetson-inference$ tree build/ -L 1
build/
├── aarch64
├── CMakeCache.txt
├── CMakeFiles
├── cmake_install.cmake
├── docs
├── examples
├── install-pytorch.rc
├── install-pytorch.sh
├── Makefile
├── python
├── tools
├── torch-2.1.0-cp310-cp310-linux_aarch64.whl
├── torchvision-310
└── utils
8 directories, 6 files