MindSpore1.10.1安装步骤详解(Ubuntu20.04+3080Ti+CUDA11.1+Python3.8)

本文主要是介绍MindSpore1.10.1安装步骤详解(Ubuntu20.04+3080Ti+CUDA11.1+Python3.8),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MindSpore1.10.1安装步骤详解(Ubuntu20.04+3080Ti)

    • 背景说明
    • 安装Ubuntu20.04+3080Ti驱动
    • 安装CUDA所需依赖
    • 下载并安装CUDA11.1(☆☆非常关键☆☆)
    • 下载并安装cuDNN
    • 安装Python3.8
    • 安装GCC
    • 安装MindSpore
    • 验证MindSpore安装成功

背景说明

我是一名高中信息技术教师,带来学生参加了第二届长三角人工智能挑战赛——主赛道算法擂台,很幸运获得了一等奖,比赛中使用到了华为旗下的MindSpore人工智能框架。
在AI全面普及的当下,为提升自己的能力水平,打算深入学习一下MindSpore相关的知识,第一步就是安装MindSpore了。
安装选项
所使用的操作系统为Ubuntu20.04,显卡3080Ti,CUDA11.1,Python3.8,MindSpore1.10.1,手动安装。参照MindSpore官网的安装说明,有会一些坑,经常多次尝试,还是成功安装了,
在此把经验总结一下并分享给大家,供爱好者学习。若有不正之处,望予以指出,谢谢。

安装Ubuntu20.04+3080Ti驱动

Ubuntu20.04的安装这里就不详细说,大家可以参考网上的相关文章。
Ubuntu20.04安装成功

接下去安装3080Ti驱动,建议通过Ubuntu20.04自带的“软件和更新”功能去安装,如下图。
安装3080Ti驱动
我安装的是525的版本,是能够安装的最新版了。安装成功之后,可以在终端窗口中输入“nvidia-smi”来验证驱动的是否成功和CUDA版本,如下图。
驱动安装+CUDA版本
可以看到525的驱动安装后,CUDA的版本是12.0,其实CUDA是可以向下兼容的。官网上说CUDA11.1,准确地说是CUDA的最低版本为11.1。若已安装了高版本的CUDA,则需要安装CUAD11.1中除驱动之外的其他东西(后续会有详细说明)

安装CUDA所需依赖

参照MindSpore官网安装CUDA所需依赖,使用命令如下:
sudo apt-get install linux-headers-$(uname -r) gcc-7
安装截图如下:
成功安装CUDA所需依赖

下载并安装CUDA11.1(☆☆非常关键☆☆)

参照MindSpore官网给出的命令下载CUDA11.1:
wget https://developer.download.nvidia.com/compute/cuda/11.1.1/local_installers/cuda_11.1.1_455.32.00_linux.run
下载成功后,如图:成功下载CUDA11.1
参照MindSpore官网给出的命令安装CUDA11.1:
sudo sh cuda_11.1.1_455.32.00_linux.run,如图:
安装CUDA11.1-01
点击“Continue”继续,如图:
安装CUDA11.1-02
输入“accept”并回车,如图:
安装CUDA11.1-03
去掉驱动的安装,安装其他选项,如图:
安装CUDA11.1-04
CUDA11.1安装成功,如图:
CUDA11.1安装成功
根据MindSpore官网给出的命令,添加环境变量,如图:

echo -e "export PATH=/usr/local/cuda-11.1/bin:\$PATH" >> ~/.bashrc
echo -e "export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64:\$LD_LIBRARY_PATH" >> ~/.bashrc
source ~/.bashrc

CUDA11.1.1安装后添加环境变量

下载并安装cuDNN

在cuDNN页面登录并下载对应的cuDNN安装包(需要NVIDIA账号),根据MindSpore官网的说明,下载cuDNN v8.0.x,如图:
下载cuDNN安装包
官网上说下载的是一个tgz的包,但实际下载后是tar.xz的包,如图:
下载的cuDNN安装包文件名
无所谓啦,反正都是压缩包,解压即可。为方便之后命令操作,把解压得到的文件夹重命名为cudnn,如图:
解压重命名cuDNN
在文件夹cudnn里有一个include文件夹,一个lib文件夹,和一个LICENSE文件,如图:
文件夹cuDNN里的内容
根据MindSpore官网的说明,接下去就是复制文件了,具体命令如下:
16MindSpore官网命令
最奇怪的是,文件夹明明是cudnn,怎么变成了cuda,也没有“lib64”文件夹啊,只有lib。因此修改了一下这两条命令,如下:

