Jetson TX2 初体验

0. 简介

Jetson TX2【1】是基于 NVIDIA Pascal 架构的 AI 单模块超级计算机,性能强大(1 TFLOPS),外形小巧,节能高效(7.5W),非常适合机器人、无人机、智能摄像机和便携医疗设备等智能终端设备。
Jatson TX2 与 TX1 相比,内存和 eMMC 提高了一倍,CUDA 架构升级为 Pascal,每瓦性能提高一倍,支持 Jetson TX1 模块的所有功能,支持更大、更深、更复杂的深度神经网络。

TX2 内部结构如下:

1. 开箱

过程细节不展开,板卡上电后来张照片:

2. 刷机

TX2 出厂时,已经自带了 Ubuntu 16.04 系统,可以直接启动。但一般我们会选择刷机,目的是更新到最新的 JetPack L4T,并自动安装最新的驱动、CUDA Toolkit、cuDNN、TensorRT。

刷机注意以下几点:

  • Host 需要安装 Ubuntu 14.04,至少预留 15 GB 硬盘空间,不要用 root 用户运行 JetPack-${VERSION}.run,我用的是 JetPack-L4T-3.1-linux-x64.run
  • TX2 需要进入 Recovery Mode,参考随卡自带的说明书步骤
  • 刷机时间大概需要 1~2 小时,会格式化 eMMC,主要备份数据

3. 运行视频目标检测 Demo

刷机成功后,重启 TX2,连接键盘鼠标显示器,就可以跑 Demo 了。

nvidia@tegra-ubuntu:~/tegra_multimedia_api/samples/backend$ ./backend 1 ../../data/Video/sample_outdoor_car_1080p_10fps.h264 H264 --trt-deployfile ../../data/Model/GoogleNet_one_class/GoogleNet_modified_oneClass_halfHD.prototxt --trt-modelfile ../../data/Model/GoogleNet_one_class/GoogleNet_modified_oneClass_halfHD.caffemodel --trt-forcefp32 0 --trt-proc-interval 1 -fps 10

视频截图如下:

4. 运行 TensorRT Benchmark

TensorRT 【3】是 Nvidia GPU 上的深度学习 inference 优化库,可以将训练好的模型通过优化器生成 inference 引擎

将 TX2 设置为 MAXP (最高性能)模式,运行 TensorRT 加速的 GoogLeNet、VGG16 得到处理性能如下:

5. TX2 不支持的 feature

  • 不支持 int8
  • 待发现

参考文献

【1】嵌入式系统开发者套件和模块 | NVIDIA Jetson | NVIDIA
【2】Download and Install JetPack L4T
【3】TensorRT

附录

deviceQuery

nvidia@tegra-ubuntu:~/work/TensorRT/tmp/usr/src/tensorrt$ cd /usr/local/cuda/samples/1_Utilities/deviceQuery
nvidia@tegra-ubuntu:/usr/local/cuda/samples/1_Utilities/deviceQuery$ ls
deviceQuery  deviceQuery.cpp  deviceQuery.o  Makefile  NsightEclipse.xml  readme.txt
nvidia@tegra-ubuntu:/usr/local/cuda/samples/1_Utilities/deviceQuery$ ./deviceQuery
./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "NVIDIA Tegra X2"
  CUDA Driver Version / Runtime Version          8.0 / 8.0
  CUDA Capability Major/Minor version number:    6.2
  Total amount of global memory:                 7851 MBytes (8232062976 bytes)
  ( 2) Multiprocessors, (128) CUDA Cores/MP:     256 CUDA Cores
  GPU Max Clock rate:                            1301 MHz (1.30 GHz)
  Memory Clock rate:                             1600 Mhz
  Memory Bus Width:                              128-bit
  L2 Cache Size:                                 524288 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
  Maximum Layered 1D Texture Size, (num) layers  1D=(32768), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(32768, 32768), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 32768
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 1 copy engine(s)
  Run time limit on kernels:                     No
  Integrated GPU sharing Host Memory:            Yes
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device PCI Domain ID / Bus ID / location ID:   0 / 0 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 8.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = NVIDIA Tegra X2
Result = PASS

内存带宽测试

