简介¶
开发环境是指用户开发应用程序的环境,用户在开发环境上做开发、编译、模型转换,并应用板端环境运行调试应用程序。板端环境是指实际运行用户开发的应用的环境,要求实际安装NPU IP加速器。详细部署架构图如图1所示。
软件包说明:
Runtime:AI应用程序开发使用的API和运行库。包含GE模型加载及执行功能。包含编译依赖的相关库(不包含driver包中的库)。
Compiler:模型和算子编译器。用于离线模型转换、融合规则开发等场景。
OPP:算子库,包含算子原型库及算子实现库、算子插件、融合规则。算子实现库包含TBE算子,另外包含算子parser。
Toolkit:调测工具包,主要包含开发者调测应用、算子需要使用的工具包,例如:profiling性能调试工具。
获取软件包¶
安装前,请根据开发环境的操作系统获取对应的软件包,各组件包版本号需要保持一致。各软件包名称如表1所示。{software version}表示具体版本号。
表 1 软件包简介
安装前准备¶
开发环境要求的硬件及操作系统要满足以下条件。
表 1 软件包默认系统版本信息
5.4.0-122-generic、6.8.0-41-generic、6.8.0-52-generic、6.8.0-56-generic、6.8.0-85-generic |
|||
Python3.7.x、Python3.8.x、Python3.9.x、Python3.10.x、Python3.11.x |
请参见安装依赖。 |
||
若使用root用户安装
可以使用root用户进行安装,但安装完之后要求使用非root用户运行,所以安装前需要先创建运行用户。
若使用非root用户安装
该场景下安装及运行用户必须相同。
若已有非root用户,则无需再次创建。
若想使用新的非root用户,则需要先创建该用户,请参见如下方法创建。
创建非root用户操作方法如下,如下命令请以root用户执行。
创建非root用户。
groupadd usergroup useradd -g usergroup -d /home/username -m username -s /bin/bash
设置非root用户密码。
passwd username
说明: 密码有效期为90天,您可以在/etc/login.defs文件中修改有效期的天数,或者通过chage命令来设置用户的有效期,详情请参见设置用户有效期。
安装过程需要下载相关依赖,请确保运行环境能够连接网络。
请在root用户下执行如下命令检查源是否可用。
apt-get update
说明: 如果命令执行报错,则检查网络是否连接或者把“/etc/apt/sources.list“文件中的源更换为可用的源。
请使用软件包的安装用户安装依赖的gcc、python等软件,如果安装用户为非root,则需要确保该用户有sudo权限。
检查系统是否安装python依赖以及gcc等软件。
分别使用如下命令检查是否安装gcc,make以及python依赖软件等。
gcc --version g++ --version cmake --version make --version unzip --version dpkg -l build-essential | grep build-essential | grep ii dpkg -l zlib1g-dev| grep zlib1g-dev| grep ii dpkg -l libbz2-dev| grep libbz2-dev| grep ii dpkg -l libsqlite3-dev| grep libsqlite3-dev| grep ii dpkg -l libssl-dev| grep libssl-dev| grep ii dpkg -l libxslt1-dev| grep libxslt1-dev| grep ii dpkg -l libffi-dev| grep libffi-dev| grep ii
若分别返回如下信息则说明已经安装,进入下一步。
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 g++ (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 cmake version 3.20.5 GNU Make 4.2.1 UnZip 6.00 of 20 April 2009, by Debian. Original by Info-ZIP. build-essential 12.8ubuntu1.1 amd64 Informational list of build-essential packages zlib1g-dev:amd64 1:1.2.11.dfsg-2ubuntu1.3 amd64 compression library - development libbz2-dev:amd64 1.0.8-2 amd64 high-quality block-sorting file compressor library - development libsqlite3-dev:amd64 3.31.1-4ubuntu0.3 amd64 SQLite 3 development files libssl-dev:amd64 1.1.1f-1ubuntu2.13 amd64 Secure Sockets Layer toolkit - development files libxslt1-dev:amd64 1.1.29-5ubuntu0.2 amd64 XSLT 1.0 processing library - development kit libffi-dev:amd64 3.3-4 amd64 Foreign Function Interface library (development files)
否则请执行如下安装命令(如果只有部分软件未安装,则如下命令修改为只安装还未安装的软件即可):
sudo apt-get install -y gcc g++ cmake make unzip build-essential zlib1g-dev libbz2-dev libsqlite3-dev libssl-dev libxslt1-dev libffi-dev
说明:
libsqlite3-dev需要在python安装之前安装,如果用户操作系统已经安装python3.7.5环境,在此之后再安装libsqlite3-dev,则需要重新编译python环境。-
分别使用命令python --version、pip --version检查是否已经安装,如果返回如下信息则说明已经安装,进入下一步。
Python 3.7.5 pip 19.2.3 from /usr/local/python3.7.5/lib/python3.7/site-packages/pip (python 3.7)
否则请根据如下方式安装python,下文以安装python3.7.5为例。
使用wget下载python3.7.5源码包,可以下载到运行环境任意目录,命令为:
wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz进入下载后的目录,解压源码包,命令为:
tar -zxvf Python-3.7.5.tgz进入解压后的文件夹,执行配置、编译和安装命令:
cd Python-3.7.5 ./configure --prefix=/usr/local/python3.7.5 --enable-shared make sudo make install
其中“--prefix“参数用于指定python安装路径,用户根据实际情况进行修改。“--enable-shared“参数用于编译出libpython3.7m.so.1.0动态库。
本手册以--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路径。
执行如下命令设置软链接:
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
设置python3.7.5环境变量。
以运行用户在任意目录下执行vi ~/.bashrc命令,打开**.bashrc**文件,在文件最后一行后面添加如下内容。
注意:
如果运行用户是root,则不建议修改.bashrc,否则可能会影响其它系统提供的python工具的使用,如果仍想使用系统默认工具,则请重新开启终端窗口。#用于设置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
执行**:wq!**命令保存文件并退出。
执行source ~/.bashrc命令使其立即生效。
安装完成之后,执行如下命令查看安装版本,如果返回相关版本信息,则说明安装成功。
python3.7.5 --version pip3.7.5 --version python3.7 --version pip3.7 --version
安装CANN软件包的相关依赖。
安装前请先使用pip3.7.5 list命令检查是否安装相关依赖,若未安装,则安装命令如下(如果只有部分软件未安装,则如下命令修改为只安装还未安装的软件即可。
表 2 依赖列表
Python3.7.x、Python3.8.x、Python3.9.x、Python3.10.x、Python3.11.x
请参见2。
Python3.7.x、Python3.8.x、Python3.9.x、Python3.10.x、Python3.11.x
请参见2。
如果执行上述命令时无法连接网络,且提示“Could not find a version that satisfies the requirement xxx”,请参见使用pip install软件时提示" Could not find a version that satisfies the requirement xxx"解决。
说明: 上述安装成功后返回信息中的版本号只是样例,请以实际环境中的返回信息为准。
请以软件包的安装用户将如下软件包上传到开发环境任意路径。该路径支持的字符范围包括:英文字符(a-z、A-Z)、数字(0-9)、句点(.(非相对路径))、下划线(_)、中划线(-)、单个/(文件名或目录不支持/)。
CANN-runtime-{software version}-linux.x86_64.run
CANN-compiler-{software version}-linux.x86_64.run
CANN-opp-{software version}-linux.x86_64.run
CANN-toolkit-{software version}-linux.x86_64.run
其中:{software version}表示具体版本号。
安装¶
请参见安装前准备完成安装前准备。
需要安装的组件包无先后顺序要求,每个组件软件包的安装步骤相同,详细操作如下。包中的XX请根据实际情况进行替换。
以软件包的安装用户登录开发环境,切换到软件包所在路径。
增加安装用户对软件包的可执行权限。
在软件包所在路径执行ls -l命令检查安装用户是否有该文件的执行权限,若没有,请执行如下命令。
chmod +x XX.run校验软件包。
下载软件包后,执行如下命令校验软件包安装文件的一致性和完整性。
./XX.run --check根据表1所示命令进行安装。
如下软件包支持root和非root用户安装,推荐使用非root用户。
Runtime/Compiler/Toolkit软件包支持--feature参数,用于决定安装后的软件包包括哪些特性,该参数详细使用方法请参见参数说明/常用命令,用户根据实际情况选择相关参数进行安装。
表 1 安装命令
说明:
上述软件包支持不同用户在同一开发环境安装多个版本,通过不同用户的环境变量控制具体使用的版本。软件包默认安装路径:
root用户:/usr/local/Ascend
非root用户:$HOME/Ascend
安装详细日志路径:
root用户:/var/log/ascend_seclog/ascend_install.log
非root用户:$HOME/var/log/ascend_seclog/ascend_install.log
安装后软件包的安装路径、安装命令以及运行用户信息记录路径:${install_path}/${package_name}/ascend_install.info
${install_path}为软件包的安装路径,${package_name}为软件包名称。
若分别出现如下关键信息,则说明安装成功:
${package_name} 表示实际软件包名称。
${package_name} package installed successfully!切换到运行用户,执行如下命令使环境变量生效。
source ${install_path}/latest/bin/setenv.bash各环境变量的说明请参考环境变量说明。
常用操作¶
查询软件包版本号¶
进入要查询的软件包版本文件所在路径,例如root用户默认路径“/usr/local/Ascend/latest“,非root用户默认路径“$HOME/Ascend/latest“,执行如下命令查看所安装软件包版本是否正确。
cat version.cfg
系统显示信息如下。包含running的版本号表示当前系统运行的版本,包含installed的版本号表示当前系统已经安装的版本。
# version: 1.0
runtime_running_version=[XXXX:CANN-XX]
compiler_running_version=[XXXX:CANN-XX]
toolkit_running_version=[XXXX:CANN-XX]
opp_running_version=[XXXX:CANN-XX]
runtime_installed_version=[XXXX:CANN-XX]
compiler_installed_version=[XXXX:CANN-XX]
toolkit_installed_version=[XXXX:CANN-XX]
opp_installed_version=[XXXX:CANN-XX]
说明: 还可以通过cat version.info查询到各个子包的版本号。该文件存放路径:
root用户默认路径“/usr/local/Ascend/latest/${package_name}“
非root用户默认路径“$HOME/Ascend/latest/${package_name}“
升级软件包¶
升级后,请确保所有组件的版本保持一致。
不建议用户修改“/etc/ascend_install.info”,如果修改,会导致系统功能不可用。
升级过程中的日志信息:
root用户输出在“/var/log/ascend_seclog/ascend_install.log“文件中,用户可以执行vim /var/log/ascend_seclog/ascend_install.log命令打开日志。
非root用户输出在$HOME/var/log/ascend_seclog/ascend_install.log文件。
多版本场景下
仅支持对latest目录所指向的版本进行升级。
升级之前,请确保安装路径下(例如非root用户默认安装路径$HOME/Ascend/)存在latest目录,并且该目录有具体指向的版本;若不存在,则无法升级。
升级无顺序要求,每个组件软件包升级步骤相同,如下所示。升级时,请以环境实际安装的包为准。
以软件包的安装用户将新的软件包上传到开发环境任意目录。
增加安装用户对软件包的可执行权限。
在软件包所在路径执行ls -l命令检查安装用户是否有该文件的执行权限,若没有,请执行如下命令。
chmod +x XX.run校验软件包。
下载软件包后,执行如下命令校验run安装文件的一致性和完整性。
./XX.run --check执行如下命令进行升级。
Runtime、Compiler和Toolkit软件包支持--feature参数,用于决定升级后的软件包包括哪些特性,该参数详细使用方法请参见参数说明/常用命令,用户根据实际情况选择相关参数进行升级。
表 1 不同软件包升级用户及升级命令
XX请替换为具体软件包名,如果升级过程中无错误信息提示,则表示升级成功。
关于升级保留文件的说明:
如果用户在安装路径有写权限的目录自定义了文件,则升级时不会删除此类文件,升级日志会提示用户有文件未被删除,用户可以在“/var/log/ascend_seclog/ascend_install.log”日志文件最下面查看保留的文件路径,保留的文件数据会继承到新安装的版本中。
如果用户修改了安装路径下的有写权限的已有文件(非用户自定义的),则升级时会删除此类文件。
如下目录存放的是用户自定义算子以及融合规则相关文件,如果非空,则升级时不会删除(如下文件升级时不会提示用户,也不会写入升级日志),保留的用户数据会继承到新安装的版本中。
${install_path}/latest/opp/vendors/<vendor_name>/op_impl
检查升级后的版本号。
升级后需要确保各组件的版本号保持一致。在软件包的安装路径下,例如root用户默认路径“/usr/local/Ascend/latest/${package_name}“,非root用户默认路径“$HOME/Ascend/latest/${package_name}“,执行如下命令查看所升级软件包版本是否正确。
cat version.info
解压软件包¶
如果用户想要解压软件包,查看软件包中文件详细内容,则可以执行如下命令:
./XX.run --noexec --extract=path
XX请替换为具体软件包名,path表示解压后文件所在目录。
卸载软件包¶
不同软件包的卸载方式不同,如表1所示。
表 1 不同软件包卸载成功提示信息
支持两种卸载方式,用户根据实际情况选择其中一个方式卸载即可: |
||
如果卸载过程中无错误信息提示,则表示卸载成功,根据系统提示信息决定是否重启服务器,完成对软件包的卸载。上述命令中,XX请替换为具体软件包名。
关于卸载保留文件的说明:
如果用户在安装路径有写权限的目录自定义了文件,则卸载时不会删除此类文件,卸载日志会提示用户有文件未被删除,用户可以在“/var/log/ascend_seclog/ascend_install.log”日志文件最下面查看保留的文件路径,保留的文件数据会继承到新安装的版本中。
如果用户修改了安装路径下的有写权限的已有文件(非用户自定义的),则卸载时会删除此类文件。
如果OPP软件包如下目录非空,则卸载时不会删除用户数据:
${install_path}/latest/opp/vendors/<vendor_name>/op_impl
设置用户有效期¶
为保证用户的安全性,应设置用户的有效期,使用系统命令chage来设置用户的有效期。
命令为:
chage [-m mindays] [-M maxdays] [-d lastday] [-I inactive] [-E expiredate] [-W warndays] user
相关参数请参见表1。
表 1 设置用户有效期
说明:
表1只列举出常用的参数,用户可通过chage --help命令查询详细的参数说明。
日期格式为YYYY-MM-DD,如chage -E 2017-12-01 _test_表示用户_test_的口令在2017年12月1日过期。
User必须填写,填写时请替换为具体用户,默认为root用户。
举例说明:修改用户_test_的有效期为2017年12月31日。
chage -E 2017-12-31 test
FAQ¶
使用pip install软件时提示" Could not find a version that satisfies the requirement xxx"¶
安装依赖时,使用pip install xxx命令安装相关软件时提示无法连接网络,且提示“Could not find a version that satisfies the requirement xxx",使用apt-get update命令检查源可用。提示信息如所示。
没有配置pip源。
配置pip源,配置方法如下:
使用软件包的安装用户,执行如下命令:
cd ~/.pip如果提示目录不存在,则执行如下命令创建:
mkdir ~/.pip cd ~/.pip
在.pip目录下创建pip.conf 文件,命令为:
touch pip.conf编辑pip.conf文件。
使用vi pip.conf命令打开pip.conf文件,写入如下内容:
[install] #可信主机,请根据实际情况进行替换。 trusted-host=cmc-cd-mirror.rnd.huawei.com [global] #可用的源,请根据实际情况进行替换。 index-url=http://cmc-cd-mirror.rnd.huawei.com/pypi/simple/
执行**:wq!**命令保存文件。
安装python时make不成功¶
安装python时,在执行make命令时,耗时1个多小时仍然没成功。
系统时间和当前时间不一致。
使用如下命令修改系统时间为当前时间。修改后,重新执行make命令。
命令示例如下:
date -s "20200413 16:00:00"
附录¶
参数说明/常用命令¶
软件包支持根据命令行完成一键式安装,各个命令之间可以配合使用,用户根据安装需要选择对应参数完成安装,所有参数都是可选参数。
安装命令格式:** ./xx.run** [options]
详细参数请参见表1。
须知: 如下列举了所有软件包支持的参数合集,各软件包支持的参数以及各参数之间如何配合使用,以**./xx.run --help命令显示为准。 如果通过./xx.run --help**命令查询出的参数未解释在如下表格,则说明该参数预留或适用于其他芯片版本,用户无需关注。
表 1 安装包支持的参数说明
举例说明:
full模式下安装
不指定安装目录:./xx.run --full
指定安装目录:./xx.run --full --install-path=安装路径
run模式下安装
不指定安装目录:./xx.run --run
指定安装目录:./xx.run --run --install-path=安装路径
环境变量说明¶
${install_path}/latest/bin/setenv.bash中的各环境变量如下所示。
表 1 环境变量说明
export LD_LIBRARY_PATH=${install_path}/latest/runtime/lib64:$LD_LIBRARY_PATH:${install_path}/runtime/lib64/stub |
|||
# Compiler使用的python路径 export PYTHONPATH=${install_path}/latest/compiler/python/site-packages:$PYTHONPATH |
|||
# Toolkit使用的python路径 export PYTHONPATH=${install_path}/latest/toolkit/python/site-packages:$PYTHONPATH export TOOLCHAIN_HOME=${install_path}/latest/toolkit |
|||
# 算子库根目录 export ASCEND_OPP_PATH=${install_path}/latest/opp |
|||

