dlrm-v2_inference.md 5.28 KB
Newer Older
wangsen's avatar
wangsen committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
# DLRM-v2 下载、安装、模型与数据准备说明

本文档覆盖从 `https://github.com/mlcommons/inference` 下载代码,到环境安装,再到 `dlrm_v2` 模型和数据下载,以及合成数据快速跑通方法。

## 1. 仓库下载(固定 v5.1)

```bash
cd /workspace
git clone --branch v5.1 --recurse-submodules https://github.com/mlcommons/inference.git inference-master
```

若已下载可跳过,直接进入:

```bash
cd /workspace/inference-master
```

若仓库已存在且需要切到 `v5.1`

```bash
cd /workspace/inference-master
git fetch --tags
git checkout v5.1
git submodule update --init --recursive
```

## 1.1 容器环境启动(参考)

可参考以下方式启动推理容器环境(基于你提供的命令整理):

```bash
docker run -it --network=host \
  --name=inference_mlcommons \
  --privileged=true \
  --shm-size=1024G \
  --device=/dev/kfd \
  --device=/dev/mkfd \
  --device=/dev/dri/ \
  --cap-add=SYS_PTRACE \
  --security-opt seccomp=unconfined \
  --ulimit memlock=-1:-1 \
  --ipc=host \
  --group-add video \
  -v /home/models:/workspace/models \
  -v /home/ws:/workspace/ws \
  -v /opt/hyhal:/opt/hyhal:ro \
  harbor.sourcefind.cn:5443/dcu/admin/base/vllm:0.11.0-ubuntu22.04-dtk26.04-0130-py3.10-20260211 \
  /bin/bash
```

进入容器后再执行本文后续步骤(代码下载、依赖安装、模型/数据准备和运行)。

## 2. 环境安装(DLRM-v2)

### 2.1 基础 Python 依赖

```bash
python -m pip install --user pybind11 scikit-learn tqdm
python -m pip install --user torchsnapshot
```

### 2.2 安装 LoadGen

```bash
cd /workspace/inference-master/loadgen
CFLAGS="-std=c++14" python setup.py install --user
```

### 2.3 DLRM 关键版本建议(当前环境验证通过)

- `torch`:按机器当前可用版本
- `fbgemm_gpu``1.3.0`
- `torchrec`:建议与 `fbgemm_gpu` 对齐为 `1.3.0`

示例:

```bash
python -m pip install --user --no-deps --force-reinstall torchrec==1.3.0
python -m pip install --user iopath pyre-extensions tensordict torchmetrics==1.0.3
```

### 2.4 FBGEMM 编译安装参考

`fbgemm_gpu` 的编译和安装请参考以下文档,并按文档中的版本约束执行:

- `/workspace/mlcommon_inference/FBGEMM_GPU_DTK26.04_编译安装指南.md`

在本项目(`dlrm_v2`)中,建议保持:

- `fbgemm_gpu==1.3.0`
- `torchrec==1.3.0`(与 `fbgemm_gpu` 对齐)

## 3. 使用代理与镜像(可选)

如果外网不稳定,可先启用代理(示例):

```bash
source /workspace/ws/proxy/set_proxy_bj.sh
```

使用清华源安装(示例):

```bash
python -m pip install --user -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn scikit-learn
```

## 4. 模型和数据下载(正式大规模)

> 注意:正式数据和权重很大。模型约 97GB,数据集更大(单文件可达 142GB 级别)。

### 4.1 创建目录

```bash
mkdir -p /workspace/inference-master/recommendation/dlrm_v2/pytorch/model
mkdir -p /workspace/inference-master/recommendation/dlrm_v2/pytorch/dataset
```

### 4.2 下载模型权重

```bash
cd /workspace/inference-master/recommendation/dlrm_v2/pytorch/model
bash <(curl -s https://raw.githubusercontent.com/mlcommons/r2-downloader/refs/heads/main/mlc-r2-downloader.sh) -d . \
  https://inference.mlcommons-storage.org/metadata/dlrm-v2-model-weights.uri
```

### 4.3 下载预处理数据集

```bash
cd /workspace/inference-master/recommendation/dlrm_v2/pytorch/dataset
bash <(curl -s https://raw.githubusercontent.com/mlcommons/r2-downloader/refs/heads/main/mlc-r2-downloader.sh) -d . \
  https://inference.mlcommons-storage.org/metadata/dlrm-v2-preprocessed-dataset.uri
```

## 5. 合成数据快速跑通(推荐先做)

适用于先验证流程,不下载超大模型和数据。

### 5.1 生成合成数据

```bash
cd /workspace/inference-master/recommendation/dlrm_v2/pytorch/tools
bash make_fake_criteo.sh
```

数据目录:

- `/workspace/inference-master/recommendation/dlrm_v2/pytorch/tools/fake_criteo`

### 5.2 GPU 运行命令(已验证)

```bash
cd /workspace/inference-master/recommendation/dlrm_v2/pytorch

export DATA_DIR=/workspace/inference-master/recommendation/dlrm_v2/pytorch/tools/fake_criteo
export MODEL_DIR=/workspace/inference-master/recommendation/dlrm_v2/pytorch/model
export WORLD_SIZE=1

python python/main.py \
  --profile dlrm-debug-pytorch \
  --model dlrm \
  --model-path "$MODEL_DIR/dlrm_debug.pytorch" \
  --dataset debug \
  --dataset-path "$DATA_DIR" \
  --output /workspace/inference-master/recommendation/dlrm_v2/pytorch/output/pytorch-gpu/dlrm_synth \
  --scenario Offline \
  --count-samples 64 \
  --samples-to-aggregate-fix 128 \
  --max-batchsize 128 \
  --samples-per-query-offline 1 \
  --use-gpu
```

## 6. 成功标志

日志中出现以下信息即表示跑通:

- `Using X GPU(s)...`
- `TestScenario.Offline qps=...`

输出目录示例:

- `/workspace/inference-master/recommendation/dlrm_v2/pytorch/output/pytorch-gpu/dlrm_synth`

## 7. 常见问题

### 7.1 `run_local.sh` 报 `unrecognized arguments`

可直接使用本文第 5.2 节 `python/main.py` 命令绕过。

### 7.2 `model` 目录为空是否正常

若仅跑 `debug` 合成数据场景,正常。该模式不依赖完整 97GB 正式权重。

### 7.3 依赖安装慢或失败

优先检查代理、镜像源和磁盘空间,再重试。