README.md 2.36 KB
Newer Older
songlinfeng's avatar
songlinfeng committed
1
# DTK Container Toolkit
songlinfeng's avatar
songlinfeng committed
2

songlinfeng's avatar
songlinfeng committed
3
4
## 简介

songlinfeng's avatar
songlinfeng committed
5
DTK Container Toolkit 使用户能够构建和运行使用DCU设备的容器,该toolkit包括以下工具包。
songlinfeng's avatar
songlinfeng committed
6

songlinfeng's avatar
songlinfeng committed
7
8
- ```dtk-container-toolkit``` - DTK容器运行时
- ```dtk-ctk``` - DTK容器工具集命令行
songlinfeng's avatar
songlinfeng committed
9

songlinfeng's avatar
songlinfeng committed
10
11
12
## 使用
- --gpus需要Docker version 19+
- cdi 需要Docker version 25+
songlinfeng's avatar
songlinfeng committed
13
14
15
16
首先确保已经安装好DTK。

### 安装

songlinfeng's avatar
songlinfeng committed
17
18
19
20
21
使用 dpkg/rpm -i 进行安装。安装后会自动执行以下命令
```sh
$ dtk-ctk --quiet config --config-file=/etc/dtk-container-runtime/config.toml --in-place #生成配置文件
$ dtk-ctk runtime configure --runtime=docker --set-as-default  #修改docker的config.json的runtime
```
songlinfeng's avatar
songlinfeng committed
22
23
24
25
26
27

重启docker服务
```sh
$ sudo systemctl restart docker
```

songlinfeng's avatar
songlinfeng committed
28
### 在docker中使用DCU
songlinfeng's avatar
songlinfeng committed
29
30
31
32
33
34

#### 通过 docker CLI
可以通过 docker run 添加参数 --gpus 给容器添加HCU设备。
```sh
$ docker run -it --gpus all ubuntu:18.04    # 添加所有HCU设备
$ docker run -it --gpus 1 ubuntu:18.04 # 添加一个HCU设备,HCU 0
songlinfeng's avatar
songlinfeng committed
35
$ docker run -it --gpus "device=0,2" ubuntu:18.04 #添加第0号和第2号GPU
songlinfeng's avatar
songlinfeng committed
36
37
38
39
40
41
42
43
44
```

#### 通过环境变量 `DTK_VISIBLE_DEVICES`
可以通过 docker run 添加环境变量 -e DTK_VISIBLE_DEVICES 给容器添加HCU设备。
```sh
docker run -it -e DTK_VISIBLE_DEVICES=all ubuntu:18.04 # 添加所有HCU设备
docker run -it -e DTK_VISIBLE_DEVICES=0 ubuntu:18.04 # 添加HCU设备0
docker run -it -e DTK_VISIBLE_DEVICES=0,1 ubuntu:18.04 # 添加HCU设备0、1
```
songlinfeng's avatar
songlinfeng committed
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#### 通过CDI方式
- 首先,生成CDI spec文件
```sh
$ dtk-ctk cdi generate --output=/etc/cdi/dtk.json
```
- 配置docker开启CDI
```sh
$ dtk-ctk runtime configure --runtime=docker --set-as-default --cdi.enabled
```
- 使用所有的DCU
```sh
$ docker run --rm --device c-3000.com/hcu=all -it ubuntu:18.04
```
- 使用第0块和第1块DCU
```sh
$ docker run --rm --device c-3000.com/hcu=0 --device c-3000.com/hcu=1 -it ubuntu:18.04
```
### 在podman中使用DCU
podman 需要version 2.0+
- 首先需要修改podman的runtime
```sh
$ dtk-ctk runtime configure --runtime=podman --set-as-default
```
- 通过环境变量方式使用
```sh
$ podman run -it -e DTK_VISIBLE_DEVICES=all ubuntu:18.04
```
###列出可使用的DCU
```sh
$ dtk-ctk cdi list
INFO[0000] Found 3 CDI devices
c-3000.com/hcu=0
c-3000.com/hcu=1
c-3000.com/hcu=2
c-3000.com/hcu=all
c-3000.com/hcu=hcu-73873c7a6eb008a1
c-3000.com/hcu=hcu-73873c7a6eb02041
c-3000.com/hcu=hcu-73873c7a6eb040a1
```