Nvidia Jetson AGX Orin 初体验

一、开箱

Nvidia Jetson AGX Orin是今年Nvidia推出的唯一的开发套件,相比Jetson Nano 472GFLOP算力、Jetson Xaiver 32TOPS(INT8)算力,它的算力达到了200 TOPS左右。也就是说,几乎相当于目前主流设备的8-10倍的算力。这就让张小白有点动心了。于是,张小白天天啃包子省吃俭用,攒下了一台设备的价钱,并火速将设备拿到了手。

说实话,拿到这样的箱子着实有点害怕,毕竟里面的东西不便宜。然而,打开包装,并进行消毒之后:

这么方方正正的盒子,确实让人有点放心了。

我们四周看一看:

侧面和底面都有封条。

有一侧写着设备的各种指标。

于是张小白用裁纸刀开箱:

映入眼帘的是个像音响一样的东西。

拿出来一看:

银灰色的机身,里面的大风扇隐约可见。

这是右面——正确的一面(Right View),对应说明书:

分别是 电源键(Power),强制恢复键(Force Recovery)和重置键(Reset)。还有个TF卡的插槽。

右面旁边的一面叫背面(Back View):

对比说明书:

分别是:

(1)USB Type-C,这个接口是接电源的地方。

(2)DC Power是很奇怪的接口,好像目前并没有接头能插进去。

(3)有线网口

(4)上下错落着2个USB 3.2的接口,张小白打算用来接键盘和鼠标

(5)DisplayPort,是目前唯一的显示器接口

(6)Micro USB的接口,大概是可以用作串口吧。

背面旁边的一面看起啥也没有:

对比说明书:

你可以把它轻轻掀开:

有一个PCIe的接口,壳子上还有2根WiFI天线,说明它是自带无线网卡的。

再转过去,就到了正面(Front View):

左边是个Type-C接口,中间是40Pin接口,右边是两个USB3.2的接口。

我们再悄悄看看底面:

有个接M2的硬盘接口,有2个摄像头的接口。右下角应该是前面看到的TF卡槽。这块板子好像还是Made in China。

我们把装Orin设备的盒子拿出去后:

下面还有个附件的盒子:

打开看看:

上面是说明书(刚才拍过了)和电源适配器,下面是几股线缆:

有USB转Type=C的线,估计可以用接电脑。

下面是三根电源线:

根据电源插头的不同,估计是美标,英标插头之类的。反正有中国的插头就行:

AC电源适配器,也是中国制造。

电源适配器的另一头是Type-C插头,所以应该是接上前面Right View左上角那个Type-C的接口。

DisplayPort的接口有点奇怪:

好在张小白的小米曲面屏显示器有这个接口,张小白也有这跟DP线:

开箱到此结束。

二、开机

张小白打开说明书提供的链接:

只好求助于Nvidia的专家,获得了这个地址: https://developer.nvidia.com/embedded/learn/get-started-jetson-agx-orin-devkit

那就根据这个链接来Getting Started吧!

先把各种线接好:

(1)DP接口连显示器;

(2)电源线连DC口上面的Type-C口;

(3)机械键盘和鼠标连接2个USB 3.2的接口;

(4)有线网口暂时不接,因为有无线网卡。

开机,显示器切换到DP1:

不一会儿,进入Ubuntu的系统设置界面:

靠近点看:

accept后点击continue:

选择语言——中文(简体),继续:

连接无线网络,选择华为路由器的网络,点击 连接:

输入密码,connect:

选择时区——上海,继续:

输入计算机名称,登陆用户名和密码等信息,继续:

要求输入分区大小,看了下提示,输入0,继续:

设置Nvpmodel的Model,先选缺省的,继续:

问你要不要安装个浏览器,那就装吧:

耐心等待安装完毕,点击Close。

系统会继续进行安装:

直到进入登陆界面:

输入前面设置的密码后进入Ubuntu的桌面:

在弹出的页面中点击Skip:

选择No,点击Next:

Next:

Done。

系统问要不要升级包:

先选择Remind Me Later吧。

根据前面链接中的指引,打开终端:

sudo apt dist-upgrade

按Y继续:

耐心等待upgrade完毕:

查看下内存和存储的情况:

内存:

29G左右,估计是32G的内存。还有交换分区14G左右,估计是16G。。这个数字硬件厂商各有统计尺度,此处先不深究。

32G内存国外售价是899美元。国内的价格暂时不谈。。说多了都是泪。

存储:

大概是64G的存储,这跟标称的eMMC存储大小基本一致。

