Cambricon MLU270 在 X86 架构主机的运行环境搭建

随着人工智能的兴起,其推理过程在实际的应用和部署过程中需要计算硬件做到高性能、高精度、低延迟和低功耗。寒武纪Cambricon MLU270是寒武纪科技公司研发生产的智能AI处理卡,基于全新的寒武纪MLUv02架构。

作为国产 AI 计算卡的先驱产品,其高通用性,高效能,全面部署场景,完善的软件开发环境等优点,必将在国内市场占有一席之地。本文着重介绍 MLU270 在 HOST 端的环境搭建中的硬件需求,软件适配。并一 caffe 模型为例,在 MLU270 上运行模型作为演示。

一、硬件和驱动安装

    1.硬件环境:

        CPU:       AMD Ryzen5 3600

        主板:     华硕 B450M Gaming

        计算卡:      Cambricon MLU270

        BIOS版本: 华硕 Ver2409

        OS:       Ubuntu16.04/Ubuntu18.04

 

 

                                                                            图(1)

 

    如图(1)说明:

  • MLU270 与主板 PCIE-16 插槽连接。
  • MLU270 没有散热风扇,可使用 USB 接口风扇对其散热,否则会过热导致设备将停止工作。
  • AMD CPU 无集成显卡,若机箱空间太小可用 PCIE 延长线将显卡引出。若无需桌面环境或 Intel CPU 带集显,可忽略此步。

 

 

 

2、BIOS 升级

    MLU270 工作需要在 BIOS 中开启64位设备在大于4G地址空间的解码,根据不同的 CPU、主板厂商,需要开启 Re-Size BAR Support 和(或) Above 4G Decoding 功能选项。华硕 AM4 接口主板在 ver2409 版本后才开始支持此功能(如图2)。如果低于此版本需要先升级 BIOS。

                    

           

 

                                                                                           图(2)



不同主板厂商 BIOS 升级方式各不相同,相关操作参考网络内容。升级后的 BIOS 会出现如图(3)

所示的选项功能。

                                

 

                                                                                                       图(3)

 

3.MLU270驱动的安装与升级

 ①驱动的 .deb 包可以从 download.cambricon.com FTP 服务器下载,用户名和密码可以找对应的

         AE/FAE 获取。如图(4)。

        

 

                                                                                    图(4)

 

 ② 安装升级驱动

    执行以下命令安装驱动

    $sudo apt install dkms

    $sudo apt install ./neuware-mlu270-driver-dkms_4.8.0_all.deb

 

    若系统中已经存在旧版本驱动,则在执行以上命令升级的时候会出现如图(5)所示提示,

 

                                                               图(5)

此时需要先卸载旧的驱动模块再重新安装

$sudo rmmod cambricon-drv

$sudo insmod /lib/modules/5.4.0-58-generic/updates/dkms/cambricon-drv.ko

$sudo lspci -v -d:270

$cnmon

板卡信息如下图(6)所示

 

                                                            图(6)

 

  • 可能遇到的问题:

Linux header与kernel版本未匹配

方法如下:

 

 

                                                                                          图(7)

 

删除多余内核:

查看已安装内核:

sudo dpkg --get-selections  |  grep  'linux'

卸载内核headers

sudo  apt-get  purge  linux-headers-x.xx.x-xxxxxx

 

 

二、Docker 搭建

①安装 docker

$sudo curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

 

添加docker 用户组到用户群组并更新配置(login out)

$sudo usermod -aG docker username

$newgrp docker

 

查看本地镜像

$docker images

 

 

②创建本地镜像

下载官方 ubuntu16.04 镜像

$docker pull ubuntu:16.04

 

下载寒武纪官方镜像

Docker image 下载地址:

见 FTP 服务器。从中选取自己需要的镜像,寒武纪官方已经提供了集成了
 caffe tensorflow Pytorch 等框架的 docker 镜像。

镜像的路径。

 

                                                                                         图(8)

$docker load<docker-image-name.tar

 

