参考 https://support.huaweicloud.com/instg-ascend-deployer-cann330/atlasdeploy_03_0088.html
CANN(Compute Architecture for Neural Networks)是华为公司针对AI场景推出的异构计算架构,通过提供多层次的编程接口,支持用户快速构建基于昇腾平台的AI应用和业务。
1、通过离线部署工具(ascend-deployer)
2、通过命令行方式
3、通过msInstaller工具
离线部署工具有问题,无法配置开发环境
采用命令行方式
系统环境:ubuntu18.04.1
http://old-releases.ubuntu.com/releases/18.04.1/ubuntu-18.04.1-desktop-amd64.iso
https://www.hiascend.com/software/cann/commercial
下载开发套件包toolkit(x86_64、aarch64)
Ascend-cann-toolkit_XXX_linux-x86_64.run
Ascend-cann-toolkit_XXX_linux-aarch64.run
操作系统 | 版本 | 获取方式 |
---|---|---|
Ubuntu | 操作系统版本:Ubuntu 18.04.1 处理器架构:aarch64 |
从Ubuntu官网获取。请从http://old-releases.ubuntu.com/releases/18.04.1/ 网站下载如下推荐的版本:ubuntu-18.04.1-server-arm64.iso。 |
EulerOS | 操作系统版本:EulerOS 2.8 处理器架构:aarch64 |
1、 以root用户登录安装环境。
2、 检查root用户的umask值。
umask
3、 如果umask不等于0022,请执行如下操作配置,在该文件的最后一行添加umask 0022后保存。
a) 在任意目录下执行如下命令,打开.bashrc文件:
vi ~/.bashrc
在文件最后一行后面添加umask 0022内容。
b) 执行:wq!
命令保存文件并退出。
c) 执行source ~/.bashrc
命令使其立即生效。
运行用户:实际运行推理业务或执行训练的用户。
安装用户:实际安装软件包的用户。
若使用root用户安装,推荐使用非root用户运行相关业务,安装前需要先准备运行用户。
若使用非root用户安装,则安装及运行用户必须相同。
使用root用户安装
已有非root用户,则无需再次创建。
新建非root用户,请参见如下方法创建。
创建非root用户操作方法如下,如下命令请以root用户执行。
1、创建非root用户。
以创建运行用户HwHiAiUser为例:
groupadd HwHiAiUser
useradd -g HwHiAiUser -d /home/HwHiAiUser -m HwHiAiUser -s /bin/bash
2、设置非root用户密码
passwd HwHiAiUser
安装CANN软件前需安装相关依赖。推荐用户使用离线部署工具安装,若您使用的操作系统不在支持的OS清单中,可参照本章节使用命令行方式安装相关依赖。
本章节以Ubuntu 18.04为例,详述依赖安装操作。其他系统可参考进行安装。
类别 | 版本要求 |
Python | 3.7.0~ 3.7.9 |
cmake | >=3.5.1 |
make | - |
gcc | 离线推理场景要求4.8.5版本及以上gcc在线推理、训练、Ascend Graph开发场景 要求7.3.0版本及以上gcc |
g++ | |
zlib1g zlib1g-dev libsqlite3-dev openssl libssl-dev libffi-dev unzip pciutils net-tools libblas-dev gfortran libblas3 liblapack-dev liblapack3 libopenblas-dev |
无版本要求,安装的版本以操作系统自带的源为准。 |
numpy | >=1.13.3&&<1.20 |
decorator | >=4.4.0 |
sympy | >=1.4 |
cffi | >=1.12.3 |
protobuf | >=3.11.3 |
attrs pyyaml pathlib2 scipy requests psutil |
无版本要求,安装的版本以pip源为准。 |
检查源
安装过程需要下载相关依赖,请确保安装环境能够连接网络。
请在root用户下执行如下命令检查源是否可用。
apt-get update
如果命令执行报错或者后续安装依赖时等待时间过长甚至报错,则检查网络是否连接或者把“/etc/apt/sources.list”文件中的源更换为可用的源或使用镜像源。
配置安装用户权限
当用户使用非root用户安装时,需要操作该章节,否则请忽略。
请以root用户执行如下操作。
1、 安装sudo,使用如下命令安装。
apt-get install sudo
2、 打开“/etc/sudoers”文件:
chmod u+w /etc/sudoers
vi /etc/sudoers
3、 在该文件中添加如下内容:
username ALL=(ALL:ALL) NOPASSWD:SETENV:/usr/bin/apt-get, /usr/bin/pip, /bin/tar, /bin/mkdir, /bin/sh, /bin/bash, /usr/bin/make install, /bin/ln -s /usr/local/python3.7.5/bin/python3 /usr/local/python3.7.5/bin/python3.7.5, /bin/ln -s /usr/local/python3.7.5/bin/pip3 /usr/local/python3.7.5/bin/pip3.7.5, /usr/bin/unzip
4、添加完成后,执行:wq!保存文件。
5、执行以下命令取消“/etc/sudoers”文件的写权限:
chmod u-w /etc/sudoers
安装依赖
1、检查系统是否安装python依赖以及gcc等软件。
分别使用如下命令检查是否安装gcc,make以及python依赖软件等。
gcc --version
g++ --version
make --version
cmake --version
dpkg -l zlib1g| grep zlib1g| grep ii
dpkg -l zlib1g-dev| grep zlib1g-dev| grep ii
dpkg -l libsqlite3-dev| grep libsqlite3-dev| grep ii
dpkg -l openssl| grep openssl| grep ii
dpkg -l libssl-dev| grep libssl-dev| grep ii
dpkg -l libffi-dev| grep libffi-dev| grep ii
dpkg -l unzip| grep unzip| grep ii
dpkg -l pciutils| grep pciutils| grep ii
dpkg -l net-tools| grep net-tools| grep ii
dpkg -l libblas-dev| grep libblas-dev| grep ii
dpkg -l gfortran| grep gfortran| grep ii
dpkg -l libblas3| grep libblas3| grep ii
dpkg -l libopenblas-dev| grep libopenblas-dev| grep ii
若分别返回如下信息则说明已经安装,进入下一步。
gcc (Ubuntu 7.3.0-3ubuntu1~18.04) 7.3.0
g++ (Ubuntu 7.3.0-3ubuntu1~18.04) 7.3.0
GNU Make 4.1
cmake version 3.10.2
zlib1g:arm64 1:1.2.11.dfsg-0ubuntu2 arm64 compression library - runtime
zlib1g-dev:arm64 1:1.2.11.dfsg-0ubuntu2 arm64 compression library - development
libsqlite3-dev:arm64 3.22.0-1ubuntu0.3 arm64 SQLite 3 development files
openssl 1.1.1-1ubuntu2.1~18.04.6 arm64 Secure Sockets Layer toolkit - cryptographic utility
libssl-dev:arm64 1.1.1-1ubuntu2.1~18.04.6 arm64 Secure Sockets Layer toolkit - development files
libffi-dev:arm64 3.2.1-8 arm64 Foreign Function Interface library (development files)
unzip 6.0-21ubuntu1 arm64 De-archiver for .zip files
pciutils 1:3.5.2-1ubuntu1 arm64 Linux PCI Utilities
net-tools 1.60+git20161116.90da8a0-1ubuntu1 arm64 NET-3 networking toolkit
libblas-dev:arm64 3.7.1-4ubuntu1 arm64 Basic Linear Algebra Subroutines 3, static library
gfortran 4:7.4.0-1ubuntu2.3 arm64 GNU Fortran 95 compiler
libblas3:arm64 3.7.1-4ubuntu1 arm64 Basic Linear Algebra Reference implementations, shared library
libopenblas-dev:arm64 0.2.20+ds-4 arm64 Optimized BLAS (linear algebra) library (development files)
否则请执行如下安装命令(如果只有部分软件未安装,则如下命令修改为只安装还未安装的软件即可):
sudo apt-get install -y gcc g++ make cmake zlib1g zlib1g-dev openssl libsqlite3-dev libssl-dev libffi-dev unzip pciutils net-tools libblas-dev gfortran libblas3 libopenblas-dev libncursesw5-dev
2、检查系统是否安装满足版本要求的python开发环境。
执行命令python3.7 --version,如果返回信息满足python版本要求(3.7.0~ 3.7.9),则直接进入下一步。
否则可参考如下方式安装python3.7.5。
a. 使用wget下载python3.7.5源码包,可以下载到安装环境的任意目录,命令为:
wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz
b. 进入下载后的目录,解压源码包,命令为:
tar -zxvf Python-3.7.5.tgz
c. 进入解压后的文件夹,执行配置、编译和安装命令:
cd Python-3.7.5
./configure --prefix=/usr/local/python3.7.5 --enable-loadable-sqlite-extensions --enable-shared
make
sudo make install
其中“–prefix”参数用于指定python安装路径,用户根据实际情况进行修改。“–enable-shared”参数用于编译出libpython3.7m.so.1.0动态库。“–enable-loadable-sqlite-extensions”参数用于加载libsqlite3-dev依赖。
本手册以–prefix=/usr/local/python3.7.5路径为例进行说明。执行配置、编译和安装命令后,安装包在/usr/local/python3.7.5路径,libpython3.7m.so.1.0动态库在/usr/local/python3.7.5/lib/libpython3.7m.so.1.0路径。
d. 执行如下命令设置软链接:
sudo ln -s /usr/local/python3.7.5/bin/python3 /usr/local/python3.7.5/bin/python3.7.5
sudo ln -s /usr/local/python3.7.5/bin/pip3 /usr/local/python3.7.5/bin/pip3.7.5
e. 设置python3.7.5环境变量。
#用于设置python3.7.5库文件路径
export LD_LIBRARY_PATH=/usr/local/python3.7.5/lib:$LD_LIBRARY_PATH
#如果用户环境存在多个python3版本,则指定使用python3.7.5版本
export PATH=/usr/local/python3.7.5/bin:$PATH
为后续安装CANN软件包、运行相关业务时能够自动配置python3.7.5环境变量,用户需提前创建好文件“use_private_python.info”,操作参考如下:
(1)执行如下命令创建文件:
root用户
vi /etc/use_private_python.info
非root用户(以HwHiAiUser用户为例)
vi /home/HwHiAiUser/use_private_python.info
(2)在文件中添加以下内容:
python37_install_path=/usr/local/python3.7.5
其中“/usr/local/python3.7.5”为python3.7.5安装路径,请根据实际替换。
(3) 执行:wq命令保存文件并退出。
安装完成之后,执行如下命令查看安装版本,如果返回相关版本信息,则说明安装成功。
python3.7 --version
pip3.7 --version
3、安装前请先使用pip3.7 list命令检查是否安装相关依赖,若已经安装,则请跳过该步骤;若未安装,则安装命令如下(如果只有部分软件未安装,则如下命令修改为只安装还未安装的软件即可)。
安装前,建议执行命令pip3.7 install --upgrade pip进行升级,避免因pip版本过低导致安装失败。
如下命令如果使用非root用户安装,需要在安装命令后加上–user,例如:pip3.7 install attrs --user,安装命令可在任意路径下执行。
要求numpy版本大于等于1.13.3且小于1.20,推荐numpy版本为1.17.2。
pip3.7 install attrs
pip3.7 install numpy==1.17.2
pip3.7 install decorator
pip3.7 install sympy
pip3.7 install cffi
pip3.7 install pyyaml
pip3.7 install pathlib2
pip3.7 install psutil
pip3.7 install protobuf
pip3.7 install scipy
pip3.7 install requests
前提条件
请参见安装OS依赖完成安装前准备。
通过准备软件包章节获取两种架构的开发套件包Ascend-cann-toolkit_xxx.run。
安装步骤
1、 以软件包的安装用户登录安装环境。若安装OS依赖中安装依赖的用户为root用户,则软件包的安装用户可自行指定;若安装OS依赖中安装依赖的用户为非root用户,请确保软件包的安装用户与该用户保持一致。
2、 将获取到的开发套件包上传到安装环境任意路径(如“/home/package”)。
3、 进入软件包所在路径。
4、 增加对软件包的可执行权限。
chmod +x *.run
说明:其中.run表示开发套件包Ascend-cann-toolkit_{version}_linux-{arch}.run,请根据实际包名进行替换。*
5、 执行如下命令校验软件包安装文件的一致性和完整性。
./*.run --check
6、 执行以下命令安装软件。(以下命令支持–install-for-all和–install-path= 等,具体参数说明请参见参数说明)
若使用非root用户安装,请执行以下命令。
./*.run --install
若使用root用户安装,请执行以下命令。
若使用默认运行用户HwHiAiUser:
./*.run --install
若用户需自行指定运行用户:
./*.run --install-username=username --install-usergroup=usergroup --install
其中--install-username和--install-usergroup用于指定运行用户。
说明:
如果以root用户安装,建议不要安装在非root用户目录下,否则存在被非root用户替换root用户文件以达到提权目的的安全风险。
如果用户未指定安装路径,则软件会安装到默认路径下,默认安装路径如下。
root用户:“/usr/local/Ascend”
非root用户:“ H O M E / A s c e n d ” 其 中 {HOME}/Ascend” 其中 HOME/Ascend”其中{HOME}为当前用户目录。
安装完成后,若显示如下信息,则说明软件安装成功:
[INFO] xxx install success
xxx表示安装的实际软件包名。
对于Atlas 200 AI加速模块 (RC场景)和Atlas 500 智能小站,是准备一台X86服务器(或者PC)用作搭建开发环境。因此需要在开发环境安装交叉编译工具,具体如表1所示:
开发环境架构 | 运行环境架构 | 编译环境配置 |
---|---|---|
x86_64 | aarch64 | 请使用软件包的安装用户,在开发环境执行aarch64-linux-gnu-g++ --version命令检查是否安装,若已经安装则可以忽略。安装命令示例如下(以下命令仅为示例,请用户根据实际情况替换):sudo apt-get install g++ -aarch64-linux-gnu |