nvidia@tegra-ubuntu:/usr/local/cuda/samples/1_Utilities/bandwidthTest$ ./bandwidthTest
[CUDA Bandwidth Test] - Starting...
Running on...

 Device 0: NVIDIA Tegra X2
 Quick Mode

 Host to Device Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)    Bandwidth(MB/s)
   33554432         20215.8

 Device to Host Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)    Bandwidth(MB/s)
   33554432         20182.2

 Device to Device Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)    Bandwidth(MB/s)
   33554432         35742.8

Result = PASS

NOTE: The CUDA Samples are not meant for performance measurements. Results may vary when GPU Boost is enabled.

GEMM 测试

nvidia@tegra-ubuntu:/usr/local/cuda/samples/7_CUDALibraries/batchCUBLAS$ ./batchCUBLAS -m1024 -n1024 -k1024
batchCUBLAS Starting...

GPU Device 0: "NVIDIA Tegra X2" with compute capability 6.2

 ==== Running single kernels ====

Testing sgemm
#### args: ta=0 tb=0 m=1024 n=1024 k=1024  alpha = (0xbf800000, -1) beta= (0x40000000, 2)
#### args: lda=1024 ldb=1024 ldc=1024
^^^^ elapsed = 0.00372291 sec  GFLOPS=576.83
@@@@ sgemm test OK
Testing dgemm
#### args: ta=0 tb=0 m=1024 n=1024 k=1024  alpha = (0x0000000000000000, 0) beta= (0x0000000000000000, 0)
#### args: lda=1024 ldb=1024 ldc=1024
^^^^ elapsed = 0.10940003 sec  GFLOPS=19.6296
@@@@ dgemm test OK

 ==== Running N=10 without streams ====

Testing sgemm
#### args: ta=0 tb=0 m=1024 n=1024 k=1024  alpha = (0xbf800000, -1) beta= (0x00000000, 0)
#### args: lda=1024 ldb=1024 ldc=1024
^^^^ elapsed = 0.03462315 sec  GFLOPS=620.245
@@@@ sgemm test OK
Testing dgemm
#### args: ta=0 tb=0 m=1024 n=1024 k=1024  alpha = (0xbff0000000000000, -1) beta= (0x0000000000000000, 0)
#### args: lda=1024 ldb=1024 ldc=1024
^^^^ elapsed = 1.09212208 sec  GFLOPS=19.6634
@@@@ dgemm test OK

 ==== Running N=10 with streams ====

Testing sgemm
#### args: ta=0 tb=0 m=1024 n=1024 k=1024  alpha = (0x40000000, 2) beta= (0x40000000, 2)
#### args: lda=1024 ldb=1024 ldc=1024
^^^^ elapsed = 0.03504515 sec  GFLOPS=612.776
@@@@ sgemm test OK
Testing dgemm
#### args: ta=0 tb=0 m=1024 n=1024 k=1024  alpha = (0xbff0000000000000, -1) beta= (0x0000000000000000, 0)
#### args: lda=1024 ldb=1024 ldc=1024
^^^^ elapsed = 1.09177494 sec  GFLOPS=19.6697
@@@@ dgemm test OK

 ==== Running N=10 batched ====

Testing sgemm
#### args: ta=0 tb=0 m=1024 n=1024 k=1024  alpha = (0x3f800000, 1) beta= (0xbf800000, -1)
#### args: lda=1024 ldb=1024 ldc=1024
^^^^ elapsed = 0.03766394 sec  GFLOPS=570.17
@@@@ sgemm test OK
Testing dgemm
#### args: ta=0 tb=0 m=1024 n=1024 k=1024  alpha = (0xbff0000000000000, -1) beta= (0x4000000000000000, 2)
#### args: lda=1024 ldb=1024 ldc=1024
^^^^ elapsed = 1.09389901 sec  GFLOPS=19.6315
@@@@ dgemm test OK

Test Summary
0 error(s)
时间: 2024-10-29 17:47:09

Jetson TX2 初体验的相关文章

XenApp / XenDesktop 7.6 初体验一 安装, 配置站点和序列号服务

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://beanxyz.blog.51cto.com/5570417/1579558 最新的Xen Desktop/Xenapp 已经到7.6的版本了.豆子自己搭建了个实验环境练练手. 虚拟平台我使用的是ESXi 5.5,OS都是windows 2012R2,之前我已经设置了Vcenter,DC和SQL 服务器.可以说准备工作基本上都好了.登录 Citrix.com,下载试用版的ISO镜

初体验JBossESB 及 部署使用 Hello World QuickStart

