MindSpore入门避雷踩坑篇(2)——在Ubuntu18.04上用编译安装GPU环境的MindSpore1.3.0
1. 准备Ubuntu18.04由于本人使用的是含GPU环境的Win10操作系统,而MindSpore1.3.0 GPU版本仅支持Linux-x86_64系统,因此首先从VMware虚拟机上安装了Ubuntu18.04(基于Linux内核的桌面PC操作系统):具体安装过程可参考B站教程:《Linux非官方指南》第三期-Windows下在虚拟机VMware中安装Ubuntu18.04 Linux操作
开幕雷击:本篇文章记录的是安装失败的经验分享,所以甭想通过本文配置好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++编译器(可能之前没安装过),需要进行编译安装:
- 首先要确保虚拟机联网!否则任何安装命令都会失效,
虚拟机联网方法:这回就听度娘的就行
笑不活了…
- 分别输入以下三个指令:
安装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是不是向下兼容,但看着网上那么多教程都在往下改,我也不知道了呢,可以自己试试哦~),
- 再重新回到桌面的地址输入:
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
执行解压指令:
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,无了个大语,白忙活一场~
更多推荐
所有评论(0)