硬件要求
- MLU270卡,是搭配服务器使用,如果使用pc机,推荐配置:
- 主板:Z370/Z470 (强烈推荐)
- CPU:i7-8700K
- 推荐使用docker
主板需要支持启用芯片组 64bit 兼容性硬件物理寻址(较新的PC机主板以及服务器一般都支持)。查看方式:如果没有为板卡分配到内存,第一步可以进入Bios模式打开Above 4G Decoding 开关。如果打开依然没分配到,第二步再去查看启动参数 cat /proc/cmdline 是否有设定 pci=realloc=on。
CPU 需要支持 avx(高级适量扩展)和 f16c(半精度数据类型)的指令集。查看方式:cat /proc/cpuinfo | grep -E 'avx|f16c'
软件系统
目前已经支持主流 Linux 发行版系统(CentOS/Ubuntu)
- Centos:CentOS 7.4(3.10.0‑862)、 CentOS 7.6(3.10.0‑957)
- Ubuntu:Ubuntu 16.04(4.4.0‑112)、 Ubuntu 18.04(4.15.0‑32)
- Debian:Debian 10.1(4.19.0‑6)、 Debian 9.8(4.14.138)
系统需要支持安装 docker 容器
整体流程
准备工作
- 主机:JWIPC E7QS,i7-6700 CPU @3.4GHz, 16GB内存,SSD硬盘,OS Ubuntu 18.04.5 LTS,正常联网
- Cambricon MLU270-S4 1pcs 如下图1
- Cambricon SDK v1.6.0 & datasets & models
硬件安装如下图所示
注意:
- MLU270 与主板 PCIE-16 插槽连接
- MLU270 没有散热风扇,可加装风扇对其散热,否则过热(卡片超過50℃)將导致设备将停止工作,建议使用服务器進行测试
- AMD CPU 无集成显卡,若机箱空间太小可用 PCIE 延长线将显卡引出。若无需桌面环境或 Intel CPU 带集显,可忽略此步
檢查MLU卡
将卡插入pcie卡槽后,开机,进入终端后输入命令:lspci -v -d:270
红色框需要出现如图的数字,才能进入下一步。
可能遇到的问题:
- Bar空间未分配
输入命令 dmesg 会看到
处理方法:
(1) 在BIOS中,开启above4G选项
(2) 若無above4G,升級BIOS
不同主板厂商 BIOS 升级方式各不相同,相关操作参考网络内容。
(3)若無above4G,更換主板
文档下载
推荐使用:FileZilla 软件
主机:download.cambricon.com
用户名:找对应的FAE/AE
密码:找对应的FAE/AE
端口:8821
- 下載SDK
- 下載models和datasets
驱动安装
寒武纪发布的驱动安装包有两种: deb 包和 rpm 包。寒武纪 neuware 驱动安装包使用 dkms 框架来管理驱动的安装、升级和卸载。 dkms 可以针对系统内安装的每个内核版本,通过编译、安装相应的内核模块来实现驱动的加载。用户只需安装、更新相应的 dkms 软件包(deb 包或 rpm 包)即可实现驱动的安装和升级。目前驱动已经支持主流 Linux 发行版系统(CentOS/Ubuntu),提供驱动安装包如下:
• CentOS 系 统, 驱 动 安 装 包 名 称 为 neuware‑mluxxx‑driver‑***‑1.x86_64.rpm, 支 持 CentOS 7.4
(3.10.0‑862)、 CentOS 7.6(3.10.0‑957)。
• Ubuntu 系统和 Debian 系统,驱动安装包名称为 neuware‑mluxxx‑driver‑dkms_***_all.deb,支
持 Ubuntu 16.04(4.4.0‑112)、 Ubuntu 18.04(4.15.0‑32)、 Debian 10.1(4.19.0‑6)、 Debian 9.8
在HOST环境中:
Ubuntu:
sudo apt install dkms
sudo dpkg -i neuware-mlu270-driver-dkms_4.1.1_all.deb
Centos:
sudo rpm -ivh neuware-mlu270-driver-4.1.1-1.x86_64.rpm
确认驱动安装成功:
在HOST执行 cnmon
出现这样的显示,表示安装成功。
可能遇到的问题:
1)Linux header与kernel版本未匹配
方法如下:
删除多余内核:
查看已安装内核:
sudo dpkg --get-selections | grep 'linux'
卸载内核headers
sudo apt-get purge linux-headers-x.xx.x-xxxxxx
2)若系统中已经存在旧版本驱动, 此时需要先卸载旧的驱动模块再重新安装
準備環境
Tensorflow 和 Pytorch 都是基于 python3.5的环境,Caffe目前支持python2.7
【建议】先阅读该章节整体,看下思路,再动手。下面以caffe為例
最终目的解压成如下图的结构
---workdir
|------run-docker.sh 【名字可以任意,该脚本是为了进入docker环境】
------ Cambricon-MLU270
----- armeemesser_v1.x.0 【一键配置包,x是版本号】
----- models 【模型库】
----- datasets 【数据集】
----- xxx 【其他】
解压 软件包
tar xvf Cambricon-MLU270/v1.6.0/caffe/src/caffe-v5.3.4.tar.gz [-C workdir]
Cambricon-MLU270目录就解压完成了。其他如tf/porch軟件包類似解壓
解压 数据集
tar -zxvf MLU270_datasets_xxx.tar.gz -C workdir/Cambricon-MLU270/datasets/
解压 模型
tar -xvf Cambricon-MLU270-models-xxx.tar -C workdir/Cambricon-MLU270/
- armeemesser_v1.x.0
一键配置包,完成配置docker环境,工作是未在发布包里面的,需要自行下载。
下载路径: 链接:https://pan.baidu.com/s/104zGbXOQZCY2ULRgxCWF-Q 提取码:4wke |
该工具包原理:主要执行prepare_env.sh文件
完成:
- 安装 neuware-mlu270-x.y.z-xxx.deb
- 安装 cnas-x.x.x.deb
- 安装 cncc-x.y.z.deb
- 替换/etc/apt/sources.list 为ali源
- 更新conf源
- 切换py为py35
- Bazel-cache放到/root/.cache下,tensorflow编译依赖的包
- pkg_resources是pip依赖的package
- configure_tf/caffe/pt/mxnet.sh 复制到Cambricon-MLU270目录下,编译单模块编译
【注意】
如果不使用该工具包需要手动完成。
最后在Cambricon-MLU270结构如下:
安装&配置容器
安装 docker
参考 https://www.runoob.com/docker/ubuntu-docker-install.html
Docker version 19.03.x,Docker version 18.03.x两个版本均可以使用。
创建本地镜像
下载官方 ubuntu16.04 镜像
$sudo docker pull ubuntu:16.04
下载寒武纪官方镜像
Docker image 下载地址:
链接:https://pan.baidu.com/s/1xngxbLJOzjsd8Nwtm65G0g
提取码:coqu
安装docker images命令:
$sudo docker load < ubuntu-16.04-mlu270-image.tar.gz
查看本地 images
$sudo docker images
启动容器:
基于镜像 ubuntu-16.040mlu270-image:latest 启动一个容器,并映射相关工作目录,脚本內容如下
執行sudo ./run-cambricon-test-docker.sh (文件名可自定義)
此时,我们运行了一个名为 Cambricon-MLU270-v1.6.0-test的容器,并且容器的/home/Cambricon-MLU270 路径与宿主机脚本同级路径下的 MLU270 文件下互相映射
配置容器
方法一(全自动安装)
推荐使用:armeemesser
cd armeemesser
./prepare_env.sh
方法二 (手动安装)
- 安装neuware
dpkg -i neuware-mlu270-*_Ubuntu16.04_amd64.deb
cd /var/neuware-mlu270-*/
dpkg -i *.deb
cd -
- 安装cnas
dpkg -i cnas_*.deb
- 安装cncc
dpkg -i cncc_*.deb
- 安装cntoolkit /cnml/cnnl/cncl/cnplugin
cd ~/Downloads/cambricon-sdk/v1.6.0/cntoolkit
sudo apt install ./cntoolkit_1.6.1-1.ubuntu18.04_amd64.deb
cd /var/cntoolkit-1.6.1
sudo dpkg *.deb
并配置好环境变量 参考《Cambricon-CNToolkit-Installation-And-Updation-Guide-CN-v1.6.1.pdf》page35
- 更新conf源
[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple find-links = /home/Cambricon-MLU270/armeemesser/pkg_resources |
find-links指向pkg_resources包的地址
pkg_resources 根据tf和pt所需要的python package提前准备好的。
mkdir ~/.pip
cp pip.conf ~/.pip
- 切换py为py35
rm /usr/bin/python
ln -sf /usr/bin/python3.5 /usr/bin/python
rm /usr/bin/pip
ln -s /usr/bin/pip3 /usr/bin/pip
source switch_py35.sh
or
sudo ./switch_py35.sh
- Bazel-cache放到/root/.cache下,tensorflow编译依赖的包
mkdir -p /root/.cache/bazel/_bazel_root
tar -xvf bazel-*.tar.xz -C /root/.cache/bazel/_bazel_root
参考文档
《Cambricon-Driver-User-Guide-CN-v4.8.0》
《Cambricon-Caffe-User-Guide-CN-v5.3.3》
《Cambricon-CNToolkit-Installation-And-Updation-Guide-CN-v1.6.1》
評論