开幕雷击:本篇文章记录的是安装失败的经验分享,所以甭想通过本文配置好GPU环境!

1. 准备Ubuntu18.04系统

由于本人使用的是含NVIDIA GPU环境的Win10操作系统,而MindSpore1.3.0 GPU版本仅支持Linux-x86_64系统,因此首先从VMware虚拟机上安装了Ubuntu18.04(基于Linux内核的桌面PC操作系统):
在这里插入图片描述
然而最终忘记了致命的一点:VMware的虚拟机是采用软件虚拟化,从主机那分配了一些内存供于虚拟机使用,

不像ESXi硬件虚拟化的虚拟机,可以直接调用硬件资源,所以是无法直接使用主机的显卡驱动,(学过微处理器的盆友们应该能避开这个愚蠢的尝试)

建议的解决办法是:安装Windows和Linux的双系统

所以如果你已经有Linux的系统,大概率可以根据官网指南快速完成配置。

以下是发现这个问题之前失败的一系列尝试,主要与Ubuntu配置gcc依赖文件,以及终端的一些操作命令使用有关,供读者避雷作参考!

具体安装过程可参考B站教程:《Linux非官方指南》第三期-Windows下在虚拟机VMware中安装Ubuntu18.04 Linux操作系统——差点成了程序员的老师

2. 系统环境信息要求

2.1 官方文档要求确认安装64位操作系统,glibc>=2.17,其中Ubuntu 18.04是经过验证的:
在这里插入图片描述
在Ubuntu终端中输入ldd --version,可查看版本号;
在这里插入图片描述
2.2 安装GCC 7.3.0版本
GCC7.3.0下载Portal

将下载的"gcc-7.3.0.tar.gz”代码包保存至任意目录,
如:/home/gao/桌面/gcc-7.3.0.tar.gz
在这里插入图片描述
在终端输入cd~/桌面将目录切换至桌面,
在这里插入图片描述
运行如命令解压:tar -xzf gcc-7.3.0.tar.gz(可能会暂时卡顿,请耐心等待加载完毕)
继续输入cd gcc-7.3.0,进入到源码包目录,
运行以下命令,进行安装前的配置:

./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

在这里插入图片描述
这里checking报错:没有检测到C/C++编译器(可能之前没安装过),需要进行编译安装:

  1. 首先要确保虚拟机联网!否则任何安装命令都会失效,
    在这里插入图片描述
    虚拟机联网方法:这回就听度娘的就行
    在这里插入图片描述

笑不活了…

  1. 分别输入以下三个指令:

安装C/C++编译器

bash sudo apt-get install gcc

gcc安装相关构建工具

bash sudo apt-get install build-essential

安装make
bash sudo apt-get install make

这里输入gcc --version发现安装的是7.5.0版本,而MindSpore要求的是7.3.0版本(不知道7.5.0是不是向下兼容,但看着网上那么多教程都在往下改,我也不知道了呢,可以自己试试哦~),在这里插入图片描述

  1. 再重新回到桌面的地址输入:cd gcc-7.3.0(每个人的存放解压的目录可能不同,根据个人情况自定义)
./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

配置指令具体含义参考:源码编译安装系列(三):在Linux上体验源码编译安装MindSpore GPU版本

这一次可以看到gcc已check到,但还需要编译安装 GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.
在这里插入图片描述
这几个包的依赖关系如下:
在这里插入图片描述

2.3 安装这4个依赖包

现在桌面新建三个文件夹:gmp612、mpfr410、mpc081

下载gmp 6.1.2源码包

执行解压指令:

tar xvf gmp-6.1.2.tar.xz

先安装m4:

sudo apt-get install m4

配置gmp:

cd gmp-6.1.2  //进入gmp解压后的文件夹
./configure CC="cc"  //配置gmp
make  //没有安装make的根据提示安装make
make check
make install

后面的mpfr和mpc也是这样安装,但./configure后的指令有所不同,主要是将对应的扩展包放入开头新建的三个文件夹当中,且满足依赖关系;
在这里插入图片描述
在这里插入图片描述

3. 通过终端编译C语言

vim test.cpp  //创建C语言测试脚本测试gmp功能

若显示未安装vim,先根据提示安装;
进入vim后,先按i,进入输入模式,复制粘贴以下代码:

/*
实现2个大数相加
*/
#include <gmpxx.h>
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
        mpz_t a,b,c;
        mpz_init(a);
        mpz_init(b);
        mpz_init(c);
        gmp_scanf("%Zd%Zd",a,b);
        mpz_add(c,a,b);
        gmp_printf("c= %Zd\n",c);
        return 0;
}

按Esc返回后,再按:键,自动退到最后一行,并自动添加了’:‘,在’:'后输入wq,

编译:
g++ test.cpp -o test -lgmp
运行:
./test

输入两个数,空格间隔,实现两个数的相加:
在这里插入图片描述

4. 无法获得锁

若安装过程中遇到:

E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用) E: 无法获取 dpkg
前端锁 (/var/lib/dpkg/lock-frontend),是否有其他进程正占用它?

输入以下指令即可:

sudo rm /var/lib/dpkg/lock-frontend

写到这里才发现虚拟机没法使用CUDA,无了个大语,白忙活一场~
在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