在Nidia Xavier上使用docker遇到的问题

2023-05-16

在Nidia Xavier上使用docker遇到的问题

    • 1.Xavier没有wifi模块
    • 2.在docker run --gpus all时出现docker: Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: Running hook #0:: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as 'csv'
    • 3.torch.cuda.is_available()输出为false
    • 4.运行MLPerf中的pytorch backend时找不到cuda
    • 5.安装onnx失败

最近在搞Nidia AGX Xavier嵌入式端的神经网络部署,考虑到环境的可移植性采用docker的方法,总结一下目前遇到的几个问题:

1.Xavier没有wifi模块

适用于没有路由器直接引入网线的情况
解决办法:
1.参考玩转NVIDIA Jetson AGX Xavier(4)— Xavier 无线上网&安装rtl8812au驱动购买Intel 8265AC接入Xavier底板
2.使用一个带有wifi模块的pc主机,通过网线连接Xavier,具体设置参考主机ubuntu连接无线网络,通过网线分享网络给Xavier的配置过程

2.在docker run --gpus all时出现docker: Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: Running hook #0:: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as ‘csv’

首先要明确知道,Xaiver是arm64平台,在x86平台pc机构建的docker镜像是完全不通用的,因此一般推荐使用l4t的镜像。
L4T是Linux for Tegra的缩写,因为jetson系列用的是Tegra架构,因此L4T可以理解为jetson定制的Linux操作系统,具体的来说就是ubuntu定制款(引用自玩转NVIDIA Jetson AGX Xavier(9)— L4T内核kernel编译之理解L4T及kernel编译)。

#搜索l4t镜像
docker search l4t

在这里插入图片描述

#拉取镜像
docker pull mdegans/l4t-base

在这里插入图片描述

#运行镜像并调用宿主机gpu,报错
docker run -it --gpus all mdegans/l4t-base:latest

在这里插入图片描述看提示应该是运行时不正确,但是最开始以为是docker安装有问题,跟着其他博客重新安装了nvidia-docker2,nvidia-container-toolkit等都没有用,最后仔细看了一眼才知道需要声明nvidia运行时

#加入运行时
docker run -it --gpus all --runtime=nvidia mdegans/l4t-base:latest

在这里插入图片描述
成功创建容器

3.torch.cuda.is_available()输出为false

在这里插入图片描述
根据torch官网的下载方法,标注有+cudaxxx后缀和cudatoolkit=xxx的下载方式基本都搜索不到源(使用的是清华源),因此这种下载方式应该是不对的

ps:
找到一个好东西,之前参考的是官方的mlcommon的mlperf,但是dockerfile是基于x86构建的,这两天搜到一个专门在jeston平台的推理包jetson-inference

4.运行MLPerf中的pytorch backend时找不到cuda

测试mlcommon中的mlperf-inference时发现pytorch总是找不到cuda,一直device为‘cpu’导致运行很慢,而测试yolov7的detect代码则cuda运行成功
在这里插入图片描述
最后想到研究生时期使用mmdet时需要在代码中添加

os.enviorn['CUDA_VISIBLE_DEVICES']='0'

在这里插入图片描述

才能运行成功
在这里插入图片描述
使用onnxruntime作为backend时同样需要torch.cuda.is_available()==true
在这里插入图片描述
在这里插入图片描述

5.安装onnx失败

通过pip install onnx时编译失败
在这里插入图片描述
参考Jetson 系列 (九)ONNX
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Nidia Xavier上使用docker遇到的问题 的相关文章

随机推荐