源码编译安装

获取源码并合入适配Arm平台的补丁后进行编译安装操作。

  1. 使用PuTTY工具,以root用户登录服务器。
  2. 进入ScaNN源码编译路径。

    1
    cd /path/to/scann
    

  3. 进入ScaNN代码目录。

    1
    cd google-research/scann
    

  4. 安装编译依赖。

    1
    yum install rsync python python3-devel python3-pip gcc g++
    

  5. 配置pip源。

    1
    2
    pip3 config set global.index-url https://mirrors.huaweicloud.com/repository/pypi/simple
    pip3 config set global.trusted-host mirrors.huaweicloud.com
    

  6. 将python3头文件路径添加到环境变量C_INCLUDE_PATH和CPLUS_INCLUDE_PATH中。根据实际安装路径设置参数,例如:

    1
    2
    export C_INCLUDE_PATH=/usr/include/python3.9:$C_INCLUDE_PATH
    export CPLUS_INCLUDE_PATH=/usr/include/python3.9:$CPLUS_INCLUDE_PATH
    

  7. 执行ScaNN编译配置命令。

    1
    python3 configure.py
    

    当回显信息显示成功生成配置文件.bazelrc时,代表ScaNN编译环境配置成功。

    配置ScaNN编译环境过程中,若提示ModuleNotFoundError: No module named 'tensorflow'信息。

    解决方法:再次执行ScaNN编译环境配置命令。

    1
    python3 configure.py
    

  8. 执行编译命令。

    1
    bazel clean; CC=gcc bazel build -c opt --cxxopt="-std=c++17" --copt=-fsized-deallocation --copt=-w --copt=-O3 --cxxopt=-O3 --copt=-march=armv8.2-a+lse+sve+f64mm --cxxopt=-march=armv8.2-a+lse+sve+f64mm --copt=-msve-vector-bits=256 --cxxopt=-msve-vector-bits=256 :build_pip_pkg
    

    若ScaNN编译过程中提示“unable to find valid certification path to requested target”,解决方法请参见编译ScaNN过程中提示找不到证书路径的解决办法

    若ScaNN编译过程中提示Python.h: no such file or directory,解决方法请参见编译ScaNN过程中没有Python.h文件的解决办法

  9. 在当前路径生成ScaNN软件包.whl文件。

    1
    ./bazel-bin/build_pip_pkg
    

    若当前目录生成“scann-1.2.10-cp39-cp39-linux_aarch64.whl”时,证明ScaNN软件包生成成功。

  10. 安装ScaNN软件包。

    1
    pip3 install scann-1.2.10-cp39-cp39-linux_aarch64.whl
    

  11. 验证ScaNN是否安装成功。

    1
    python -c "import scann"
    

    执行无异常信息,代表ScaNN安装成功。