已合并
[docs] offload 共享池 store_url 与 RD2H 用例文档补充 #1246
[docs] offload 共享池 store_url 与 RD2H 用例文档补充 #1246
已合并
zhangshuren创建于 9月7日
共 4 个文件变更+14-5
@@ -1072,6 +1072,7 @@ typedef struct {
1072 uint32_t worldSize;1072 uint32_t worldSize;
1073 uint32_t rankId;1073 uint32_t rankId;
1074 offload_scene_t scene;1074 offload_scene_t scene;
1075+ char storeUrl[64];
1075} offload_config_t;1076} offload_config_t;
1076```1077```
1077 1078 
@@ -1083,6 +1084,7 @@ typedef struct {
1083|worldSize|参与组网的rank数量(SHARED场景使用)|1084|worldSize|参与组网的rank数量(SHARED场景使用)|
1084|rankId|本地rank id(SHARED场景使用)|1085|rankId|本地rank id(SHARED场景使用)|
1085|scene|内存池场景,取值参考offload_scene_t,默认OFFLOAD_SCENE_LOCAL|1086|scene|内存池场景,取值参考offload_scene_t,默认OFFLOAD_SCENE_LOCAL|
1087+|storeUrl|SHARED场景下共享池建立时的显式config store地址(如`tcp://127.0.0.1:8500`),同组各rank需保持一致;为空时回退为推导端口`8500 + deviceId / worldSize`|
1086 1088 
1087### 2. 初始化/退出1089### 2. 初始化/退出
1088 1090 
@@ -109,7 +109,7 @@ LOCAL场景详情参考[local_dram_offload示例](../../examples/kv_offload/loca
1091. `from memfabric_hybrid import offload`。1091. `from memfabric_hybrid import offload`。
1102. 构造OffloadConfig,调用offload.initialize接口初始化。1102. 构造OffloadConfig,调用offload.initialize接口初始化。
111 - LOCAL场景:设置device_id、reserve_size、alloc_size(两者需相等),scene保持默认LOCAL。111 - LOCAL场景:设置device_id、reserve_size、alloc_size(两者需相等),scene保持默认LOCAL。
112- - SHARED场景:设置device_id、reserve_size、alloc_size(传实际值)、world_size、rank_id,scene设为offload.Scene.SHARED。112+ - SHARED场景:设置device_id、reserve_size、alloc_size(传实际值)、world_size、rank_id,scene设为offload.Scene.SHARED;如显式指定共享池的config store地址,需再设置store_url(同组各rank保持一致)。
1133. 调用offload.empty分配内存并获得torch.Tensor,或调用offload.malloc获得地址。1133. 调用offload.empty分配内存并获得torch.Tensor,或调用offload.malloc获得地址。
1144. 调用offload.sparse_copy接口在device上执行批量稀疏拷贝。1144. 调用offload.sparse_copy接口在device上执行批量稀疏拷贝。
1155. 调用offload.free释放内存,调用offload.uninitialize退出。1155. 调用offload.free释放内存,调用offload.uninitialize退出。
@@ -741,3 +741,4 @@ class OffloadConfig:
741|world_size属性|参与组网的rank数量(SHARED场景使用)|741|world_size属性|参与组网的rank数量(SHARED场景使用)|
742|rank_id属性|本地rank id(SHARED场景使用)|742|rank_id属性|本地rank id(SHARED场景使用)|
743|scene属性|内存池场景,取值参考Scene枚举,默认LOCAL|743|scene属性|内存池场景,取值参考Scene枚举,默认LOCAL|
744+|store_url属性|SHARED场景下共享池建立时的显式config store地址(如`tcp://127.0.0.1:8500`),同组各rank需保持一致;为空时回退为推导端口`8500 + device_id // world_size`|
@@ -146,7 +146,7 @@ Prefill/Decode 分离部署的 main KV Cache 拉取(pull)传输:
146| --role | 是 | 工作角色:`Prefill` 或 `Decode` |146| --role | 是 | 工作角色:`Prefill` 或 `Decode` |
147| --local-ip | 否 | 本机 IPv4,默认 `127.0.0.1`;跨机须传对端可达的本机网卡 IP |147| --local-ip | 否 | 本机 IPv4,默认 `127.0.0.1`;跨机须传对端可达的本机网卡 IP |
148| --prefill-ip | 否 | Prefill 机器 IPv4,默认 `127.0.0.1`;跨机须传真实 Prefill IP |148| --prefill-ip | 否 | Prefill 机器 IPv4,默认 `127.0.0.1`;跨机须传真实 Prefill IP |
149-| --npu-id | 否 | Decode 起始卡号(rank r 用起始+r,默认 0);手动 `--tp-rank` 时为该 rank 的卡号 |149+| --npu-id | 否 | launcher 模式:Decode 起始卡号(rank r 用 `起始+r`,默认 0);手动 `--tp-rank` 模式:可选,默认等于 rank,可指定任意卡号 |
150| --tp-size | 否 | Decode TP rank 数,默认 1 |150| --tp-size | 否 | Decode TP rank 数,默认 1 |
151| --tp-rank | 否 | Decode TP rank;缺省时一条命令拉起全部 rank 子进程 |151| --tp-rank | 否 | Decode TP rank;缺省时一条命令拉起全部 rank 子进程 |
152| --decode-tp-size | 否 | 期望的 Decode rank 数(仅 Prefill 侧),默认 1 |152| --decode-tp-size | 否 | 期望的 Decode rank 数(仅 Prefill 侧),默认 1 |
@@ -180,17 +180,23 @@ python test_transfer_engine_rd2h.py --role Prefill --decode-tp-size 2 --npu-id 0
180 180 
181#### 2. 启动 Decode 侧(一条命令拉起全部 rank)181#### 2. 启动 Decode 侧(一条命令拉起全部 rank)
182 182 
183+Decode 与 Prefill 不能共用同一张卡,需通过 `--npu-id` 指定起始卡号(须与 Prefill 所用卡不同,例如 Prefill 用
184+`--npu-id 0`,Decode 用 `--npu-id 1`,rank r 实际使用 `--npu-id + r`):
185+ 
183```bash186```bash
184-python test_transfer_engine_rd2h.py --role Decode --tp-size 2187+python test_transfer_engine_rd2h.py --role Decode --npu-id 1 --tp-size 2
185```188```
186 189 
187手动指定 rank 单独启动(等价上一条命令)或调整测量轮数:190手动指定 rank 单独启动(等价上一条命令)或调整测量轮数:
188 191 
189```bash192```bash
190-python test_transfer_engine_rd2h.py --role Decode --tp-rank 1 --tp-size 2 # 指定 rank193+python test_transfer_engine_rd2h.py --role Decode --npu-id 1 --tp-rank 1 --tp-size 2 # 指定 rank
191-python test_transfer_engine_rd2h.py --role Decode --tp-size 2 --warmup 2 --iterations 10 # 调轮数194+python test_transfer_engine_rd2h.py --role Decode --npu-id 1 --tp-size 2 --warmup 2 --iterations 10 # 调轮数
192```195```
193 196 
197+> 说明:`--npu-id` 在 launcher 模式(不传 `--tp-rank`)作为起始卡号,rank r 用 `--npu-id + r`;手动 `--tp-rank` 模式下
198+> 可选,默认等于 rank,也可显式指定任意卡号(rank 与卡号不绑定)。
199+ 
194#### 3. 观察结果200#### 3. 观察结果
195 201 
196两侧均输出 `PASS` 即成功,例如:202两侧均输出 `PASS` 即成功,例如: