ubuntu 18.04 x64 安装成功,用ubuntu20.04 x64安装失败了
python3.7.5
https://support.huaweicloud.com/ti-atc-A300_3000_3010/altasatc_16_002.html
工具包下载:
https://www.huaweicloud.com/ascend/resource/Software
python3.7.5安装
- 检查系统是否安装python依赖以及gcc等软件。 分别使用如下命令检查是否安装gcc,make以及python依赖软件等。
gcc --version make --version cmake --version g++ --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</span></span></span>
若分别返回如下信息则说明已经安装,进入下一步。
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:amd64 1:1.2.11.dfsg-0ubuntu2 amd64 compression library - runtime zlib1g-dev:amd64 1:1.2.11.dfsg-0ubuntu2 amd64 compression library - development libsqlite3-dev:amd64 3.22.0-1ubuntu0.3 amd64 SQLite 3 development files openssl 1.1.1-1ubuntu2.1~18.04.5 amd64 Secure Sockets Layer toolkit - cryptographic utility libssl-dev:amd64 1.1.1-1ubuntu2.1~18.04.5 amd64 Secure Sockets Layer toolkit - development files libffi-dev:amd64 3.2.1-8 amd64 Foreign Function Interface library (development files) unzip 6.0-21ubuntu1 amd64 De-archiver for .zip files pciutils 1:3.5.2-1ubuntu1.1 amd64 Linux PCI Utilities net-tools 1.60+git20161116.90da8a0-1ubuntu1 amd64 NET-3 networking toolkit</span></span>
否则请执行如下安装命令(如果只有部分软件未安装,则如下命令修改为只安装还未安装的软件即可):<span style="color:#3d3f43"><span style="color:#3d3f43"><span style="color:#1d2129">sudo apt-get install -y gcc g++ make cmake zlib1g zlib1g-dev libsqlite3-dev openssl libssl-dev libffi-dev unzip pciutils net-tools</span></span></span>
- 检查系统是否安装python开发环境。
开发套件包依赖python环境,分别使用命令python3.7.5 --version、pip3.7.5 --version检查是否已经安装,如果返回如下信息则说明已经安装,进入下一步。
Python 3.7.5 pip <em id="ZH-CN_TOPIC_0263888482__zh-cn_topic_0247602988_zh-cn_topic_0247982884_zh-cn_topic_0232383867_i1065173581112">19.2.3 </em>from /usr/local/python3.7.5/lib/python3.7/site-packages/pip (python 3.7)</span></span>
否则请根据如下方式安装python3.7.5。
- 使用wget下载python3.7.5源码包,可以下载到安装环境的任意目录,命令为:
wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz</span></span>
- 进入下载后的目录,解压源码包,命令为:
<span style="color:#3d3f43"><span style="color:#1d2129">tar -zxvf Python-3.7.5.tgz</span></span>
- 进入解压后的文件夹,执行配置、编译和安装命令:
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路径。
- 查询/usr/lib64或/usr/lib下是否有libpython3.7m.so.1.0,若有则跳过此步骤或将系统自带的libpython3.7m.so.1.0文件备份后执行如下命令:
将编译后的文件libpython3.7m.so.1.0复制到/usr/lib64。
<span style="color:#3d3f43"><span style="color:#3d3f43"><span style="color:#1d2129">sudo cp /usr/local/<em id="ZH-CN_TOPIC_0263888482__zh-cn_topic_0247602988_zh-cn_topic_0247982884_zh-cn_topic_0232383867_i8486105732213">python3.7.5/lib/</em>libpython3.7m.so.1.0 /usr/lib64</span></span></span>
当出现如下显示,则输入y,表示覆盖系统自带的libpython3.7m.so.1.0文件。
cp: overwrite 'libpython3.7m.so.1.0'?y
如果环境上没有/usr/lib64,则复制到/usr/lib目录:
sudo cp /usr/local<em id="ZH-CN_TOPIC_0263888482__zh-cn_topic_0247602988_zh-cn_topic_0247982884_zh-cn_topic_0232383867_i81515116237">/python3.7.5/lib</em>/libpython3.7m.so.1.0 /usr/lib
libpython3.7m.so.1.0文件所在路径请根据实际情况进行替换。
- 执行如下命令设置软链接:
sudo ln -s /usr/local/python3.7.5/bin/python3 /usr/bin/python3.7 sudo ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip3.7 sudo ln -s /usr/local/python3.7.5/bin/python3 /usr/bin/python3.7.5 sudo ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip3.7.5
执行上述软链接时如果提示链接已经存在,则可以先执行如下命令删除原有链接然后重新执行。
sudo rm -rf /usr/bin/python3.7.5 sudo rm -rf /usr/bin/pip3.7.5 sudo rm -rf /usr/bin/python3.7 sudo rm -rf /usr/bin/pip3.7
- 安装完成之后,执行如下命令查看安装版本,如果返回相关版本信息,则说明安装成功。
<span style="color:#3d3f43"><span style="color:#1d2129">python3.7.5 --version pip3.7.5 --version</span></span>
- 使用wget下载python3.7.5源码包,可以下载到安装环境的任意目录,命令为:
- 安装 Python3开发环境。
安装前请先使用pip3.7.5 list命令检查是否安装相关依赖,若已经安装,则请跳过该步骤;若未安装,则安装命令如下(如果只有部分软件未安装,则如下命令修改为只安装还未安装的软件即可)。其中:toolkit包中算子比对工具依赖:protobuf、scipy;profiling工具依赖:protobuf、grpcio、grpcio-tools、requests。
如果使用非root用户安装Python及其依赖,用户需要在本步骤中的每句命令结尾加上--user,保证安装的正常进行。命令示例为:pip3.7.5 install attrs --user
-
pip3.7.5 install attrs psutil decorator numpy protobuf==3.11.3 scipy sympy cffi grpcio grpcio-tools requests --user -i https://pypi.tuna.tsinghua.edu.cn/simple
-
pip3.7.5 install attrs pip3.7.5 install psutil pip3.7.5 install decorator pip3.7.5 install numpy pip3.7.5 install protobuf==3.11.3 pip3.7.5 install scipy pip3.7.5 install sympy pip3.7.5 install cffi pip3.7.5 install grpcio pip3.7.5 install grpcio-tools pip3.7.5 install requests
Please put "/usr/local/Ascend/ascend-toolkit/20.0.0.RC1/x86_64-linux_gcc7.3.0/pyACL/python/site-packages/acl" into PYTHONPATH to use pyACL!
安装环境依赖
我们是在普通用户下安装的,首先确保当前环境中有一个普通用户和一个root用户,如果是新建的虚拟机需要先给root用户配置密码后才可以正常登录root用户(sudo passwd root)。以下安装普通用户以ascend举例。
-
用户权限配置。
普通用户安装开发套件,需要有sudo权限,所以首先需要给普通用户配置权限。切换为root用户。
su root给sudoer文件配置写权限,并打开该文件。
chmod u+w /etc/sudoers
vi /etc/sudoers在该文件“ # User privilege specification”下面增加如下内容:
其中,ascend为开发环境种普通用户用户名,需要根据自己的环境修改。
我添加的: HwHiAiUser ALL=(ALL:ALL) ALL,否则提示没有权限。
-
完成后,执行以下命令取消“ /etc/sudoers”文件的写权限。
chmod u-w /etc/sudoers -
源配置。
由于安装过程中涉及很多apt依赖和pip依赖的安装,所以配置一个国内源是一个加快进度的好办法。-
配置ubuntu18.04-x86的apt清华源。
root用户下打开apt源文件。
vi /etc/apt/sources.list将源文件内容替换为以下ubuntu18.04-x86的apt清华源。
root@ubuntu:/home/ascend# cat /etc/apt/sources.list # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse root@ubuntu:/home/ascend#
执行以下命令更新源。
apt-get update说明:
如果apt-get update失败,可以试用其他的国内源https://www.cnblogs.com/dream4567/p/9690850.html。 -
配置pip源(建议使用清华源或中科大源)。
执行以下命令,切换为普通用户。
exit执行以下命令,创建后打开普通用户家目录下的.pip/pip.conf文件。
mkdir $HOME/.pip/
vi $HOME/.pip/pip.conf将如下内容填写到pip.conf文件中。
ascend@ubuntu:~$ cat /home/ascend/.pip/pip.conf [global] timeout = 6000 index-url = http://mirrors.aliyun.com/pypi/simple/ trusted-host = mirrors.aliyun.com ascend@ubuntu:~$
-
-
安装相关apt依赖。
普通用户下安装,这些是开发环境中套件包所依赖的一些apt软件,都需要成功安装。
sudo apt-get install -y gcc make cmake unzip zlib1g zlib1g-dev libsqlite3-dev openssl libssl-dev libffi-dev pciutils net-tools -
安装python环境。
执行以下命令,进入普通用户家目录。
cd $HOME下载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 -j8
sudo make install执行以下命令将so拷贝到lib中,并设置软链接。
sudo cp /usr/local/python3.7.5/lib/libpython3.7m.so.1.0 /usr/lib
sudo ln -s /usr/local/python3.7.5/bin/python3 /usr/bin/python3.7
sudo ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip3.7
sudo ln -s /usr/local/python3.7.5/bin/python3 /usr/bin/python3.7.5
sudo ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip3.7.5执行以下命令,安装环境所需的相关pip依赖。
pip3.7.5 install attrs psutil decorator numpy protobuf==3.11.3 scipy sympy cffi grpcio grpcio-tools requests --user
安装toolkit开发工具包
如下图,下载开发环境所需要的toolkit包。
下载链接:https://www.huaweicloud.com/ascend/resource/Software
将包放置到开发环境普通用户的$HOME目录下。
并执行以下命令,切换到普通用户的$HOME目录下。
cd $HOME
执行以下命令,给run包增加可执行权限。
chmod 755 *.run
执行以下命令,安装toolkit包。
./Ascend-Toolkit-20.0.0.RC1-x86_64-linux_gcc7.3.0.run --install
export install_path=/usr/local/Ascend/ascend-toolkit/latest/x86_64-linux_gcc7.3.0
export PATH=/usr/local/python3.7.5/bin:${install_path}/atc/ccec_compiler/bin:${install_path}/atc/bin:$PATH
export PYTHONPATH=${install_path}/atc/python/site-packages/te:${install_path}/atc/python/site-packages/topi:$PYTHONPATH
export LD_LIBRARY_PATH=${install_path}/atc/lib64:$LD_LIBRARY_PATH
export ASCEND_OPP_PATH=${install_path}/opp
转换:
atc --model=./0908.prototxt --weight=./0908.caffemodel --framework=0 --output=./0908-model --soc_version=Ascend310
没有关系的报错: Invalid argument: 'protocol'
ATC start working now, please wait for a moment.
[EVENT] GE(29634,atc):2020-09-07-23:08:50.427.950 [framework/domi/init/gelib.cc:55]29634 Initialize:[GEPERFTRACE] GE Init Start
[EVENT] GE(29634,atc):2020-09-07-23:08:50.430.254 [framework/domi/init/gelib.cc:92]29634 InnerInitialize:[GEPERFTRACE] The time cost of InnerInitialize::SystemInitialize is [353] micro second.
[EVENT] GE(29634,atc):2020-09-07-23:08:50.436.740 [framework/domi/init/gelib.cc:102]29634 InnerInitialize:[GEPERFTRACE] The time cost of InnerInitialize::EngineInitialize is [4255] micro second.
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/local/python3.7.5/lib/python3.7/multiprocessing/forkserver.py", line 186, in main
with socket.socket(socket.AF_UNIX, fileno=listener_fd) as listener, \
File "/usr/local/python3.7.5/lib/python3.7/socket.py", line 151, in __init__
_socket.socket.__init__(self, family, type, proto, fileno)
OSError: [Errno 22] Invalid argument: 'protocol'
Traceback (most recent call last):
File "/usr/local/Ascend/ascend-toolkit/latest/x86_64-linux_gcc7.3.0/atc/python/site-packages/te/te/platform/parallel_compilation.py", line 506, in init_multi_process_env
return compiler.start()
File "/usr/local/Ascend/ascend-toolkit/latest/x86_64-linux_gcc7.3.0/atc/python/site-packages/te/te/platform/parallel_compilation.py", line 290, in start
worker.start()
File "/usr/local/python3.7.5/lib/python3.7/multiprocessing/process.py", line 112, in start
self._popen = self._Popen(self)
File "/usr/local/python3.7.5/lib/python3.7/multiprocessing/context.py", line 291, in _Popen
return Popen(process_obj)
File "/usr/local/python3.7.5/lib/python3.7/multiprocessing/popen_forkserver.py", line 35, in __init__
super().__init__(process_obj)
File "/usr/local/python3.7.5/lib/python3.7/multiprocessing/popen_fork.py", line 20, in __init__
self._launch(process_obj)
File "/usr/local/python3.7.5/lib/python3.7/multiprocessing/popen_forkserver.py", line 55, in _launch
self.pid = for