我们开始装Jetpack。据官方要求,Orin设备需要安装Jetpack 5.0。

sudo apt install nvidia-jetpack

咦?

看了下 /etc/apt/sources.list.d/nvidia-l4t-apt-source.list 文件:

这个源居然找不掉Jetpack包。。。

张小白又匆匆开始搜索,终于在Nvidia论坛发现了一个答案:

也就是需要将 r34.0改为r34.1才行,就如法炮制:

重新执行 sudo apt install nvidia-jetpack

按Y继续:

好像报了个错。应该是服务器不大好连。确实nvidia的服务器不大容易连,那就反复多试几次:

耐心等待结束:

再试一次:

嗯。不用试了。应该是安装完毕了。

根据官方说明,Jetpack 5.0包含以下组件:

它们的安装位置如下:

现在检查下目前安装的软件版本:

gcc和g++:9.4.0

CUDA的nvcc编译器:11.4

编辑~/.bashrc

source后生效:

这样就可以在任何地方编译CUDA的代码了。

opencv:4.5

Python:3.8.10,没有装PIP:

那就装一下吧。

先安装curl:

再用curl下载get-pip.py:

然后安装pip:

好了,Orin基础环境的安装就先介绍到这里吧。

三、开练

基础软件安装完毕后,当然是对这个设备做一些简单的深度学习尝试了。张小白曾经写过一篇:

张小白:Nvidia Jetson Nano B01初体验1 赞同 · 0 评论文章正在上传…重新上传取消

现在就依葫芦画瓢,看看Orin的表现如何:

LeNet是典型的手写数字识别网络,常用于深度学习初学者的入门,先用它来试一下:

1、cudnn_sample

cudnn_sample 内置了一个LeNet网络的测试,我们来试一下:

先更新下源:

cd /usr/src/cudnn_samples_v8/mnistCUDNN/

开始编译:

sudo make

发现需要安装一些系统依赖包:sudo apt-get install libfreeimage3 libfreeimage-dev

安装完毕后重新编译:

进行测试:

从上面的例子可以看出,相关的图片识别成为1、3、5,识别成功。

2、使用TensorFlow+Keras实现LeNet训练

安装系统依赖包:

sudo apt-get install python3-numpy

sudo apt-get install python3-scipy

sudo apt-get install python3-pandas

sudo apt-get install python3-matplotlib

sudo apt-get install python3-sklearn

sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran

sudo apt-get install python3-pip

安装PIP依赖包:

sudo pip3 install -U --no-deps numpy==1.19.4 future==0.18.2 mock==3.0.5 keras_preprocessing==1.1.2 keras_applications==1.0.8 gast==0.4.0 protobuf pybind11 cython pkgconfig -i https://pypi.tuna.tsinghua.edu.cn/simple

sudo env H5PY_SETUP_REQUIRES=0 pip3 install -U h5py==3.1.0

查看下JetPack 5.0 TensorFlow安装盘的地址:

安装TensorFlow1.15:

sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v50 'tensorflow<2'

检查TensorFlow是否成功安装:

安装Keras并检查是否成功安装:

sudo pip3 install keras

