Jetson TX1入手(/ω\)

其实在去年12月10来号的时候,就已经决定要入手一个Jetson TX1做开发了,一方面是因为现在使用的MacBook自带的Intel(R) HD Graphics 515性能比较低,当时用waifu2x把一个720P的视频拉到了2560x1440,跑了两周多吧……另一方面是想学习一些并行计算和机器学习的技术。于是就让梅子帮我拿到了一个教育版的Jetson TX1~(我们学校那时还没有教育邮箱,不过现在可以申请啦)

实际拿到Jetson TX1是在12月30号,不过当时刷完系统,装了torch 7之后发现居然就没剩多少了

df -h
df -h

于是剁了一块SSD(下个月吃土吧_(:_」∠)_)

Jetson TX1刷系统没什么好说的,按照Nvidia的给的套路走就行,不过国内Jetpack L4T偶尔下载不了某些包(原因想必都懂),这时可以自己在repository.json中找一下对应的包,然后想办法手动下载到jetpack_download里面。比如cuDNN-v5.1.zip这个包,可以用wget下载repository.json中给出的url。然后印象中jetpack_download里会有对应的记录下载信息的文件,在覆盖zip包之后把记录文件删除,然后重新运行Jetpack L4T就可以。(必要时还可以把repository.json、manifest.json、update.lock删掉,之后再辅以重启大法,为什么这么玄学……)

cuDNN
cuDNN

在终端里ssh到Jetson TX1上,可以看到有一大堆更新可用,那么总之先更新一下再说吧

apt更新
apt更新

更新完以后关机接上SSD(Jetson TX1似乎不支持SATA的热插拨)

通过ls /dev/sd*可以看到这块SATA SSD,然后执行

sudo mkfs -t ext4 /dev/sda

这里我使用的是ext4分区格式,若另有需求则对应更改参数即可。

随后我们就直接编辑/etc/fstab,让Jetson TX1开机时自动挂载这个SSD

/etc/fstab
/etc/fstab

这里我选择让它(/dev/sda)挂载到 /home/ubuntu/ssd 这个目录下(当然你得先建立这个目录),这个完全是出于个人偏好。随后我们指定了文件系统的类型是 ext4,当然用 auto 让 mount 工具自动检测文件系统类型也不错。然后 option 部分就直接写了 defaults,它等价于 rw,suid,dev,exec,auto,nouser,async。这些 option 的意义可以参看man页面。最后的两个 0 分别代表:让dump utility忽略这个文件系统,不需要fsck utility检查。根据实际需求调整吧。

重启之后可以看到 /dev/sda 的确挂载到了 /home/ubuntu/ssd 这个目录下,不过owner和group都是root,我们把它改为ubuntu就好。

SSD mounted
SSD mounted

最后就是比较常用的一些东西,我这里装了 Torch 7 和 OpenCV 3.2。不过 OpenCV contrib 里有一些 module 在 cmake 准备时因为依赖的原因没有开启编译,虽然我已经装上了那些依赖……最后Google了半天也不知道是哪里的问题,总之先编译上了,之后用到的话,再看 OpenCV 官方有没有更新吧_(: 」∠)_

Torch 7基本按照官方的指南安装就可以,不过在编译的过程中可能会出现这样的错误。

Torch 7
Torch 7

这里Torch 7把Jetson TX1的架构认成是x86了,于是需要手动改一下Torch 7目录下的源文件

$ vim torch/pkg/torch/lib/TH/generic/simd/simd.h

把在92行左右的cpuid函数注释掉

/*static inline void cpuid(uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx) {
...
}*/

随后把紧跟着cpuid函数后面的函数改为

static inline uint32_t detectHostSIMDExtensions()
{
    return SIMDExtension_DEFAULT;
}

就可以正常编译了。

这里用waifu2x测试了一下,比我在MacBook(Intel(R) HD Graphics 515)上处理快太多了。在电脑上一张1280x720大约需要1分钟,在Jetson TX1只需要5、6秒就完成了。

waifu2x

对比如下,这里是原图

原图
原图

2倍放大及降噪之后的图

经过waifu2x处理后的
经过waifu2x处理后的

于是Jetson TX1上的环境基本上搭好了~

Leave a Reply

Your email address will not be published. Required fields are marked *

5 × four =