mirror of https://github.com/open-mmlab/mmcv.git
[Docs] Steps to compile mmcv-full on MLU machine (#2571)
* [Docs] Steps to compile mmcv-full on MLU machine * [Docs] Adjust paragraph order * Update docs/zh_cn/get_started/build.md Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com> * Update docs/zh_cn/get_started/build.md Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com> * Update docs/en/get_started/build.md Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com> * Update docs/en/get_started/build.md Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com> * [Docs] Modify the format --------- Co-authored-by: budefei <budefei@cambricon.com> Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>pull/2579/head
parent
98766f4def
commit
87768b7f2d
|
@ -375,3 +375,60 @@ w = torch.ones(10).float().npu()
|
|||
output = softmax_focal_loss(x, y, 2.0, 0.25, w, 'none')
|
||||
print(output)
|
||||
```
|
||||
|
||||
### Build mmcv-full on Cambricon MLU Devices
|
||||
|
||||
#### Install torch_mlu
|
||||
|
||||
##### Option1: Install mmcv-full based on Cambricon docker image
|
||||
|
||||
Firstly, install and pull Cambricon docker image (please email service@cambricon.com for the latest release docker):
|
||||
|
||||
```bash
|
||||
docker pull ${docker image}
|
||||
```
|
||||
|
||||
Run and attach to the docker, [Install mmcv-full on MLU device](#install-mmcv\-full-on-cambricon-mlu-device) and [make sure you've installed mmcv-full on MLU device successfully](#test-code)
|
||||
|
||||
##### Option2: Install mmcv-full from compiling Cambricon PyTorch source code
|
||||
|
||||
Please email service@cambricon.com or contact with Cambricon engineers for a suitable version of CATCH package. After you get the suitable version of CATCH package, please follow the steps in ${CATCH-path}/CONTRIBUTING.md to install Cambricon PyTorch.
|
||||
|
||||
#### Install mmcv-full on Cambricon MLU device
|
||||
|
||||
Clone the repo
|
||||
|
||||
```bash
|
||||
git clone https://github.com/open-mmlab/mmcv.git
|
||||
```
|
||||
|
||||
The mlu-ops library will be downloaded to the default directory (mmcv/mlu-ops) while building MMCV. You can also set `MMCV_MLU_OPS_PATH` to an existing mlu-ops library before building as follows:
|
||||
|
||||
```bash
|
||||
export MMCV_MLU_OPS_PATH=/xxx/xxx/mlu-ops
|
||||
```
|
||||
|
||||
Install mmcv-full
|
||||
|
||||
```bash
|
||||
cd mmcv
|
||||
export MMCV_WITH_OPS=1
|
||||
export FORCE_MLU=1
|
||||
python setup.py install
|
||||
```
|
||||
|
||||
#### Test Code
|
||||
|
||||
After finishing previous steps, you can run the following python code to make sure that you've installed mmcv-full on MLU device successfully
|
||||
|
||||
```python
|
||||
import torch
|
||||
import torch_mlu
|
||||
from mmcv.ops import sigmoid_focal_loss
|
||||
x = torch.randn(3, 10).mlu()
|
||||
x.requires_grad = True
|
||||
y = torch.tensor([1, 5, 3]).mlu()
|
||||
w = torch.ones(10).float().mlu()
|
||||
output = sigmoid_focal_loss(x, y, 2.0, 0.25, w, 'none')
|
||||
print(output)
|
||||
```
|
||||
|
|
|
@ -389,3 +389,59 @@ w = torch.ones(10).float().npu()
|
|||
output = softmax_focal_loss(x, y, 2.0, 0.25, w, 'none')
|
||||
print(output)
|
||||
```
|
||||
|
||||
### 在寒武纪 MLU 机器编译 mmcv-full
|
||||
|
||||
#### 安装 torch_mlu
|
||||
|
||||
##### 选项1: 基于寒武纪 docker image 安装
|
||||
|
||||
首先请下载并且拉取寒武纪 docker (请向 service@cambricon.com 发邮件以获得最新的寒武纪 pytorch 发布 docker)。
|
||||
|
||||
```
|
||||
docker pull ${docker image}
|
||||
```
|
||||
|
||||
进入 docker, [编译 MMCV MLU](#编译mmcv-mlu) 并[进行验证](#验证是否成功安装)。
|
||||
|
||||
##### 选项2:基于 cambricon pytorch 源码编译安装
|
||||
|
||||
请向 service@cambricon.com 发送邮件或联系 Cambricon 工程师以获取合适版本的 CATCH 软件包,在您获得合适版本的 CATCH 软件包后,请参照 ${CATCH-path}/CONTRIBUTING.md 中的步骤安装 CATCH。
|
||||
|
||||
#### 编译 MMCV
|
||||
|
||||
克隆代码仓库
|
||||
|
||||
```bash
|
||||
git clone https://github.com/open-mmlab/mmcv.git
|
||||
```
|
||||
|
||||
算子库 mlu-ops 在编译 MMCV 时自动下载到默认路径(mmcv/mlu-ops),你也可以在编译前设置环境变量 MMCV_MLU_OPS_PATH 指向已经存在的 mlu-ops 算子库路径。
|
||||
|
||||
```bash
|
||||
export MMCV_MLU_OPS_PATH=/xxx/xxx/mlu-ops
|
||||
```
|
||||
|
||||
开始编译
|
||||
|
||||
```bash
|
||||
cd mmcv
|
||||
export MMCV_WITH_OPS=1
|
||||
export FORCE_MLU=1
|
||||
python setup.py install
|
||||
```
|
||||
|
||||
#### 验证是否成功安装
|
||||
|
||||
完成上述安装步骤之后,您可以尝试运行下面的 Python 代码以测试您是否成功在 MLU 设备上安装了 mmcv-full
|
||||
|
||||
```python
|
||||
import torch
|
||||
import torch_mlu
|
||||
from mmcv.ops import sigmoid_focal_loss
|
||||
x = torch.randn(3, 10).mlu()
|
||||
x.requires_grad = True
|
||||
y = torch.tensor([1, 5, 3]).mlu()
|
||||
w = torch.ones(10).float().mlu()
|
||||
output = sigmoid_focal_loss(x, y, 2.0, 0.25, w, 'none')
|
||||
```
|
||||
|
|
Loading…
Reference in New Issue