nvidia jetson tx2 配置过程遇到的问题总结

nvidia jetson tx2 配置过程遇到的问题总结

  • 刷机
  • 相关配置
    • 查看板卡状态
    • cuda cudnn
    • 安装tensorflow
    • tx2找不到gpu
  • 其他
  • vscode

拿到一块nvidia jetson tx2 开发板,进行研究。
由于其采用arm架构,异于大部分计算终端的x86架构,所以在配置的过程中遇到了很多问题。现总结如下。

刷机

拿到板子应该先刷个机,我采用了最新的jetpack4.3进行刷机。刷机过程可参照大多数教程,其中注意:

  • 需要另找一台ubuntu的机器作为host机
  • 连接tx2与host的线一定是随箱附带的黑线
  • 给tx2配的显示器别是vga的 最好hdmi,dp的如果有转接口也行(me)
  • 安装的时候在同一网段,我没给tx2连网线,直接用套件里的天线接收wifi也没问题
  • 这里需要注意,我在刷完机后tx2一直显示
A start job is running for End-user configuration after initial OEM installation ( xx s / no limit)

关键是后面总时间是no limit!我足足等了10个多小时还没结束…
最后看了链接,问题得到了解决:只需按tx2上的Reset键即可!!

  • 在host端不要随便退出 sdkmanager,否则一切都得重来。如果出错可以点重新开始。
  • 期间刷机不成功,我调整了tx2的linux源、dns就没有错误了,仅供参考。

相关配置

如果是第一次玩arm架构的东西,还是建议先读下这个链接
后悔读晚了,中间进行了很多骚操作。

查看板卡状态

nvidia -smi是没有的 可以使用tx2的ubuntu系统桌面上方的

run tegrastcts

或者在根目录下直接运行tegrastcts命令
可以查看当前tx2的CPU、GPU、温度 等一系列参数
nvidia jetson tx2 配置过程遇到的问题总结_第1张图片
GR3D_FREQ可理解为gpu的占用率

cuda cudnn

写在前面:其实在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也是兼容的。

安装tensorflow

强烈推荐阅读tx2的官方安装tf的文档,按照里面的内容操作。
官方文档
介于空间不大,pip足够了,切记按照官方文档来,否则会出很多问题,不一一赘述了。

tx2找不到gpu

土办法:

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"

感觉还是把这个256核当成了一块显卡来用

其他

tx2上的显存与内存是一起用的,所以不建议同时开太多东西,并多注意内存/显存使用

vscode

接触了vscode,发现真乃linux远程开发神器
轻量级ide,安装包不到100M,设计感很强,而且界面很友好,还有不少插件。推荐tabnine和汉化包。
估计以后的趋势都是这种轻量级ide吧,对着vim或者用notepad++很多功能和标识不够清晰,用vs的话占地太大且运行速度慢,都不如使用vscode清爽方便。

可以下载remote development插件进行远程开发 麻烦的是需要手动将公钥传给tx2
参考链接

你可能感兴趣的:(嵌入式)