本文是在宿主机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并测试

一、前期踩过的坑

在ubuntu上安装GPU版本mindspore的具体流程


主要有以下几点:

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的更多相关文章

  1. 【Caffe】Ubuntu16.04上配置安装caffe(Only CPU)

    一.首先看看自己的系统,Ubuntu16.04,cpu,没有Nvidia,没有opencv 二.安装依赖包 安装protobuf,leveldb,snappy,OpenCV,hdf5, protobu ...

  2. zabbix在ubuntu16.04上的安装

    开始安装 zabbix具体安装可以参考官方文档写的很详细,令人高兴的是现在有了中文的版本的翻译,这里简要说下. 上篇文章我写了在ubuntu14.04上安装zabbix,见这里http://www.c ...

  3. 深度学习环境搭建(ubuntu16.04+Titan Xp安装显卡驱动+Cuda9.0+cudnn+其他软件)

    一.硬件环境 ubuntu 16.04LTS + windows10 双系统 NVIDIA TiTan XP 显卡(12G) 二.软件环境 搜狗输入法 下载地址 显卡驱动:LINUX X64 (AMD ...

  4. ubuntu16.04+Titan Xp安装显卡驱动+Cuda9.0+cudnn

    硬件环境 ubuntu 16.04LTS + windows10 双系统 NVIDIA TiTan XP 显卡(12G) 软件环境 搜狗输入法 显卡驱动:LINUX X64 (AMD64/EM64T) ...

  5. 【MindSpore】Docker上成功使用MindSpore1.0.0的GPU版本

    本文是在宿主机Ubuntu16.04上安装Docker(nvidia-docker),并成功进行MindSpore1.0.0的GPU训练: Ubuntu 16.04 Docker Nvidia-doc ...

  6. Ubuntu16.04上安装cudnn教程和opencv

    https://blog.csdn.net/wang15061955806/article/details/80791112 Ubuntu16.04上安装cudnn教程 2018年06月24日 14: ...

  7. Ubuntu16.04上用源代码安装ICE

    ubuntu16.04上用源代码安装ICE

  8. Ubuntu16.04上安装neo4j数据库

    什么是neo4j数据库? neo4j数据库是图数据库的一种,属于nosql的一种,常见的nosql数据库还有redis.memcached.mongDB等,不同于传统的关系型数据库,nosql数据也有 ...

  9. 在ubuntu16.04上安装eclipse

     在ubuntu16.04上安装eclipse 一.下载     首先我们需要安装jdk1.8及其以上,然后从官网:https://www.eclipse.org/downloads/上下载,需要注意 ...

随机推荐

  1. 11.java设计模式之享元模式

    基本需求: 小型的外包项目,给客户A做一个产品展示网站,客户A的朋友感觉效果不错,也希望做这样的产品展示网站,但是要求都有些不同 每个客户要求发布的方式不一样,A要求以新闻的方式发布,B要求以博客的方 ...

  2. Python网络编程_抓取百度首页代码(注释详细)

    1 #coding=utf-8 2 #网络编程 3 4 #客户端建立socket套接字 5 #引入socket模块 6 import socket 7 #实例化一个套接字,2个参数分别是: IPV4. ...

  3. //*[starts-with(@class,'btn')][text()='差'] 正则定位元素

    starts-with?  //*[starts-with(@class,'btn')][text()='差']   意思找从头开始的这个class

  4. docker搭建渗透环境并进行渗透测试

    目录 docker简介 docker的安装 docker.centos7.windows10(博主宿主机系统)之间相互通信 -docker容器中下载weblogic12c(可以略过不看) docker ...

  5. MySQL如何实现万亿级数据存储?

    前言 业界对系统的高可用有着基本的要求,简单的说,这些要求可以总结为如下所示. 系统架构中不存在单点问题. 可以最大限度的保障服务的可用性. 一般情况下系统的高可用可以用几个9来评估.所谓的几个9就是 ...

  6. Guitar Pro 7教程之添加音轨讲解

    Guitar Pro 7是当前的新版本,较之前版本GP5,GP6,不管在功能还是软件的界面上都是有了不一样的改变,最近听到很多朋友说,由于Guitar Pro 7界面与之前完全不一样,很多功能都不知道 ...

  7. 如何用思维导图软件MindManager制作项目管理图表

    项目管理的官方解释为:运用各种相关技能.方法与工具,为满足或超越项目有关各方对项目的要求与期望,所开展的各种计划.组织.领导.控制等方面的活动. 其实使用MindManager思维导图软件来创建项目管 ...

  8. jenkins master/slave模式

    master是主机,只有master装jenkins slave是小弟机无需装jenkins,主要执行master分配的任务 一.新建slave 1.新建slave的方法:点击magian jenki ...

  9. 地图上显示点在点上标注当前点的id

    HTML: <div class="form-group field-company-state"> <div style="width:1000px; ...

  10. {"non_field_errors":["Unable to log in with provided credentials."]}% 无法使用提供的凭据登录

    在使用rest_framework_jwt进行登陆验证获取token的时候会报 {"non_field_errors":["Unable to log in with p ...