Ubuntu20.04系统CUDA11.1环境上MXNet源码安装

前言

MXNet预编译包目前支持CUDA8.0至CUDA11.0等常用版本,可以直接通过pip安装。而在新的GeForce 3090显卡上,如果安装了CUDA11.1,则无法采用这种便捷方式安装MXNet。通过查找资料,发现可以通过源码安装的方式兼容CUDA11.1。
在这里插入图片描述

安装

  1. 下载源码

    git clone --recursive https://github.com/apache/incubator-mxnet mxnet
    cd mxnet
    git checkout 1.8.0.rc2
    

    若采用下面这种方式下载源码的话,则需要额外下载子模块。

    git clone https://github.com/apache/incubator-mxnet.git mxnet
    cd mxnet
    git submodule update --init --recursive
    git checkout 1.8.0.rc2
    
  2. 下载依赖库

    sudo apt-get update
    sudo apt-get install -y build-essential git ninja-build ccache libopenblas-dev libopencv-dev cmake
    sudo apt install gfortran
    
  3. 修改编译选项

    cp make/config.mk .
    vi config.mk
    

    打开CUDA支持:

    USE_CUDA = 1
    
    USE_CUDA_PATH = /usr/local/cuda
    
  4. 增加3090显卡算力代码(86)

    vi Makefile
    
    KNOWN_CUDA_ARCHS := 30 35 50 52 60 61 70 75 80 86
    
  5. 编译

    makemake -j8
    或
    make -$(nproc) [推荐]
    
  6. 安装Python支持
    正常情况下,编译很长一段时间后,最后出现下面提示后说明编译通过。

    Finished processing dependencies for mxnet==1.8.0
    

    通过下面命令生成Python支持:

    cd python
    python setup.py install
    
  7. 测试

    >>> import mxnet as mx
    >>> a=mx.nd.ones((2,3),mx.cpu())
    >>> print((a*2).asnumpy())
    [[2. 2. 2.]
     [2. 2. 2.]]
    

问题汇总

源码编译过程中可能会出现下面的问题,做个记录:

  1. 缺少BLAS
    报错/usr/bin/ld: cannot find -lcblas
    采用sudo apt-get install libatlas-base-dev解决。
    在这里插入图片描述
    在这里插入图片描述

  2. Git工程缺少子模块

    Makefile:23: mshadow/make/mshadow.mk: No such file or directory
    Makefile:24: /home/usr/incubator-mxnet-0.7.0/dmlc-core/make/dmlc.mk: No such file or directory
    Makefile:86: /home/usr/incubator-mxnet-0.7.0/ps-lite/make/ps.mk: No such file or directory
    make: *** No rule to make target `/home/usr/incubator-mxnet-0.7.0/ps-lite/make/ps.mk'.  Stop.
    

    需要拉取子模块:

    git submodule update --init --recursive
    
  3. 测试通过的版本是Tag 1.8.0.rc2,下载工程后需要git checkout 1.8.0.rc2
    在这里插入图片描述

  4. CUDA11.0的mxnet可以直接安装mxnet-cu110

    pip install mxnet-cu110==1.9.0b20201117 -f https://dist.mxnet.io/python/cu110
    

    注:更多安装包可以直接通过https://dist.mxnet.io/python/获取。

在这里插入图片描述

参考资料

[1] GitHub - apache / incubator-mxnet
[2] mxnet包官网分发
[3] GitHub issues - apache / incubator-mxnet - Using mxnet on RTX3090 #19520
[4] Build MXNet from Source
[5] Mxnet编译安装
[6] Install MxNet from sources on Ubuntu
[7] sudo apt-get install libatlas-base-dev

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TracelessLe

❀点个赞加个关注再走吧❀

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值