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
    评论
好的,以下是在 Ubuntu 20.04 安装 CUDA 11.1 的步骤: 1. 下载 CUDA 11.1安装包。可以在 NVIDIA 官方网站上下载适用于 Ubuntu 20.04CUDA 11.1 安装包。链接如下:https://developer.nvidia.com/cuda-downloads 2. 安装必要的软件包。在安装 CUDA 之前,需要先安装必要的软件包。可以使用以下命令安装: ``` $ sudo apt-get update $ sudo apt-get install build-essential dkms freeglut3 freeglut3-dev libxi-dev libxmu-dev ``` 3. 禁用 Nouveau 驱动。在安装 CUDA 之前,需要先禁用 Nouveau 驱动。可以按照以下步骤进行操作: - 编辑 /etc/modprobe.d/blacklist.conf 文件: ``` $ sudo nano /etc/modprobe.d/blacklist.conf ``` - 在文件末尾添加以下内容: ``` blacklist nouveau options nouveau modeset=0 ``` - 保存并关闭文件。 - 更新 initramfs: ``` $ sudo update-initramfs -u ``` - 重启系统。 4. 安装 CUDA 11.1。可以按照以下步骤进行操作: - 进入下载的 CUDA 11.1 安装包所在的目录。 - 运行安装程序: ``` $ sudo sh cuda_11.1.0_455.23.05_linux.run ``` 安装程序将提示你接受 NVIDIA 的许可协议。接受后,将会提示你选择安装位置和组件。默认情况下,安装位置为 /usr/local/cuda-11.1,而所有的组件都会被安装。 - 安装完成后,需要将 CUDA 的路径添加到 PATH 环境变量中。可以编辑 ~/.bashrc 文件,在文件末尾添加以下内容: ``` export PATH=/usr/local/cuda-11.1/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} ``` 保存并关闭文件,然后运行以下命令使其生效: ``` $ source ~/.bashrc ``` 至此,CUDA 11.1 已经成功安装Ubuntu 20.04 中了。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

TracelessLe

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

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

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

打赏作者

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

抵扣说明:

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

余额充值