查看本地 images

 

 

                                                                                                图(9)

 

  • 启动容器

基于镜像 ubuntu-16.040mlu270-image:latest(实际操作根据自己所选的镜像文件作对应的修改) 启动一个容器,并从宿主机继承 /dev/cambricon_dev0设备,并映射相关工作目录,创建如图(9)所示脚本

 

 

                                                                                                       图(10)

 

此时,我们运行了一个名为 Cambricon-MLU270-clean-sim 的容器,并且容器的 /home/Cambricon-MLU270 路径与宿主机脚本同级路径下的 MLU270 文件下互相映射,如图(10)所示。

 

 

                                                                                                      图(11)

 

 

三、caffe 运行测试

①下载文件

使用 FTP 软件下载官方提供的 SDK,models 等等,到主机与容器共享工作目录下

推荐使用:FileZilla 软件

 

主机:download.cambricon.com

用户名:找对应的FAE/AE

密码:找对应的FAE/AE

端口:8821

 

下载 SDK 文件

 

                                                                                图(12)

 

下载 models 和 datasets。

 

 


                                                                        图(13)

 

②容器配置

Caffe 基于 python2.7 环境,Tensorflow 和 Pytorch 都是基于 python3.5的环境。

  • 解压 软件包

tar xvf model/Cambricon-MLU270.tar.gz -C workdir

Cambricon-MLU270目录就解压完成了。

 

  • 解压 数据集

cat MLU270_datasets.tar.gza* > MLU270_datasets.tar.gz

tar -xvf MLU270_datasets.tar.gz -C workdir/Cambricon-MLU270

 

  • 解压 模型包【一般情况下,先使用caffe作为测试,或者根据自己的情况选择框架】

tar -xvf Cambricon-MLU270-models-caffe.tar  -C workdir/Cambricon-MLU270

tar -xvf Cambricon-MLU270-models-tensorflow.tar  -C workdir/Cambricon-MLU270

tar -xvf Cambricon-MLU270-models-tensorflow_models.tar  -C workdir/Cambricon-MLU270

tar -xvf Cambricon-MLU270-models-mxnet.tar  -C workdir/Cambricon-MLU270

tar -xvf Cambricon-MLU270-models-pytorch.tar  -C workdir/Cambricon-MLU270

 

  • x.0

一键配置包,完成配置docker环境,工作是未在发布包里面的,需要自行下载。

下载路径:

链接:https://pan.baidu.com/s/104zGbXOQZCY2ULRgxCWF-Q

提取码:4wke

 

该工具包原理:主要执行prepare_env.sh文件

完成:

  1. 安装 neuware-mlu270-x.y.z-xxx.deb
  2. 安装 cnas-x.x.x.deb
  3. 安装 cncc-x.y.z.deb
  4. 替换/etc/apt/sources.list 为ali源
  5. 更新conf源
  6. 切换py为py35
  7. Bazel-cache放到/root/.cache下,tensorflow编译依赖的包
  8. pkg_resources是pip依赖的package
  9. configure_tf/caffe/pt/mxnet.sh 复制到Cambricon-MLU270目录下,编译单模块编译

 

【注意】

如果不使用该工具包需要手动完成。

 

最后在Cambricon-MLU270结构如下图(14):其中,红框部分为主体文件夹。

 

 

                                                                             图(14)

 

 

 

③编译运行 caffe

切换 python3.5->2.7

 

                                                               图(15)

$source env_caffe.sh    //每次进入 docker 容器都要执行一次

$./configure_caffe.sh

$./run_caffe.sh

运行效果如图(16)所示

                                                          

 

                                                                                            图(16)

 

 

参考资料:

  1. Cambricon-Neuware-SDK-Installation-And-Updation-Guide-CN-v1.2.5
  2. Cambricon-CNToolkit-Installation-And-Updation-Guide-CN-v1.6.1
  3. Cambricon-Driver-User-Guide-CN-v4.8.0
  4. Cambricon-Caffe-User-Guide-CN-v5.3.3

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论