【MindSpore】Ubuntu16.04上成功安装GPU版MindSpore1.0.1
本文是在宿主机Ubuntu16.04上拉取cuda10.1-cudnn7-ubuntu18.04的镜像,在容器中通过Miniconda3创建python3.7.5的环境并成功安装mindspore_gpu_1.0.1;
一、前期踩过的坑
二、安装成功的流程
【1】拉取cuda10.1-cudnn7-ubuntu18.04的镜像
【2】镜像内创建容器,此处一定是nvidia-docker创建
【3】在容器内安装Miniconda
【4】使用conda创建python3.7.5的虚拟环境并激活
【5】通过可执行文件安装mindspore_gpu_1.0.1.whl并测试
一、前期踩过的坑

主要有以下几点:
1. Ubuntu18.04(系统版本至少为18.04及以上) :
基于我使用的是共用版Ubuntu16.04的服务器,无法直接升级,只能通过容器方式,拉取Ubuntu18.04的镜像;
2. cuda10.1 (cuda版本必须为10.1):
3. cudnn >= 7.6 (cudnn7.6.5可行,但cudnn8是会报错的):
因Nvidia提供了[cuda+cudnn+ubuntu的镜像](https://hub.docker.com/r/nvidia/cuda),
所以可以一次性拉取需要的cuda10.1-cudnn7-ubuntu18.04的镜像;
因要求的是cudnn>=7.6,所以最开始拉取的是cudnn8版本的,一直报错 `libcudnn.so.7: cannot open shared object file: No such file or directory` ,后改为cudnn7版本就没报错了;
4. devel和runtime版本区别:本文选择devel版
找到cuda10.1-cudnn7-ubuntu18.04,(cudnn7它标明的是cudnn7.6.5)发现有两个版本cuda devel和cuda runtime:
官方解释:
devel是说只涵盖了开发bai所需的所有工具,包含编译、debug等,以及编译需要的头文件、静态库。
runtime是说只涵盖了运行环境的最小集合,例如动态库等
所以runtime的镜像大小会比devel小一些
5. docker与nvidia-docker的区别:
docker创建的容器里需要再次安装nvidia-driver,且需要容器里的nvidia-driver版本与宿主机里的nvidia-driver版本一致,才能在容器里使用GPU;
nvidia-docker创建的容器,只需要在宿主机上安装nvidia-driver,容器内就可以直接使用GPU;
安装nvidia-docker之前必须在宿主机上安装nvidia-driver和docker;
nvidia-smi # 检查宿主机是否安装了 nvidia-driver
docker version # 检查宿主机上安装的docker版本
nvidia-docker version # 检查宿主机上安装的nvidia-docker版本



二、 安装成功的流程
【1】拉取nvidia/cuda:10.1-cudnn8-devel-ubuntu18.04的镜像
为避免不必要的错误,后续使用的全部都是nvidia-docker
选择devel版本
nvidia-docker pull nvidia/cuda:10.1-cudnn7-devel-ubuntu18.04

【2】镜像内创建容器,此处一定是nvidia-docker创建
nvidia-docker run -it nvidia/cuda:10.1-cudnn7-devel-ubuntu18.04 /bin/bash

【3】在容器内安装Miniconda
因为在容器内使用wget下载miniconda一直失败,所以选择在windows上下载并上传至ubuntu宿主机上,再从ubuntu宿主机上拷贝至容器内;
nvidia-docker cp miniconda3.sh路径 containerID:/ # 退出容器,并将miniconda3.sh 文件拷贝至容器根目录下 nvidia-docker start containerID # 启动容器并进入
nvidia-docker exec -it containerID /bin/bash bash Miniconda3-latest-Linux-x86_64.sh # 安装miniconda

【4】使用conda创建python3.7.5的虚拟环境并激活
安装miniconda后需先退出容器再进入,才能再容器中使用conda
conda create -n mindspore1.0.1 python=3.7.5 # conda create -n 虚拟环境名 指定python版本

conda activate mindspore1.0.1 # 激活指定环境
同上,windows上下载mindspore_gpu_1.0.1.whl,并拷贝至容器内;

【5】通过可执行文件安装mindspore_gpu_1.0.1.whl并测试;
pip install mindspore_gpu-1.0.1-cp37-cp37m-linux_x86_64.whl

安装完成后,在python环境下执行以下代码
import numpy as np
from mindspore import Tensor
from mindspore.ops import functional as F
import mindspore.context as context context.set_context(device_target="GPU")
x = Tensor(np.ones([1,3,3,4]).astype(np.float32))
y = Tensor(np.ones([1,3,3,4]).astype(np.float32))
print(F.tensor_add(x, y))
如果出现以下,则说明安装成功:
【MindSpore】Ubuntu16.04上成功安装GPU版MindSpore1.0.1的更多相关文章
- 【Caffe】Ubuntu16.04上配置安装caffe(Only CPU)
一.首先看看自己的系统,Ubuntu16.04,cpu,没有Nvidia,没有opencv 二.安装依赖包 安装protobuf,leveldb,snappy,OpenCV,hdf5, protobu ...
- zabbix在ubuntu16.04上的安装
开始安装 zabbix具体安装可以参考官方文档写的很详细,令人高兴的是现在有了中文的版本的翻译,这里简要说下. 上篇文章我写了在ubuntu14.04上安装zabbix,见这里http://www.c ...
- 深度学习环境搭建(ubuntu16.04+Titan Xp安装显卡驱动+Cuda9.0+cudnn+其他软件)
一.硬件环境 ubuntu 16.04LTS + windows10 双系统 NVIDIA TiTan XP 显卡(12G) 二.软件环境 搜狗输入法 下载地址 显卡驱动:LINUX X64 (AMD ...
- ubuntu16.04+Titan Xp安装显卡驱动+Cuda9.0+cudnn
硬件环境 ubuntu 16.04LTS + windows10 双系统 NVIDIA TiTan XP 显卡(12G) 软件环境 搜狗输入法 显卡驱动:LINUX X64 (AMD64/EM64T) ...
- 【MindSpore】Docker上成功使用MindSpore1.0.0的GPU版本
本文是在宿主机Ubuntu16.04上安装Docker(nvidia-docker),并成功进行MindSpore1.0.0的GPU训练: Ubuntu 16.04 Docker Nvidia-doc ...
- Ubuntu16.04上安装cudnn教程和opencv
https://blog.csdn.net/wang15061955806/article/details/80791112 Ubuntu16.04上安装cudnn教程 2018年06月24日 14: ...
- Ubuntu16.04上用源代码安装ICE
ubuntu16.04上用源代码安装ICE
- Ubuntu16.04上安装neo4j数据库
什么是neo4j数据库? neo4j数据库是图数据库的一种,属于nosql的一种,常见的nosql数据库还有redis.memcached.mongDB等,不同于传统的关系型数据库,nosql数据也有 ...
- 在ubuntu16.04上安装eclipse
在ubuntu16.04上安装eclipse 一.下载 首先我们需要安装jdk1.8及其以上,然后从官网:https://www.eclipse.org/downloads/上下载,需要注意 ...
随机推荐
- if __name__ == "__main__"的疑惑
Python中if __name__ == "__main__"详细解释: 想必很多初次接触python都会见到这样一个语句,if __name__ == "__main ...
- Vue 计算属性与方法
computed 基本使用 如果数据需要有复杂的计算,则可以在Vue实例中定义计算属性,再交由mustache进行渲染. computed内部其实是通过getttr实现的,所以不用加括号即可完成其下方 ...
- tcp黏包问题与udp为什么不黏包
1.先说下subprocess模块的用法,为了举个黏包的例子 # 通过一个例子 来认识网络编程中的一个重要的概念 # 所有的客户端执行server端下发的指令,执行完毕后,客户端将执行结果给返回给服务 ...
- git 强制更新本地和强制提交覆盖
强制更新覆盖本地: git pull时出现冲突 放弃本地修改,使远程库内容强制覆盖本地代码git fetch --all //只是下载代码到本地,不进行合并操作git reset --hard ori ...
- python-网络安全编程第七天(base64模块)
前言 睡不着,那就起来学习其实base64模块很早之前用过今天做爬虫的时候有个URL需要用它来编码一下 所以百度又学了一下遇到最大的问题就是python3和python2区别问题 python3的这个 ...
- java中对于浮点型数据操作
java的基本数据类型-浮点型:单精度(float)和双精度(double). float:单精度浮点数在机内占4个字节.有效数字8位.表示范围:-3.40E+38 ~ +3.40E+38; doub ...
- netsniff使用
1 netsniff安装与使用 首先直接下载源码包进行部署 安装一些前置包(安装完成的自动忽略) sudo apt install pkg-config sudo apt install libcli ...
- 思维导图软件iMindMap制作技巧有哪些
iMindMap11是iMindMap全新的版本.它可以提供给我们更好的灵活性以便我们将我们的思维进行可视化,并进一步的呈现和开发出属于自己的想法以及思维方式.在iMindMap中我们可以利用思维导图 ...
- 怎么用在线思维导图Ayoa规划个人任务
在Ayoa的任务板功能中可以对某一任务进行详细设置,例如改变紧急情况/重要程度.添加到我的计划工具.设置开始日期.截止日期等. 图1:任务详情设置 而这里的"我的计划工具"就是一个 ...
- 类虚拟机软件CrossOver是什么?它的优势在哪里?
虚拟机软件对于很多人来说已经不是一个陌生的词汇了.我们可以通过软件来模拟具有完整硬件系统功能的计算机系统.比如我们可以在Mac OS系统上模拟Windows 7 的系统,以此来安装我们想要使用的应用程 ...