拿到板子应该先刷个机,我采用了最新的jetpack4.3进行刷机。刷机过程可参照大多数教程,其中注意:
A start job is running for End-user configuration after initial OEM installation ( xx s / no limit)
关键是后面总时间是no limit!我足足等了10个多小时还没结束…
最后看了链接,问题得到了解决:只需按tx2上的Reset键即可!!
如果是第一次玩arm架构的东西,还是建议先读下这个链接
后悔读晚了,中间进行了很多骚操作。
nvidia -smi是没有的 可以使用tx2的ubuntu系统桌面上方的
run tegrastcts
或者在根目录下直接运行tegrastcts命令
可以查看当前tx2的CPU、GPU、温度 等一系列参数
GR3D_FREQ可理解为gpu的占用率
写在前面:其实在jetpack刷机后,就自动把cuda和cudnn配好了
目前jetpack4.3 配置的对应版本是cuda10、cudnn7.6.3
但是装完之后我却以下指令
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
找不到cudnn,以为没有装上(实际上已经装好了)。到网上找cudnn on arm的安装包只找到一个cudnn7.6.4 for cuda10.2的版本
结果装了以后本来能跑的程序也跑不了了。我继续在网上查找适合cuda10.0 且是arm架构下的 cudnn的安装包就再也找不着了! 官网上只有支持cuda10.2的版本,真的是磨人。这时我才反应过来当时刷完机其实就都已经装好了。
耗费了很多时间
最后的解决办法:
受 链接 启发,我需要找回刷机时的cudnn版本安装包,索性不如回到host机器上找找。竟然真的被我发现了,目录在
/home/(xxx)/Downloads/nvidia/sdkm_downloads
中,找到了我需要的cudnn版本,cudnn7.6.3 arm for cuda10.0!
libcudnn7_7.6.3.28-1+cuda10.0_arm64.deb
libcudnn7-dev_7.6.3.28-1+cuda10.0_arm64.deb
libcudnn7-doc_7.6.3.28-1+cuda10.0_arm64.deb
把包拷贝到tx2上进行安装,解决了出现的问题。
还是要相信nvidia的jetpack,虽然jetpack操作比较麻烦,但是比起来一个一个的配置,已经为开发者省了90%的麻烦了。
TensorFlow1.2~2.1各个GPU版本CUDA和cuDNN对应版本合集 留存备用,里面的信息不一定全,因为我cuda10.0,安装的cudnn7.6.3也是兼容的。
强烈推荐阅读tx2的官方安装tf的文档,按照里面的内容操作。
官方文档
介于空间不大,pip足够了,切记按照官方文档来,否则会出很多问题,不一一赘述了。
土办法:
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
感觉还是把这个256核当成了一块显卡来用
tx2上的显存与内存是一起用的,所以不建议同时开太多东西,并多注意内存/显存使用
接触了vscode,发现真乃linux远程开发神器
轻量级ide,安装包不到100M,设计感很强,而且界面很友好,还有不少插件。推荐tabnine和汉化包。
估计以后的趋势都是这种轻量级ide吧,对着vim或者用notepad++很多功能和标识不够清晰,用vs的话占地太大且运行速度慢,都不如使用vscode清爽方便。
可以下载remote development插件进行远程开发 麻烦的是需要手动将公钥传给tx2
参考链接