【写在前面】飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适配认证四大板块,旨在共享尖端技术,为开发者提供一个涵盖多领域的开发平台和工具套件。点击这里开始你的技术升级之旅吧

image.png

本文分享至飞腾开发者平台《飞腾平台下mlbench使用安装指南》

1 介绍

  本文介绍了分布式机器学习基准套件MLBench在飞腾平台上的安装使用。

2 环境要求

2.1 硬件环境

  硬件环境如下表所示。

项目说明
CPUFT-2000+/64、飞腾腾云 S2500、FT-2000/4、飞腾腾锐 D2000
网络
存储
内存

2.2 软件环境

  软件环境如下表所示。

项目版本下载地址
OScentos8.2、Kylin V10、 Ubuntu19.10
GCC9.2.1、7.3.0、8.3.1、 9.3.0
GNU Binutils2.32、2.33、2.34、 2.35
Glibc2.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和其他飞腾商标均为飞腾信息技术有限公司的商标。

本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意

本文档的内容视为飞腾的保密信息,您应当严格遵守保密任务;未经飞腾事先书面同意,您不得向任何第三方披露本文档内容或提供给任何第三方使用。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,飞腾在现有技术的基础上尽最大努力提供相应的介绍及操作指引,但飞腾在此明确声明对本文档内容的准确性、完整性、适用性、可靠性的等不作任何明示或暗示的保证。

本文档中所有内容,包括但不限于图片、架构设计、页面布局、文字描述,均由飞腾和/或其关联公司依法拥有其知识产权,包括但不限于商标权、专利权、著作权等。非经飞腾和/或其关联公司书面同意,任何人不得擅自使用、修改,复制上述内容。


飞腾开发者
6 声望3 粉丝

飞腾开发者技术小助手,定期分享飞腾技术文档,助力开发者打怪升级。更多材料获取:[链接]