http://yulimin.javaeye.com/blog/52980 关键字:   ESB SOA     初体验JBossESB 及 部署使用 Hello World QuickStart1.下载 JBoss 4.0.5 GA 及 JBossESB 4.0 CR2 并解压,如果是src包的话,进入JBossESB目录运行ant install %JBoss_HOME% : C:/OpenSource/JBoss/4.0 %JBossESB_HOME% : C:/OpenSource/JB

zephir-(2)安装和初体验

zephir-安装和初体验 前言 先在这里感谢各位zephir开源技术提供者 zephir主要是解决了PHP开发人员尝试编写和编译PHP拓展所能执行的代码的语言.这是一个支持动态/静态类型的语言,熟悉PHP开发人员可以很好的进行开发.zephir这个名字的主要来源是(Zend Engine/PHP/Intermediate),今天首先介绍zephir的安装,接着会对zephir进行一些语法上面的介绍,希望大家喜欢! 注:笔者水平有限,说的不正确的地方希望大家多多指正,一同交流技术 附上: 喵了个

新手RoR十分钟初体验Step By Step

http://yulimin.javaeye.com/blog/35929 关键字: rails   Ruby Rails RoR     新手RoR十分钟初体验Step By Step 声明一下,这是个新手启动的体验文章,高手不要看了...:) 1.安装RubyWindows用户去 http://rubyforge.org/ 的 http://rubyforge.org/projects/rubyinstaller/ 下载 One-Click Installer - Windows 安装即可,

php+jquery+ajax初体验

这个一个简单的php与ajax案例 仅供新手学习 附上效果图 jquery ajax代码  $(function(){   $("#send").click(function(){    var cont = $("input").serialize();    $.ajax({     url:'aseoe.php',     type:'post',     dataType:'json',     data:cont,     success:function

Fireworks MX 之初体验1-2

在编者的苦口婆心,盛情邀请下,风云设计 的两位高手 风筝 和 心动为谁 终于答应,为广大朋友奉献对 Fireworks MX 的亲密接触后带来的初体验,为喜爱 Fireworks 的 fans 们作出贡献,特此鸣谢! Optimize of FW4 Optimize of FWMX 通过比较,我们发现FWMX中Optimize面板比起FW4中的内容要丰富多了,包括弹出菜单选项,其实通过观察,我们可以清楚的看到,现在的Optimize面板其实是将FW4中的Optimize面板和Color面板整合到

Fireworks MX 之初体验1-1

在编者的苦口婆心,盛情邀请下,风云设计 的两位高手 风筝 和 心动为谁 终于答应,为广大朋友奉献对 Fireworks MX 的亲密接触后带来的初体验,为喜爱 Fireworks 的 fans 们作出贡献,特此鸣谢! Fireworks MX 初体验 正如好多"专家"预料的那样,Fireworks Mx(Beta)[以后简称FWMX]终于在5月份左的时候出现了.估计刚刚拿到测试版的朋友们的心情肯定和我是一样的--激动得很.并且对她充满无限憧憬.我现在倒是真的很想知道各位在安装后,然后真

Fireworks MX 之初体验2-1

在编者的苦口婆心,盛情邀请下,风云设计 的两位高手 风筝 和 心动为谁 终于答应,为广大朋友奉献对 Fireworks MX 的亲密接触后带来的初体验,为喜爱 Fireworks 的 fans 们作出贡献,特此鸣谢! 优化菜单面面观 上节我们对FWMX的最新.最酷(好像我很能落伍一样,总用老掉牙的词汇~)的各种新面板做了一个简单的介绍和了解,不知道各位是不是已经拿到了FWMX的测试版本开始体验了,相信体验的感觉总的来说应该是美妙的.本节我们来一起看看FWMX的各级菜单及其相关命令.同样,我们仍然

Fireworks MX 之初体验2-2

在编者的苦口婆心,盛情邀请下,风云设计 的两位高手 风筝 和 心动为谁 终于答应,为广大朋友奉献对 Fireworks MX 的亲密接触后带来的初体验,为喜爱 Fireworks 的 fans 们作出贡献,特此鸣谢! 优化菜单面面观 四.Text(文本)菜单. 通过观察,发现最大的一个变化就是增加文本拼写检查功能:"Check Spelling"和"Spelling Setup",这个功能的增加使得其文本编辑能力似乎又有所增强了,不过感觉实际运用中的意思似乎不大.并