HiSpark AI

- 软件资料
  - AMCT模型压缩工具用户指南
    - 学习向导
    - 概述
    - 准备环境
    - 快速入门
    - AMCT（PyTorch）
    - AMCT（ONNX）
    - AMCT（TensorFlow）(不支持)
    - AMCT（Caffe）(不支持)
    - 命令行参数说明
    - 样例列表
    - FAQ
    - 附录
  - ATC离线模型编译工具用户指南
    - 学习向导
    - ATC简介
    - 准备环境
    - 快速入门
    - 初级功能
    - 高级功能
    - 参数说明
    - 专题
    - 参考
    - FAQ
  - HiSpark Studio AI for VS Code使用指南
    - 前言
    - HiSpark Studio AI简介
    - 数据准备与环境搭建
    - Hi3863操作指南
    - Hi3322操作指南
  - HiSpark.AI API开发指南
    - 前言
    - 简介
    - 接口调用流程介绍
    - HiSpark.AI API参考
    - 样例使用指导
    - FAQ
  - HiSpark.AI 快速入门指南
    - 前言
    - 简介
    - 开发板准备
    - 开发环境准备
    - 样例运行
    - 常见错误
  - HiSpark.AI 转换工具使用指南
    - 前言
    - Converter_lite工具使用环境搭建
    - 快速入门
    - 基础知识
    - 初级功能
    - 参数说明
    - 算子规格参考
    - 专题
  - Nano AI应用开发指导书
    - Nano AI应用界面
    - Nano 芯片支持数据类型和典型模型性能
    - Nano AI资料清单
    - Nano AI应用开发流程
    - FAQ
  - 应用开发指南
    - 简介
    - 准备环境
    - 编程接口与调用流程
    - 初始化与去初始化
    - 运行时资源管理
    - 模型管理
    - 更多特性
    - 应用编译&运行
    - 精度/性能优化
    - acl API参考
    - FAQ案例集
    - 附录
  - 开发环境安装指南
    - 简介
    - 获取软件包
    - 安装前准备
    - 安装
    - 常用操作
    - FAQ
    - 附录
    - Compiler的库文件存在路径
  - 术语和缩略语
    - 术语和缩略语
  - 模型评估脚本使用指南
    - 简介
    - 使用前准备
    - 使用步骤
  - 精度调试工具用户指南
    - 简介
    - 使用前准备
    - GPU vs NPU（TensorFlow离线推理）-IPV350不支持
    - GPU vs NPU（ONNX离线推理）-IPV350不支持
    - NPU vs NPU（离线推理）
    - 比对结果说明
    - 比对结果分析
    - 扩展功能
    - 附录
  - 驱动日志说明文档
    - 简介
    - 日志分类
    - 异常场景
    - 典型案例

### 该页内容

- 简介
- 获取软件包
- 安装前准备
- 安装
- 常用操作
  - 查询软件包版本号
  - 升级软件包
  - 解压软件包
  - 卸载软件包
  - 设置用户有效期
- FAQ
  - 使用pip install软件时提示" Could not find a version that satisfies the requirement xxx"
  - 安装python时make不成功
- 附录
  - 参数说明/常用命令
  - 环境变量说明
- Compiler的库文件存在路径

# 简介

开发环境是指用户开发应用程序的环境，用户在开发环境上做开发、编译、模型转换，并应用板端环境运行调试应用程序。板端环境是指实际运行用户开发的应用的环境，要求实际安装NPU IP加速器。详细部署架构图如图1所示。

图 1 部署架构图

软件包说明：

- Runtime：AI应用程序开发使用的API和运行库。包含GE模型加载及执行功能。包含编译依赖的相关库（不包含driver包中的库）。

- Compiler：模型和算子编译器。用于离线模型转换、融合规则开发等场景。

- OPP：算子库，包含算子原型库及算子实现库、算子插件、融合规则。算子实现库包含TBE算子，另外包含算子parser。

- Toolkit：调测工具包，主要包含开发者调测应用、算子需要使用的工具包，例如：profiling性能调试工具。

# 获取软件包

安装前，请根据开发环境的操作系统获取对应的软件包，各组件包版本号需要保持一致。各软件包名称如表1所示。{software version}表示具体版本号。

