Ubuntu20.04 PointPillars 复现过程踩坑实录

本文详细讲述了在使用nutonomy_pointpillars时遇到的`ModuleNotFoundError`和`FileNotFoundError`问题,包括添加路径解决`second`模块导入错误,以及如何通过nvidia-docker2配置GPU以避免`libcuda.so:filetooshort`错误。此外,还涉及配置文件路径调整和OpenGL缺失的修复。

准备

PointPillars开源代码路径

nutonomy_pointpillars

错误汇总

1. ModuleNotFoundError: No module named ‘second’

报错:

进入到./second路径下,执行下面命令

python create_data.py create_kitti_info_file --data_path=/data/sets/kitti_second/

会报错,

ModuleNotFoundError: No module named ‘second’

除此之外还有许多警告,先忽略警告内容。

原因

当我们导入一个模块时: import xxx ,默认情况下python解释器会搜索当前目录、已安装的内置模块和第三方模块。

但目前无法找到‘second’module,而‘second’在上一层目录,因此需要添加该路径,使得程序可以成功import second。

解决方案

在create_data.py的’from skimage import io as imgio’后添加:

import sys
sys.path.append("..")

重新编译,这个错误消失。

2. /usr/lib/x86_64-linux-gnu/libcuda.so: file too short

报错:

进入到./second路径下,执行下面命令

python create_data.py create_kitti_info_file --data_path=/data/sets/kitti_second/

会报错,

numba.cuda.cudadrv.error.CudaSupportError: Error at driver init: 

Possible CUDA driver libraries are found but error occurred during load:
/usr/lib/x86_64-linux-gnu/libcuda.so: file too short

原因

源码文档中提供的docker中安装好了环境,但是在docker中无法使用本机的GPU,因此需要安装nvidia-docker2。

nvidia-docker2是一个可以使用GPU的docker,nvidia-docker是在docker上做了一层封装,通过nvidia-docker-plugin,然后调用到docker上。

解决方案

安装nvidia-docker2。前提是在本机上已经安装好了nvidia显卡驱动,这里不再赘述显卡驱动安装过程。

1. 安装
过程参考官网链接

https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker

步骤如下:

  1. 设置稳定版本的库及GPG密钥
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
  1. 更新好包列表之后,安装nvidia-docker2包及其依赖:
sudo apt-get update
sudo apt-get install -y nvidia-docker2
Get:1 https://nvidia.github.io/libnvidia-container/stable/ubuntu18.04/amd64  libnvidia-container1 1.10.0-1 [926 kB]
Get:2 https://nvidia.github.io/libnvidia-container/stable/ubuntu18.04/amd64  libnvidia-container-tools 1.10.0-1 [24.1 kB]
Get:3 https://nvidia.github.io/libnvidia-container/stable/ubuntu18.04/amd64  nvidia-container-toolkit 1.10.0-1 [1,961 kB]
Get:4 https://nvidia.github.io/libnvidia-container/stable/ubuntu18.04/amd64  nvidia-docker2 2.11.0-1 [5,544 B]
Fetched 2,917 kB in 1min 36s (30.3 kB/s)       
  1. 重启Docker后台驻留程序:
sudo systemctl restart docker
  1. 现在可以通过运行base CUDA container来测试一个working setup
sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi
  1. 控制台的输出如下,说明nvidia-docker2安装成功:
+-----------------------------------------------------------------------------+
| NVIDIA
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值