获取源码并合入适配Arm平台的补丁后进行编译安装操作。
1 | cd /path/to/scann |
1 | cd google-research/scann |
1 | yum install rsync python python3-devel python3-pip gcc g++ |
1 2 | pip3 config set global.index-url https://mirrors.huaweicloud.com/repository/pypi/simple pip3 config set global.trusted-host mirrors.huaweicloud.com |
1 2 | export C_INCLUDE_PATH=/usr/include/python3.9:$C_INCLUDE_PATH export CPLUS_INCLUDE_PATH=/usr/include/python3.9:$CPLUS_INCLUDE_PATH |
1 | python3 configure.py
|
当回显信息显示成功生成配置文件.bazelrc时,代表ScaNN编译环境配置成功。
配置ScaNN编译环境过程中,若提示ModuleNotFoundError: No module named 'tensorflow'信息。
解决方法:再次执行ScaNN编译环境配置命令。
1 | python3 configure.py
|
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文件的解决办法。
1 | ./bazel-bin/build_pip_pkg |
若当前目录生成“scann-1.2.10-cp39-cp39-linux_aarch64.whl”时,证明ScaNN软件包生成成功。
1 | pip3 install scann-1.2.10-cp39-cp39-linux_aarch64.whl |
1 | python -c "import scann" |
执行无异常信息,代表ScaNN安装成功。