表 1 软件包简介

组件 | 包名 | 备注
--- | --- | ---
Runtime | CANN-runtime-{software version}-linux.x86_64.run | 包含开发时需要使用的API和运行库。开发包括：开发算子，开发应用，模型转换等。
Compiler | CANN-compiler-{software version}-linux.x86_64.run | -
OPP | CANN-opp-{software version}-linux.x86_64.run | -
Toolkit | CANN-toolkit-{software version}-linux.x86_64.run | -

# 安装前准备

环境要求

开发环境要求的硬件及操作系统要满足以下条件。

表 1 软件包默认系统版本信息

类别 | 版本限制 | 获取方式 | 注意事项
--- | --- | --- | ---
硬件 | 内存：最小4GB | - | 若Linux宿主机内存为4G，使用ATC工具进行模型转换时，建议Model文件大小不超过350M，如果超过此规格，操作系统可能会因为超过安全内存阈值而工作不稳定。 若Linux宿主机配置升级，比如8G内存，则相应支持的操作对象规格按比例提升。 例如，内存由4G升级到8G，则Model文件建议大小不超过700M。
操作系统及架构 | Ubuntu 22.04 | cat /etc/*release && uname -m | -
host操作系统内核版本 | 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 | uname -r | -
GCC编译器版本 | 13.3.0 | gcc --version | -
GLIBC版本 | 2.39 | ldd --version | -
Python | Python3.7.x、Python3.8.x、Python3.9.x、Python3.10.x、Python3.11.x | 请参见安装依赖。 | -
g++ | 9.4.0 | -

创建安装及运行用户

- 若使用root用户安装

  可以使用root用户进行安装，但安装完之后要求使用非root用户运行，所以安装前需要先创建运行用户。

- 若使用非root用户安装

  该场景下安装及运行用户必须相同。

  - 若已有非root用户，则无需再次创建。

  - 若想使用新的非root用户，则需要先创建该用户，请参见如下方法创建。

创建非root用户操作方法如下，如下命令请以root用户执行。

1. 创建非root用户。

       groupadd usergroup
       useradd -g usergroup -d /home/username -m username -s /bin/bash

2. 设置非root用户密码。

       passwd username

> 说明： 密码有效期为90天，您可以在/etc/login.defs文件中修改有效期的天数，或者通过chage命令来设置用户的有效期，详情请参见设置用户有效期。

检查源

安装过程需要下载相关依赖，请确保运行环境能够连接网络。

请在root用户下执行如下命令检查源是否可用。

    apt-get update

> 说明： 如果命令执行报错，则检查网络是否连接或者把“/etc/apt/sources.list“文件中的源更换为可用的源。

安装依赖

请使用软件包的安装用户安装依赖的gcc、python等软件，如果安装用户为非root，则需要确保该用户有sudo权限。

1. 检查系统是否安装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环境。

2. 检查系统是否安装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为例。

   1. 使用wget下载python3.7.5源码包，可以下载到运行环境任意目录，命令为：

          wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz

   2. 进入下载后的目录，解压源码包，命令为：

          tar -zxvf Python-3.7.5.tgz

   3. 进入解压后的文件夹，执行配置、编译和安装命令：

          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路径。

   4. 执行如下命令设置软链接：

          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

   5. 设置python3.7.5环境变量。

      1. 以运行用户在任意目录下执行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

      2. 执行**:wq!**命令保存文件并退出。

      3. 执行source ~/.bashrc命令使其立即生效。

   6. 安装完成之后，执行如下命令查看安装版本，如果返回相关版本信息，则说明安装成功。

          python3.7.5 --version
          pip3.7.5  --version
          python3.7 --version
          pip3.7  --version

3. 安装CANN软件包的相关依赖。

   安装前请先使用pip3.7.5 list命令检查是否安装相关依赖，若未安装，则安装命令如下（如果只有部分软件未安装，则如下命令修改为只安装还未安装的软件即可。

   表 2 依赖列表

   组件 | 依赖名称 | 版本号 | 安装命令
   --- | --- | --- | ---
   Toolkit | python | Python3.7.x、Python3.8.x、Python3.9.x、Python3.10.x、Python3.11.x | 请参见2。
   google.protobuf | >=3.13.0 | pip install protobuf --user
   psutil | >=5.7.0 | pip install psutil --user
   numpy | >=1.13.3 | pip install numpy --user
   scipy | >=1.4.1 | pip install scipy --user
   Compiler | python | Python3.7.x、Python3.8.x、Python3.9.x、Python3.10.x、Python3.11.x | 请参见2。
   numpy | >=1.13.3 | pip install numpy --user
   decorator | >=4.4.0 | pip install decorator --user
   sympy | >= 1.5.1 | pip install sympy --user
   cffi | >=1.12.3 | pip install cffi==1.12.3 --user
   absl-py | - | pip install absl-py --user
   attrs | - | pip install attrs --user

   如果执行上述命令时无法连接网络，且提示“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请根据实际情况进行替换。

1. 以软件包的安装用户登录开发环境，切换到软件包所在路径。

2. 增加安装用户对软件包的可执行权限。

   在软件包所在路径执行ls -l命令检查安装用户是否有该文件的执行权限，若没有，请执行如下命令。

       chmod +x XX.run

3. 校验软件包。

   下载软件包后，执行如下命令校验软件包安装文件的一致性和完整性。

       ./XX.run --check

4. 根据表1所示命令进行安装。

   如下软件包支持root和非root用户安装，推荐使用非root用户。

   Runtime/Compiler/Toolkit软件包支持--feature参数，用于决定安装后的软件包包括哪些特性，该参数详细使用方法请参见参数说明/常用命令，用户根据实际情况选择相关参数进行安装。

   表 1 安装命令

   组件 | 安装命令 | 安装用户 | 运行用户 | 是否支持安装多版本
   --- | --- | --- | --- | ---
   Runtime |
       ./xx.run --full --pre-check
   | 非root | 安装用户 | 是 多版本安装命令： 通过--install-path=<path>参数指定安装路径或者覆盖安装路径。该路径支持的字符范围包括：英文字符（a-z、A-Z）、数字（0-9）、句点（.（非相对路径））、下划线（_）、中划线（-）、单个/（文件名或目录不支持/）。 如果指定的路径不存在，系统会自动创建，当前版本不支持自动创建多层目录，仅支持自动创建最后一层目录。 如果指定的路径存在，则需要确保用户对该路径有可执行权限。
   Compiler |
       ./xx.run --full --pylocal
   OPP |
       ./xx.run --full
   Toolkit |
       ./xx.run --full --pylocal

   > 说明： 上述软件包支持不同用户在同一开发环境安装多个版本，通过不同用户的环境变量控制具体使用的版本。

   - 软件包默认安装路径：

     - 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}为软件包名称。

5. 若分别出现如下关键信息，则说明安装成功：

   ${package_name} 表示实际软件包名称。

       ${package_name} package installed successfully!

6. 切换到运行用户，执行如下命令使环境变量生效。

       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}“

## 升级软件包

升级注意事项

1. 升级后，请确保所有组件的版本保持一致。

2. 不建议用户修改“/etc/ascend_install.info”，如果修改，会导致系统功能不可用。

3. 升级过程中的日志信息：

   - 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文件。

4. 多版本场景下

   - 仅支持对latest目录所指向的版本进行升级。

   - 升级之前，请确保安装路径下（例如非root用户默认安装路径$HOME/Ascend/）存在latest目录，并且该目录有具体指向的版本；若不存在，则无法升级。

操作步骤

升级无顺序要求，每个组件软件包升级步骤相同，如下所示。升级时，请以环境实际安装的包为准。

1. 以软件包的安装用户将新的软件包上传到开发环境任意目录。

2. 增加安装用户对软件包的可执行权限。

   在软件包所在路径执行ls -l命令检查安装用户是否有该文件的执行权限，若没有，请执行如下命令。

       chmod +x XX.run

3. 校验软件包。

   下载软件包后，执行如下命令校验run安装文件的一致性和完整性。

       ./XX.run --check

4. 执行如下命令进行升级。

   Runtime、Compiler和Toolkit软件包支持--feature参数，用于决定升级后的软件包包括哪些特性，该参数详细使用方法请参见参数说明/常用命令，用户根据实际情况选择相关参数进行升级。

   表 1 不同软件包升级用户及升级命令

   组件 | 升级用户 | 升级命令
   --- | --- | ---
   Compiler | 安装用户 | 进入软件包所在路径，执行如下命令：
       ./XX.run --upgrade --pylocal
   如果安装时指定了安装路径，则升级时还要增加--install-path=${install_path}参数，用于指定升级时安装包的路径。该路径支持的字符范围包括：英文字符（a-z、A-Z）、数字（0-9）、句点（.（非相对路径））、下划线（_）、中划线（-）、单个/（文件名或目录不支持/）。
   Toolkit | 安装用户
   OPP | 安装用户 | 进入软件包所在路径，执行如下命令：
       ./XX.run --upgrade
   如果安装时指定了安装路径，则升级时还要增加--install-path=${install_path}参数，用于指定升级时安装包的路径。该路径支持的字符范围包括：英文字符（a-z、A-Z）、数字（0-9）、句点（.（非相对路径））、下划线（_）、中划线（-）、单个/（文件名或目录不支持/）。
   Runtime | 安装用户

   XX请替换为具体软件包名，如果升级过程中无错误信息提示，则表示升级成功。

   关于升级保留文件的说明：

   - 如果用户在安装路径有写权限的目录自定义了文件，则升级时不会删除此类文件，升级日志会提示用户有文件未被删除，用户可以在“/var/log/ascend_seclog/ascend_install.log”日志文件最下面查看保留的文件路径，保留的文件数据会继承到新安装的版本中。

     如果用户修改了安装路径下的有写权限的已有文件（非用户自定义的），则升级时会删除此类文件。

   - 如下目录存放的是用户自定义算子以及融合规则相关文件，如果非空，则升级时不会删除（如下文件升级时不会提示用户，也不会写入升级日志），保留的用户数据会继承到新安装的版本中。

     - ${install_path}/latest/opp/vendors/<vendor_name>/op_impl

5. 检查升级后的版本号。

   升级后需要确保各组件的版本号保持一致。在软件包的安装路径下，例如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 不同软件包卸载成功提示信息

组件 | 卸载用户 | 卸载命令
--- | --- | ---
- Runtime | 安装用户 | 支持两种卸载方式，用户根据实际情况选择其中一个方式卸载即可： 在任意路径执行如下命令卸载软件包：
      ${install_path}/${package_name}/script/uninstall.sh
- 使用软件包进行卸载：
      ./XX.run --uninstall
如果安装时指定了安装路径，则卸载时还要增加--install-path=${install_path}参数，用于指定卸载时安装包的路径。该路径支持的字符范围包括：英文字符（a-z、A-Z）、数字（0-9）、句点（.（非相对路径））、下划线（_）、中划线（-）、单个/（文件名或目录不支持/）。
Compiler | 安装用户
Toolkit | 安装用户
OPP | 安装用户

如果卸载过程中无错误信息提示，则表示卸载成功，根据系统提示信息决定是否重启服务器，完成对软件包的卸载。上述命令中，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 设置用户有效期

参数 | 参数说明
--- | ---
-m | 口令可更改的最小天数。设置为“0”表示任何时候都可以更改口令。
-M | 口令保持有效的最大天数。设置为“-1”表示可删除这项口令的检测。
-d | 上一次更改的日期。
-I | 停滞时期。过期指定天数后，设定密码为失效状态。
-E | 用户到期的日期。超过该日期，此用户将不可用。
-W | 用户口令到期前，提前收到警告信息的天数。
-l | 列出当前的设置。由非特权用户来确定口令或账户何时过期。

> 说明：

> - 表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命令检查源可用。提示信息如所示。

图 1 使用pip3安装软件提示信息

可能原因

没有配置pip源。

解决方法

配置pip源，配置方法如下：

1. 使用软件包的安装用户，执行如下命令：

       cd ~/.pip

   如果提示目录不存在，则执行如下命令创建：

       mkdir ~/.pip
       cd ~/.pip

   在.pip目录下创建pip.conf 文件，命令为：

       touch pip.conf

2. 编辑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/

3. 执行**:wq!**命令保存文件。

## 安装python时make不成功

问题描述

安装python时，在执行make命令时，耗时1个多小时仍然没成功。

可能原因

系统时间和当前时间不一致。

解决方法

使用如下命令修改系统时间为当前时间。修改后，重新执行make命令。

命令示例如下：

date -s "20200413 16:00:00"

# 附录

## 参数说明/常用命令

参数说明

软件包支持根据命令行完成一键式安装，各个命令之间可以配合使用，用户根据安装需要选择对应参数完成安装，所有参数都是可选参数。

安装命令格式：** ./xx.run** [options]

详细参数请参见表1。

> 须知： 如下列举了所有软件包支持的参数合集，各软件包支持的参数以及各参数之间如何配合使用，以**./xx.run --help命令显示为准。 如果通过./xx.run --help**命令查询出的参数未解释在如下表格，则说明该参数预留或适用于其他芯片版本，用户无需关注。

表 1 安装包支持的参数说明

参数 | 说明
--- | ---
--run | 运行态类型：只安装运行场景需安装的文件。
--devel | 开发态类型：包含用户开发时需要用到的头文件。
--full | 完整安装类型：安装所有文件。
--docker-root | 基础镜像的家目录。 当用户需要将NPU IP加速器镜像包导入到容器时，需要携带该参数。通过该参数指定基础镜像的家目录。 使用示例：./xx.run --docker-root=/home/docker --install-path=/usr/ascend_demo， 实际是安装在 /home/docker/usr/ascend_demo 。即安装路径是$(docker-root)/$(install-path）。
--pre-check | 安装时，执行预检查脚本pre-check，检查该组件包安装和运行时需要的依赖是否存在。
- --setenv | 安装时使用该参数，通过修改~/.bashrc来设置运行所使用的环境变量。 若安装用户与运行用户相同，比如都为非root，则安装完成后只需source ~/.bashrc，环境变量即可生效。该方式设置的环境变量永久生效。 若安装用户与运行用户不同，比如安装用户为root，运行用户为非root，则实际运行时，需要使用非root用户执行如下命令，生效环境变量，该方式设置的环境变量只在当前窗口生效：
      source ${install_path}/bin/setenv.bash
--install-path=<path> | 指定安装目录。支持绝对路径和相对路径。 若通过该参数指定了安装路径，运行用户需要对指定的安装路径有可读写权限。安装路径支持大小写字母（a-z，A-Z）、数字（0-9）、下划线（_）、中划线（-）、句点（.（非相对路径））、单个/（文件名或目录不支持/）。 若指定路径不存在，则安装时会自动创建目录，若有多层目录，则只有最后一层目录不存在时会自动创建。 若指定路径已存在，请确保安装用户对该目录有可读，可写，可执行权限。并且： root用户安装场景下，如果使用--install-path=<path>指定安装路径，请确保所有层级目录属主为root，并且所有层级目录权限为755。否则需要用户自行修改目录属主或者目录层级权限。 若使用root用户安装，默认安装路径为：/usr/local/Ascend。 若使用非root用户安装，则默认安装路径为：$HOME/Ascend。
--install-for-all | 安装或升级时，允许其他用户具有安装群组的权限。 当安装或者升级携带该参数时，软件包中创建的目录及文件，其他用户权限=安装群组权限。 说明： 使用该参数将会存在安全风险：其他所有用户都有权限访问安装目录，存在权限过大的风险，请谨慎使用。 安装时如果使用该参数： 如果安装路径不存在，则安装过程中会自动创建默认路径，例如$HOME/Ascend，该路径权限为755，其他用户可以正常使用。 如果安装路径已存在，则请确保该目录权限至少为755，否则将会终止安装。
--uninstall | 卸载。
--nox11 | 安装过程中不弹出图形终端窗口。 使用示例：./xx.run --full --nox11
--noexec | 不执行安装脚本。配套--extract=path使用。格式为：--noexec --extract=path
--extract=path | 解压缩安装包中文件到指定目录。使用该参数时，用户无需手动建立指定的目录，解压过程中会自动创建，例如：--noexec --extract=./package，则命令执行后会自动将解压后的内容放在package目录。
--upgrade | 升级。仅支持从软件包所在路径升级。
--help或者-h | 查看帮助。
--check | 校验软件包的完整性、检查与已经安装的其他软件包之间的配套关系是否正确。
--check-path=<path> | 该参数只针对OPP软件包生效。 由于OPP包依赖Compiler软件包，安装OPP软件包时用该参数检测Compiler软件包是否安装。参数后面需要使用Compiler的安装路径。使用方式示例如下:
    ./xx.run --check-path=/home/Davinci/Ascend/compiler/
--version | 查询版本号。
--tar arg1 [arg2 …] | 对安装包执行tar命令，使用tar后面的参数作为命令的参数。例如执行--tar xvf命令，解压软件包的内容到当前目录。
--list | 导出安装包文件列表。
--info | 显示数据包详细信息。
--quiet | 静默安装，跳过交互式信息。 使用该参数进行安装时，若安装目录权限大于755，则会提示安全风险，用户自行选择终止安装或选择其他权限为755的安装目录重新安装。 例如./*.run --full --quiet 说明： Driver、Firmware和AICPU_Kernels软件包在使用该参数时，不能与--uninstall配合使用。
--pylocal | 安装HCCL软件包时，是否将.whl安装到HCCL安装路径。 若选择该参数，则.whl安装在${install_path}/python/site-packages路径。 若不选择该参数，则.whl安装在本地python路径，例如/usr/local/python3.7.5/lib/python3.7/site-packages。 安装Compiler软件包时，是否将te,topi,.whl等安装到Compiler安装路径。 若选择该参数，则te,topi,.whl等安装在${install_path}/python/site-packages路径。 若不选择该参数，则te,topi等安装在本地python路径，例如/usr/local/python3.7.5/lib/python3.7/site-packages。 安装Toolkit软件包时，是否将UT测试框架相应的whl包安装到Toolkit安装路径： 若选择该参数，则op_gen、op_test_frame安装在${install_path}/python/site-packages路径。 若不选择该参数，则op_gen、op_test_frame安装在本地python路径，例如/usr/local/python3.7.5/lib/python3.7/site-packages。

举例说明：

- 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 环境变量说明

软件包 | 环境变量名称 | 环境变量说明 | 配置示例
--- | --- | --- | ---
Runtime | LD_LIBRARY_PATH | 动态库的查找路径。 |
    export LD_LIBRARY_PATH=${install_path}/latest/runtime/lib64:$LD_LIBRARY_PATH:${install_path}/runtime/lib64/stub
Compiler | PYTHONPATH | Python搜索路径。 |

    # Compiler使用的python路径
    export PYTHONPATH=${install_path}/latest/compiler/python/site-packages:$PYTHONPATH
    # 如果用户环境存在多个python3版本，则指定使用python3.7.5版本，python3.7.5安装路径请根据实际情况进行替换；同时设置ATC工具可执行文件所在路径
    export PATH=/usr/local/python3.7.5/bin:${install_path}/latest/compiler/ccec_compiler/bin:${install_path}/latest/compiler/bin:$PATH

# Compiler的库文件存在路径

export LD_LIBRARY_PATH=${install_path}/latest/compiler/lib64:${install_path}/compiler/lib64/plugin/opskernel:${install_path}/latest/compiler/lib64/plugin/nnengine:${install_path}/latest/compiler/lib64/stub

PATH

可执行程序的查找路径。

LD_LIBRARY_PATH

动态库的查找路径。

Toolkit

PYTHONPATH

Python搜索路径。

    # Toolkit使用的python路径
    export PYTHONPATH=${install_path}/latest/toolkit/python/site-packages:$PYTHONPATH
    export TOOLCHAIN_HOME=${install_path}/latest/toolkit

OPP

ASCEND_OPP_PATH

算子库根目录。

    # 算子库根目录
    export ASCEND_OPP_PATH=${install_path}/latest/opp
    #AI CPU组件的安装路径
    export ASCEND_AICPU_PATH=${install_path}/latest

ASCEND_AICPU_PATH

AI CPU组件的安装路径。