Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/guides/hardware_support/hardware_info_cn.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
| AI 加速芯片 | | 海光 | 海光 DCU | [安装](./rocm_docs/paddle_install_cn.html#wheel) | [源码编译](./rocm_docs/paddle_install_cn.html#anzhuangfangshier-tongguoyuanmabianyianzhuang) | ✔️ | [支持模型](./rocm_docs/paddle_rocm_cn.html) |
| AI 加速芯片 | XPU | 百度 | 昆仑 R200、R300 等 | [安装](./xpu/install_cn.html#wheel) | [源码编译](./xpu/install_cn.html#xpu) | | [支持模型](./xpu/support_cn.html) |
| AI 加速芯片 | IPU | Graphcore | GC200 | | [源码编译](./ipu_docs/paddle_install_cn.html) | | |
| AI 加速芯片 | MLU | 寒武纪 | MLU370、MLU590 | [安装](./mlu_docs/paddle_install_cn.html) | [源码编译](./mlu_docs/paddle_install_cn.html#anzhuangfangshier-tongguoyuanmabianyianzhuang) | | ✔️ |
| AI 加速芯片 | MLU | 寒武纪 | MLU370 系列 | [安装](./mlu/install_cn.html#wheel) | [源码编译](./mlu/install_cn.html) | | [支持模型](./mlu/support_cn.html) |
| AI 加速芯片 | | 天数智芯 | 天垓 100 | [安装](https://gitee.com/deep-spark/deepsparkhub/blob/master/docker/Iluvatar/README.md) || | | ✔️ |
| AI 加速芯片 | | 壁仞 | BR100、BR104 | | [源码编译](https://github.com/PaddlePaddle/PaddleCustomDevice/blob/develop/backends/biren_gpu/README_cn.md) | | ✔️ |
| AI 加速芯片 | | 燧原 | 云燧 T20 、i20| | [源码编译](https://github.com/PaddlePaddle/PaddleCustomDevice/blob/develop/backends/gcu/README_cn.md) | | ✔️ |
Expand All @@ -26,7 +26,7 @@
| 服务端 GPU | | NVIDIA | Ada Lovelace、Hopper、 Ampere、Turing、 Volta 架构 | [预编译库](https://paddleinference.paddlepaddle.org.cn/user_guides/download_lib.html) | [源码编译](https://paddleinference.paddlepaddle.org.cn/user_guides/source_compile.html) | ✔️ | |
| 移动端 GPU | | NVIDIA | Jetson 系列 | [预编译库](https://paddleinference.paddlepaddle.org.cn/user_guides/download_lib.html) | [源码编译](https://paddleinference.paddlepaddle.org.cn/user_guides/source_compile.html) | ✔️ | |
| AI 加速芯片 | 达芬奇 | 华为 | 昇腾 910 | 即将提供 | | | |
| AI 加速芯片 | MLU | 寒武纪 | MLU370 系列 | [预编译库](./mlu_docs/paddle_install_cn.html#wheel) | [源码编译](./mlu_docs/paddle_install_cn.html#anzhuangfangshier-tongguoyuanmabianyianzhuang) | ✔️ | |
| AI 加速芯片 | MLU | 寒武纪 | MLU370 系列 | [预编译库](./mlu/install_cn.html#wheel) | [源码编译](./mlu/install_cn.html) | ✔️ | |
| AI 加速芯片 | MUSA | 摩尔线程 | MTT S 系列 GPU | | | | |
| AI 加速芯片 | | 海光 | 海光 DCU | [预编译库](./rocm_docs/paddle_install_cn.html) | [源码编译](./rocm_docs/paddle_install_cn.html) | ✔️ | [支持模型](./rocm_docs/paddle_rocm_cn.html) |
| AI 加速芯片 | XPU | 百度 | 昆仑 R200、R300 等 | [预编译库](https://www.paddlepaddle.org.cn/inference/master/guides/hardware_support/xpu_kunlun_cn.html) | [源码编译](https://www.paddlepaddle.org.cn/inference/master/guides/hardware_support/xpu_kunlun_cn.html) | | [支持模型](./xpu/support_cn.html) |
Expand Down
4 changes: 2 additions & 2 deletions docs/guides/hardware_support/index_cn.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
- `海光 DCU 芯片运行飞桨 <./rocm_docs/index_cn.html>`_ : 介绍如何在海光 DCU 芯片环境上安装和使用飞桨。
- `昇腾 NPU 芯片运行飞桨 <./npu_docs/index_cn.html>`_ : 介绍如何在昇腾环境上安装和使用飞桨。
- `Graphcore IPU 芯片运行飞桨 <./ipu_docs/index_cn.html>`_ : 介绍如何在 IPU 环境上安装和使用飞桨。
- `寒武纪 MLU 芯片运行飞桨 <./mlu_docs/index_cn.html>`_ : 介绍如何在寒武纪 MLU 环境上安装和使用飞桨。
- `寒武纪 MLU 芯片运行飞桨 <./mlu/index_cn.html>`_ : 介绍如何在寒武纪 MLU 环境上安装和使用飞桨。

.. toctree::
:hidden:
Expand All @@ -21,4 +21,4 @@
rocm_docs/index_cn.rst
npu_docs/index_cn.rst
ipu_docs/index_cn.rst
mlu_docs/index_cn.rst
mlu/index_cn.rst
109 changes: 109 additions & 0 deletions docs/guides/hardware_support/mlu/example_cn.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
# 寒武纪 MLU 运行示例

**预先要求**:请先根据文档 [寒武纪 MLU 安装说明](./install_cn.html) 准备寒武纪 MLU 运行环境,建议以下步骤都在 docker 环境中运行。

## 训练示例

以 [ResNet50_vd](https://github.com/PaddlePaddle/PaddleClas/blob/release/2.5/docs/zh_CN/quick_start/quick_start_classification_new_user.md) 模型为例,介绍如何使用寒武纪 MLU 进行训练。

### 一、下载套件代码

```bash
# 下载套件源码
git clone https://github.com/PaddlePaddle/PaddleClas.git
cd PaddleClas/

# 安装 Python 依赖库
pip install -r requirements.txt

# 编译安装 paddleclas
python setup.py install
```

### 二、准备训练数据

进入 `PaddleClas/dataset` 目录,下载并解压 `flowers102` 数据集:

```bash
# 准备数据集 - 将数据集下载到对应的目录下,并解压
cd PaddleClas/dataset
wget https://paddle-imagenet-models-name.bj.bcebos.com/data/flowers102.zip
unzip flowers102.zip

# 下载解压完成之后,当前目录结构如下
PaddleClas/dataset/flowers102
├── flowers102_label_list.txt
├── jpg
├── train_extra_list.txt
├── train_list.txt
└── val_list.txt
```

### 三、运行四卡训练

```bash
# 进入套件目录
cd PaddleClas/

# 四卡训练
python -m paddle.distributed.launch --devices "0,1,2,3" \
tools/train.py -c ./ppcls/configs/quick_start/ResNet50_vd.yaml \
-o Arch.pretrained=True \
-o Global.device=mlu
# 训练完成之后,预期得到输出如下
# ppcls INFO: [Eval][Epoch 20][best metric: 0.9205883145332336]
# ppcls INFO: Already save model in ./output/ResNet50_vd/epoch_20
# ppcls INFO: Already save model in ./output/ResNet50_vd/latest

# 单卡评估 - 使用上一步训练得到的模型进行评估
python tools/eval.py -c ./ppcls/configs/quick_start/ResNet50_vd.yaml \
-o Arch.pretrained="output/ResNet50_vd/best_model" \
-o Global.device=mlu
# 评估完成之后,预期得到输出如下
# [Eval][Epoch 0][Avg]CELoss: 0.42025, loss: 0.42025, top1: 0.91569, top5: 0.98235
```

## 推理示例

以 [ResNet50](https://paddle-inference-dist.bj.bcebos.com/Paddle-Inference-Demo/resnet50.tgz) 模型为例,介绍如何使用寒武纪 MLU 进行推理。

### 一、下载推理程序

```bash
# 下载 Paddle-Inference-Demo 示例代码,并进入 Python 代码目录
git clone https://github.com/PaddlePaddle/Paddle-Inference-Demo.git
```

### 二、准备推理模型

```bash
# 进入 python mlu 推理示例程序目录
cd Paddle-Inference-Demo/python/mlu/resnet50

# 下载推理模型文件并解压
wget https://paddle-inference-dist.bj.bcebos.com/Paddle-Inference-Demo/resnet50.tgz
tar xzf resnet50.tgz

# 准备预测示例图片
wget https://paddle-inference-dist.bj.bcebos.com/inference_demo/python/resnet50/ILSVRC2012_val_00000247.jpeg

# 准备完成后的模型和图片目录如下
Paddle-Inference-Demo/python/mlu/resnet50
├── ILSVRC2012_val_00000247.jpeg
└── resnet50
   ├── inference.pdiparams
   ├── inference.pdiparams.info
   └── inference.pdmodel
```

### 三、运行推理程序

```bash
# 运行 Python 推理程序
python infer_resnet.py \
--model_file=./resnet50/inference.pdmodel \
--params_file=./resnet50/inference.pdiparams

# 预期得到输出如下
# class index: 13
```
21 changes: 21 additions & 0 deletions docs/guides/hardware_support/mlu/index_cn.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
.. _cn_mlu_information:

####################
寒武纪 MLU 芯片
####################

思元 370 基于寒武纪芯片架构 MLUarch03 设计,是寒武纪(Cambricon)推出的人工智能领域高能效的通用智能芯片,支持 MLU-Link™多芯互联技术,可高效执行多芯多卡训练和分布式推理任务。更多寒武纪 MLU 芯片详情及技术指标请 `点击这里 <https://www.cambricon.com/>`_ 。

飞桨框架支持基于寒武纪 MLU 芯片的训练和推理,请参考以下内容快速体验:

- `寒武纪 MLU 安装说明 <./install_cn.html>`_ : 寒武纪 MLU 安装说明
- `寒武纪 MLU 运行示例 <./example_cn.html>`_ : 寒武纪 MLU 运行示例
- `寒武纪 MLU 支持模型 <./support_cn.html>`_ : 寒武纪 MLU 支持模型


.. toctree::
:hidden:

install_cn.md
example_cn.md
support_cn.md
123 changes: 123 additions & 0 deletions docs/guides/hardware_support/mlu/install_cn.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
# 寒武纪 MLU 安装说明

飞桨框架 MLU 版支持寒武纪 MLU 的训练和推理,提供两种安装方式:

1. 通过飞桨官网发布的 wheel 包安装
2. 通过源代码编译安装得到 wheel 包

## 寒武纪 MLU 系统要求

| 要求类型 | 要求内容 |
| --------- | -------- |
| 芯片型号 | 寒武纪思元 370 系列,包括 MLU370X8、MLU370X4、MLU370S4 |
| 操作系统 | Linux 操作系统,包括 Ubuntu、KylinV10 |

## 运行环境准备

推荐使用飞桨官方发布的寒武纪 MLU 开发镜像,该镜像预装有[寒武纪基础软件开发平台](https://developer.cambricon.com/)。

```bash
# 拉取镜像
docker pull registry.baidubce.com/device/paddle-mlu:ubuntu20-x86_64-gcc84-py310

# 参考如下命令,启动容器
docker run -it --name paddle-mlu-dev -v $(pwd):/work \
-w=/work --shm-size=128G --network=host --privileged \
--cap-add=SYS_PTRACE --security-opt seccomp=unconfined \
-v /usr/bin/cnmon:/usr/bin/cnmon \
registry.baidubce.com/device/paddle-mlu:ubuntu20-x86_64-gcc84-py310 /bin/bash

# 检查容器内是否可以正常识别寒武纪 MLU 设备
cnmon

# 预期得到输出如下
+------------------------------------------------------------------------------+
| CNMON v5.10.13 Driver v5.10.13 |
+-------------------------------+----------------------+-----------------------+
| Card VF Name Firmware | Bus-Id | Util Ecc-Error |
| Fan Temp Pwr:Usage/Cap | Memory-Usage | SR-IOV Compute-Mode |
|===============================+======================+=======================|
| 0 / MLU370-X8 v1.1.6 | 0000:39:00.0 | 0% N/A |
| 0% 32C 106 W/ 250 W | 0 MiB/ 23374 MiB | N/A Default |
+-------------------------------+----------------------+-----------------------+
| 1 / MLU370-X8 v1.1.6 | 0000:3D:00.0 | 0% N/A |
| 0% 39C 106 W/ 250 W | 0 MiB/ 23374 MiB | N/A Default |
+-------------------------------+----------------------+-----------------------+

+------------------------------------------------------------------------------+
| Processes: |
| Card MI PID Command Line MLU Memory Usage |
|==============================================================================|
| No running processes found |
+------------------------------------------------------------------------------+
```

## 安装飞桨框架

**注意**:当前飞桨 develop 分支仅支持 X86 架构,暂不支持寒武纪 MLU 的 ARM 架构。

### 安装方式一:wheel 包安装

寒武纪支持插件式安装,需先安装飞桨 CPU 安装包,再安装飞桨 MLU 插件包。在启动的 docker 容器中,执行以下命令:

```bash
# 先安装飞桨 CPU 安装包
pip install paddlepaddle==0.0.0 -f https://www.paddlepaddle.org.cn/whl/linux/cpu-mkl/develop.html

# 再安装飞桨 MLU 插件包
wget https://paddle-device.bj.bcebos.com/0.0.0/mlu/paddle_custom_mlu-0.0.0-cp310-cp310-linux_x86_64.whl
pip install -U paddle_custom_mlu-0.0.0-cp310-cp310-linux_x86_64.whl
```

### 安装方式二:源代码编译安装

在启动的 docker 容器中,先安装飞桨 CPU 安装包,再下载 PaddleCustomDevice 源码编译得到飞桨 MLU 插件包。

```bash
# 下载 PaddleCustomDevice 源码
git clone https://github.com/PaddlePaddle/PaddleCustomDevice

# 进入硬件后端(寒武纪 MLU)目录
cd PaddleCustomDevice/backends/mlu

# 先安装飞桨 CPU 安装包
pip install paddlepaddle==0.0.0 -f https://www.paddlepaddle.org.cn/whl/linux/cpu-mkl/develop.html

# 执行编译脚本 - submodule 在编译时会按需下载
bash tools/compile.sh

# 飞桨 MLU 插件包在 build/dist 路径下,使用 pip 安装即可
pip install -U paddle_custom_mlu-0.0.0-cp310-cp310-linux_x86_64.whl
```

## 基础功能检查

安装完成后,在 docker 容器中输入如下命令进行飞桨基础健康功能的检查。

```bash
# 检查当前安装版本
python -c "import paddle_custom_device; paddle_custom_device.mlu.version()"
# 预期得到如下输出结果
version: 0.0.0
commit: 9797ec4269d8d84812eb9c6d0eb67216506a5495
cntoolkit: 3.8.2
cnnl: 1.23.2
cncl: 1.14.0
mluops: 0.11.0

# 飞桨基础健康检查
python -c "import paddle; paddle.utils.run_check()"
# 预期得到输出如下
Running verify PaddlePaddle program ...
PaddlePaddle works well on 1 mlu.
PaddlePaddle works well on 8 mlus.
PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now.
```

## 如何卸载

请使用以下命令卸载:

```bash
pip uninstall paddlepaddle-mlu
```
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

# 飞桨框架寒武纪 MLU 版支持模型
# 寒武纪 MLU 支持模型

目前 Paddle MLU 版基于寒武纪 MLU370 系列板卡支持以下模型的单机单卡/单机多卡的训练。
飞桨框架在寒武纪 MLU 上经验证的模型的支持情况如下:

## 图像分类

Expand Down
21 changes: 0 additions & 21 deletions docs/guides/hardware_support/mlu_docs/index_cn.rst

This file was deleted.

Loading