sudo cp cudnn/include/cudnn.h /usr/local/cuda-11.1/include
sudo cp cudnn/lib/libcudnn* /usr/local/cuda-11.1/lib64

望MindSpore官网能修正一下。
再执行下一条命令

sudo chmod a+r /usr/local/cuda-11.1/include/cudnn.h /usr/local/cuda-11.1/lib64/libcudnn*

安装Python3.8

由于Ubuntu20.04自带Python3.8,因此这里就可以直接跳过。但需要安装一下pip,可以使用以下命令:

sudo apt install python3-pip

安装python3-pip

可以通过如下命令在查看所安装的Python版本。

python3 --version

安装GCC

根据MindSpore官网的说明,使用如下命令安装GCC(其实在最前面已安装了):

sudo apt-get install gcc -y

安装MindSpore

根据MindSpore官网的说明,使用如下命令安装MindSpore1.10.1:

export MS_VERSION=1.10.1
pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/${MS_VERSION}/MindSpore/gpu/x86_64/cuda-11.1/mindspore_gpu-${MS_VERSION/-/}-cp38-cp38-linux_x86_64.whl --trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com -i https://pypi.tuna.tsinghua.edu.cn/simple

安装MindSpore
安装成功后,如图:
MindSpore安装成功
运行MindSpore GPU版本前,请确保nvcc的安装路径已经添加到PATH与LD_LIBRARY_PATH环境变量中,如果没有添加,以安装在默认路径的CUDA11为例,可以执行如下操作:

export PATH=/usr/local/cuda-11.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64:$LD_LIBRARY_PATH

如果安装了其他CUDA版本或者CUDA安装路径不同,只需替换上述命令中的/usr/local/cuda-11.1为当前安装的CUDA路径。

另外,在MindSpore安装中,会有两句Warning,如图。
安装MindSpore两句Warning

其实也是环境变量未添加的原因,只需运行如下命令即可,如图。

export PATH=/home/zzm/.local/bin:$PATH

安装MindSpore警告修正

验证MindSpore安装成功

验证方法一,输入命令

python3 -c "import mindspore;mindspore.run_check()"

输出MindSpore的版本号,如图:
验证MindSpore安装成功方法一
验证方法二,先在文本编辑器内,输入以下内容

import numpy as np
import mindspore as ms
import mindspore.ops as opsms.set_context(device_target="GPU")
x = ms.Tensor(np.ones([1,3,3,4]).astype(np.float32))
y = ms.Tensor(np.ones([1,3,3,4]).astype(np.float32))
print(ops.add(x, y))

保存为一个py文件(MindSporeTest.py),如图:
测试文件MindSporeTest在终端中,输入如下命令,运行此py文件

python3 MindSporeTest.py

得到如图结果,则说明安装成功:
验证MindSpore安装成功方法二
以上内容经过本人亲测,若有不对,敬请谅解,欢迎批评指正!!

这篇关于MindSpore1.10.1安装步骤详解(Ubuntu20.04+3080Ti+CUDA11.1+Python3.8)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/379023

相关文章

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

mysql表操作与查询功能详解

《mysql表操作与查询功能详解》本文系统讲解MySQL表操作与查询,涵盖创建、修改、复制表语法,基本查询结构及WHERE、GROUPBY等子句,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随... 目录01.表的操作1.1表操作概览1.2创建表1.3修改表1.4复制表02.基本查询操作2.1 SE

MySQL中的锁机制详解之全局锁,表级锁,行级锁

《MySQL中的锁机制详解之全局锁,表级锁,行级锁》MySQL锁机制通过全局、表级、行级锁控制并发,保障数据一致性与隔离性,全局锁适用于全库备份,表级锁适合读多写少场景,行级锁(InnoDB)实现高并... 目录一、锁机制基础:从并发问题到锁分类1.1 并发访问的三大问题1.2 锁的核心作用1.3 锁粒度分

MySQL数据库中ENUM的用法是什么详解

《MySQL数据库中ENUM的用法是什么详解》ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,下面:本文主要介绍MySQL数据库中ENUM的用法是什么的相关资料,文中通过代码... 目录mysql 中 ENUM 的用法一、ENUM 的定义与语法二、ENUM 的特点三、ENUM 的用法1

MySQL count()聚合函数详解

《MySQLcount()聚合函数详解》MySQL中的COUNT()函数,它是SQL中最常用的聚合函数之一,用于计算表中符合特定条件的行数,本文给大家介绍MySQLcount()聚合函数,感兴趣的朋... 目录核心功能语法形式重要特性与行为如何选择使用哪种形式?总结深入剖析一下 mysql 中的 COUNT

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