在Arm板(NVIDIA AGX Xavier)配置深度学习环境+安装llvm/llvmlite/numba

一、引言

  • 在Arm板上配置环境是具体要求,我们需要在上面配置好Ros环境以及深度学习环境,当然Ros环境也有一些问题,具体会写在另外的博客里,本次主要解决深度学习环境配置的问题。
  • 系统与环境:Arm、Ubuntu18.04、JetPack 4.4、Cuda10.2、Cudnn8.0.0.180
  • 内容:(1)配置conda虚拟环境(2)llvm/llvmlite/numba
  • 我主要是配置pointpillar这个三维目标检测的算法,遇到的问题主要也就是llvm这些包版本的依赖关系的问题解决上,挺麻烦的,其他的基本包如matplotlib啥的都配置挺顺利的,所以本文就把最主要的问题拿出来解决,其他的问题应该不是很大。

    二、配置深度学习环境

    正常的PC机只需要在网上下载Anaconda脚本即可安装,但是Arm板不太兼容,需要安装另外一种虚拟环境archiconda

2.1 安装前准备

我已经把所有的包下好并且上传到百度网盘,提取码为3smw

2.2 安装archiconda

1、下载完全部包后执行

sh Archiconda3-0.2.3-Linux-aarch64.sh

其他步骤和正常PC安装conda环境一致~
2、终端输入jtop查看一下自己的JetPack版本,我的是4.4

大家版本如果跟我的一致就直接用我包里的Pytorch的Wheel文件,如果是JetPack5.0以上就自己去官网下载一下~~~,torchvision可以从CSDN上下载
3、创建虚拟环境并安装pytorch,torchvision

    # 创建虚拟环境
    conda create -n object python=3.6  
    conda activate object
    # 安装依赖
    sudo apt-get install python3-pip libopenblas-base libopenmpi-dev
    sudo pip3 install Cython 
    # 安装pytorch(要进入对应的文件所在路径)
    pip3 install torch-1.9.0-cp36-cp36m-linux_aarch64.whl
    pip3 install numpy
    # 安装torchvision(要进入对应的文件所在路径)
    pip3 install torchvision-0.10.0 -cp36-cp36m-linux_aarch64.whl
    # 配置环境变量
    sudo gedit ~/.bashrc   #编辑bashrc
    export OPENBLAS_CORETYPE=ARMV8  #加到bashrc文件最后一行
    source ~/.bashrc   #更新一下环境变量
    # 验证torch安装成功,进入虚拟环境后依次输入
    python 
    import torch
    torch.cuda.is_available() # 返回True则安装成功
    import torchvision
    torchvision.__version__ # 返回版本号则安装成功

2.3 安装llvm/llvmlite/numba

这一部分配置了一天多,其实主要还是网速的问题,然后Arm板不知道为什么安装正常的深度学习包需要很久,尤其是生成wheel文件的时候会卡很久,其他没有什么问题
1、安装llvm

    # 下载安装包到/usr/local下并且重命名为llvm,可能需要sudo权限
    wget https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.0/clang+llvm-10.0.0-aarch64-linux-gnu.tar.xz
    tar xJvf clang+llvm-10.0.0-aarch64-linux-gnu.tar.xz
    # 添加环境变量后就生效了
    gedit ~/.bashrc
    alias llvm-config="llvm-config"
    export LLVM_CONFIG="/usr/local/llvm/bin/llvm-config"
    export PATH=$PATH:/usr/local/llvm/bin

2、安装llvmlite
和llvm一样最好不要安装旧版本的,原本自带的llvm只有6.0能把人坑死,后面安llvmlite和numba各种报错,就算成功安装了,后面运行深度学习程序一样会有问题,挺让人崩溃的,所以后面打算重新配置这三个软件包的版本,下图是llvm和llvmlite的版本对应关系,因为我们下载的是llvm10.0版本,所以直接下载llvmlite0.36就可以了

pip install llvmlite==0.36.0 # 记得切换虚拟环境
sudo apt-get install libtinfo-dev # 这个是看一个博主说要安装否则会报错,但是我没有遇到过


3、安装numba

pip install numba

三、总结

总体来说遇到很多坑,幸亏有些许靠谱的博主,参考之下完成了这些,也让自己对Arm板有了全新的认识~~,主要就是依赖包版本的问题。

四、参考文献

[1] https://blog.csdn.net/qq_41426807/article/details/124705416
[2]https://blog.csdn.net/weixin_41010198/article/details/109383044