【写在前面】飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适配认证四大板块,旨在共享尖端技术,为开发者提供一个涵盖多领域的开发平台和工具套件。点击这里开始你的技术升级之旅吧
本文分享至飞腾开发者平台《飞腾平台下mlbench使用安装指南》
1 介绍
本文介绍了分布式机器学习基准套件MLBench在飞腾平台上的安装使用。
2 环境要求
2.1 硬件环境
硬件环境如下表所示。
项目 | 说明 |
---|---|
CPU | FT-2000+/64、飞腾腾云 S2500、FT-2000/4、飞腾腾锐 D2000 |
网络 | |
存储 | |
内存 |
2.2 软件环境
软件环境如下表所示。
项目 | 版本 | 下载地址 |
---|---|---|
OS | centos8.2、Kylin V10、 Ubuntu19.10 | |
GCC | 9.2.1、7.3.0、8.3.1、 9.3.0 | |
GNU Binutils | 2.32、2.33、2.34、 2.35 | |
Glibc | 2.28、2.23、2.31、 2.30 | |
mlbench-benchmarks | https://github.com/mlbench/mlbench-benchmarks.git | |
OpenMPI | https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4... | |
Pytorch | https://github.com/pytorch/pytorch |
3 搭建docker
步骤一 安装docker服务。
$ sudo yum install docker-ce.aarch64 docker-ce-cli.aarch64
$ docker --version //版本验证
如若宿主机为kylin v10,自动安装不了则需手动安装,步骤如下:
$ mkdir mlbench
$ wget
https://download.docker.com/linux/static/stable/aarch64/docker-20.10.7.tgz
$ tar -zxvf docker-20.10.7.tgz
$ sudo mv docker/\* /usr/bin/
$ sudo vim /usr/lib/systemd/system/docker.service
###vim添加如下内容###
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP \$MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
###########结束#######
$ systemctl daemon-reload //重新加载
$ systemctl restart docker //重启docker
$ docker -v //查看docker版本/是否安装成功
步骤二 启用docker服务。
$ systemctl start/stop docker //启动/停止docker服务
$ systemctl status docker //查看docker状态
步骤三 拉取docker镜像。
$ docker pull kumatea/pytorch:1.8.1-py37
$ docker run -it kumatea/pytorch:1.8.1-py37 /bin/bash //创建新容器并运行
以下步骤均在新创建的容器中进行相应的操作。
4 编译安装Openmpi
默认情况下,Gloo和NCCL后端构建并包含在PyTorch的分布之中。MPI是一个可选的后端,只有从源代码构建PyTorch时才能包含它(在安装了MPI的主机上从源码构建PyTorch)。
步骤一 更改docker中系统软件源(默认网络源属于外源,下载速度慢)。
$ cd $HOME
$ cat /etc/issue //查看版本,debian10
$ tee /etc/apt/sources.list << EOF
deb http://mirrors.aliyun.com/debian/ buster main non-free contrib
deb http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib
deb http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ buster main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib
deb http://mirrors.aliyun.com/debian-security/ buster/updates main non-free contrib
> deb-src http://mirrors.aliyun.com/debian-security/ buster/updates main non-free contrib
EOF
步骤二 安装wget。
$ cd $HOME
$ apt-get update
$ apt-get install -y --no-install-recommends wget
步骤三 安装gcc及编译环境。
$ apt-get install -y --no-install-recommends gcc
$ apt-get -y install build-essential
步骤四 编译安装openmpi。
$ wget https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4.0.5.tar.gz
$ gunzip -c openmpi-4.0.5.tar.gz | tar xf - //可能无法使用,用tar -zxvf
$ cd openmpi-4.0.5
$ mkdir openmpi //创建openmpi安装目录
$ ./configure --prefix=$PWD/openmpi/
$ make all install
步骤五 设置环境变量。
$ export PATH=$PWD/openmpi/bin:$PATH
$ export LD_LIBRARY_PATH=$PWD/openmpi/lib:$LD_LIBRARY_PATH
步骤六 安装conda。
$ wget https://github.com/Archiconda/build-tools/releases/download/0.2.3/Archiconda3-0.2.3-Linux-aarch64.sh
$ bash Archiconda3-0.2.3-Linux-aarch64.sh
5 编译安装pytorch
步骤一 获取pytorch。
$ apt-get install git
$ git clone --recursive https://github.com/pytorch/pytorch
$ cd pytorch
$ git checkout v1.7.0 //将pytorch的版本回退到v1.7.0
$ git submodule update --init --recursive
步骤二 编译安装
$ apt-get cmake apt install cmake
$ USE_DISTRIBUTED=1 python setup.py install
6 安装mlbench_core模块
$ apt-get update
$ apt-get install libpng-dev //编译mlbench_core中Matplotlib所需的库
//使Matplotlib自动下载编译时所需更高版本的FreeType
$ export MPLLOCALFREETYPE=1
$ pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host
pypi.tuna.tsinghua.edu.cn mlbench_core==3.0.0
7 Mlbench测试
步骤一 获取mlbench-benchmarks。
$ cd $HOME
$ git clone https://github.com/mlbench/mlbench-benchmarks.git
步骤二 backend_benchmarks测试。
$ cd mlbench-benchmarks/pytorch/backend_benchmark
$ python main.py
推荐阅读
欢迎广大开发者来飞腾开发者平台获取更多前沿技术文档及资料
如开发者在使用飞腾产品有任何问题可通过在线工单联系我们
版权所有。飞腾信息技术有限公司 2023。保留所有权利。
未经本公司同意,任何单位、公司或个人不得擅自复制,翻译,摘抄本文档内容的部分或全部,不得以任何方式或途径进行传播和宣传。
商标声明
Phytium和其他飞腾商标均为飞腾信息技术有限公司的商标。
本文档提及的其他所有商标或注册商标,由各自的所有人拥有。
注意
本文档的内容视为飞腾的保密信息,您应当严格遵守保密任务;未经飞腾事先书面同意,您不得向任何第三方披露本文档内容或提供给任何第三方使用。
由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,飞腾在现有技术的基础上尽最大努力提供相应的介绍及操作指引,但飞腾在此明确声明对本文档内容的准确性、完整性、适用性、可靠性的等不作任何明示或暗示的保证。
本文档中所有内容,包括但不限于图片、架构设计、页面布局、文字描述,均由飞腾和/或其关联公司依法拥有其知识产权,包括但不限于商标权、专利权、著作权等。非经飞腾和/或其关联公司书面同意,任何人不得擅自使用、修改,复制上述内容。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。