准备 keras_lenet.py这个训练LeNet网络的Python代码:(代码来源:https://blog.csdn.net/mr_muli/article/details/80992600 作者:木里先森)

# -*- coding: utf-8 -*-
"""
Created on Tue Jul 10 20:04:03 2018

@author: muli
"""

import tensorflow.keras
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten, Conv2D, MaxPooling2D
from tensorflow.keras import backend as K

num_classes = 10
img_rows, img_cols = 28, 28

# 通过Keras封装好的API加载MNIST数据。其中trainX就是一个60000 * 28 * 28的数组,
# trainY是每一张图片对应的数字。
(trainX, trainY), (testX, testY) = mnist.load_data()

# 根据对图像编码的格式要求来设置输入层的格式。
if K.image_data_format() == 'channels_first':
    trainX = trainX.reshape(trainX.shape[0], 1, img_rows, img_cols)
    testX = testX.reshape(testX.shape[0], 1, img_rows, img_cols)
    input_shape = (1, img_rows, img_cols)
else:
    trainX = trainX.reshape(trainX.shape[0], img_rows, img_cols, 1)
    testX = testX.reshape(testX.shape[0], img_rows, img_cols, 1)
    input_shape = (img_rows, img_cols, 1)

trainX = trainX.astype('float32')
testX = testX.astype('float32')
trainX /= 255.0
testX /= 255.0

# 将标准答案转化为需要的格式(one-hot编码)。
trainY = tensorflow.keras.utils.to_categorical(trainY, num_classes)
testY = tensorflow.keras.utils.to_categorical(testY, num_classes)
# 2. 通过Keras的API定义卷积神经网络
# 使用Keras API定义模型。
model = Sequential()
model.add(Conv2D(32, kernel_size=(5, 5), activation='relu', input_shape=input_shape))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(64, (5, 5), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(500, activation='relu'))
model.add(Dense(num_classes, activation='softmax'))

# 定义损失函数、优化函数和评测方法。
model.compile(loss=tensorflow.keras.losses.categorical_crossentropy,
              optimizer=tensorflow.keras.optimizers.SGD(),
              metrics=['accuracy'])

# 3. 通过Keras的API训练模型并计算在测试数据上的准确率
model.fit(trainX, trainY,
          batch_size=128,
          epochs=10,
          validation_data=(testX, testY))

# 在测试数据上计算准确率。
score = model.evaluate(testX, testY)
print('Test loss:', score[0])
print('Test accuracy:', score[1])

执行LeNet模型的训练代码:

该Python脚本会下载MNIST数据集,然后开始加载训练参数:

然后进行训练:

经过了几轮训练,准确率提高到了0.9821,loss降低到了0.0597左右。可见,Jetson AGX Orin在LeNet网络的运行结果,跟Jetson Nano是几乎一样的。当然,我们现在不涉及测试性能。

以上就是张小白初体验Jetson AGX Orin设备的过程,还有更多的内容需要张小白一一去挖掘呢!

(全文完,谢谢阅读)

  • 34
    点赞
  • 153
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 20
    评论
### 回答1: NVIDIA Jetson AGX Orin是一款高性能的嵌入式计算平台,适用于人工智能和机器学习应用。它采用了NVIDIA自主研发的Orin芯片,具有强大的计算能力和低功耗特性,可用于自动驾驶、机器人、智能城市等领域。该平台还支持多种传感器和接口,可实现多种应用场景。 ### 回答2: NVIDIA Jetson AGX Orin是一款功能强大的嵌入式计算平台,专为边缘计算和AI应用而设计。它可以处理复杂的视觉、声音和多传感器融合任务,是集成高性能计算、AI推理和视觉图像处理的终极解决方案。 Jetson AGX Orin的特点包括超高的计算性能、低延迟的响应时间、智能化的信号处理和丰富的数据接口。它采用12颗Arm Cortex-A78 CPU核心和6颗NVIDIA Ampere GPU,可支持11T层次的Tensor Core加速,性能比前一代Jetson Xavier AGX提高了1.7倍。 此外,Jetson AGX Orin还具有高效的功耗控制和灵活的软件开发环境。它支持NVIDIAJetPack和DeepStream SDK,提供完整的AI软件栈和工具套件,可轻松实现目标检测、语音识别、自动驾驶等复杂的应用场景。 总的来说,NVIDIA Jetson AGX Orin是一款非常先进和功能强大的嵌入式计算平台,可满足各种边缘计算和AI应用的需求。无论是智能制造、无人驾驶还是智能安防等领域,它都能提供快速、精确和高效的计算和分析能力。 ### 回答3: NVIDIA Jetson AGX Orin是一款高性能的AI计算平台,可以帮助开发者快速构建高级智能应用。它采用了NVIDIA自主设计的Orin系统芯片,拥有24个CPU和9个CUDA加速器,并支持多种视觉化处理技术。Jetson AGX Orin不仅具有高性能和低功耗的特点,还集成了许多传感器和接口,可以支持各种不同的应用场景,如自动驾驶、智能家居、工业自动化等。 Jetson AGX Orin的CPU采用了NVIDIA自主设计的Carmel核心,这是一种高性能的64位ARMv8 CPU,最高主频可达2.7GHz,具有强大的计算处理能力。它还配备了9个NVIDIA自主设计的CUDA加速器,其中8个可用于AI计算,1个用于图像信号处理。这些加速器可以在原始数据上进行高效且实时的计算,支持深度学习模型和图像处理算法的加速。 除了强大的处理能力,Jetson AGX Orin还与多种传感器和接口相结合,例如6路CSI-2相机接口、HDMI、USB-C和Gigabit以太网等接口。同时,它还集成了多种传感器,包括雷达、毫米波雷达和激光雷达等,可用于实现环境感知、位置和导航、障碍物检测和避障等功能。 总之,NVIDIA Jetson AGX Orin是一款高度集成的AI计算平台,拥有强大的计算能力和多种传感器和接口。它可以帮助开发者快速构建高级智能应用,解锁AI的潜力。
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张小白TWO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值