Skip to content

Commit bac5beb

Browse files
committed
Quartz sync: May 6, 2026, 12:30 PM
1 parent 3aa2085 commit bac5beb

7 files changed

Lines changed: 379 additions & 249 deletions

content/Inference/vllm/practice/5. flagcx connector design&&dev&&test.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,43 @@ _receive_kv(path, req_blocks, pending_wait):
235235
在看了 nccl 的实现之后,确定核心问题如下:
236236
![[5. flagcx connector design&&dev&&test 2026-04-21 14.47.25.excalidraw.svg]]
237237
%%[[5. flagcx connector design&&dev&&test 2026-04-21 14.47.25.excalidraw.md|🖋 Edit in Excalidraw]]%%
238+
把 post 和 poll 的过程从一次 loop 推进一个变成多个,带来了 4.5% 左右的提升。==但是还是没有解决问题==:
238239
240+
> [!tips]
241+
> nccl2.30 内为了进一步让 gin->xxxx 的 oneSide communication 可以 cudaGraph/overlap,所以 sender 也会自己下WriteValue/waitValue 来确保前置的 kernel 完成后才发起 put/get 操作。它的过程大致如下:
242+
>
243+
```
244+
Launch 线程 GPU Stream Proxy 线程
245+
──────────── ────────── ──────────
246+
enqueue desc[0..3]
247+
cuStreamBatchMemOp()
248+
→ WriteValue(readySeqDev, 1)
249+
→ WriteValue(readySeqDev, 2)
250+
→ WriteValue(readySeqDev, 3)
251+
→ WriteValue(readySeqDev, 4)
252+
[GPU kernel 写完 src 后执行↓]
253+
readySeqDev=4 readySeq(GDR)=4
254+
4 >= opSeq=1 ✓ → iput → inProgress
255+
4 >= opSeq=2 ✓ → iput → inProgress
256+
...
257+
NIC done[0] → doneSeq=1 (RELEASE)
258+
doneSeqDev=1
259+
WaitValue(doneSeq≥1)──→ GPU stream 解锁
260+
(后续 kernel 可消费 dst)
261+
```
262+
263+
于是发现可能是我们没有用多个 QP,于是修改下面代码:
264+
```
265+
# flagcx/adaptor/net/ibrc_adaptor.cc
266+
# iputSingal的实现里面拿 qp 的逻辑修改为:
267+
int qpIdx = comm->base.qpIndex;
268+
comm->base.qpIndex = (qpIdx + 1) % comm->base.nqps;
269+
struct flagcxIbQp *qp = &comm->base.qps[qpIdx];
270+
```
271+
272+
16k 输入的场景 300 条 request
273+
1. 优化上述 proxyProgress 之后从 209s 到 200 秒
274+
2. 给 inputSignal 每次只选 qp0 的代码改成 roundrobin 的选多个 QP 又减少了 20 秒
239275
# 3 test
240276
241277
168/169机器需要让 gpu 内核加载这个 ib 的模块(如果没有的话):

content/Inference/vllm/practice/excalidraw/5. flagcx connector design&&dev&&test 2026-04-21 14.47.25.excalidraw.md

Lines changed: 157 additions & 122 deletions
Large diffs are not rendered by default.

content/Inference/vllm/practice/excalidraw/5. flagcx connector design&&dev&&test 2026-04-21 14.47.25.excalidraw.svg

Lines changed: 9 additions & 2 deletions
Loading

content/Inference/vllm/src_code/excalidraw/1. vllm 如何使用 mooncake 传输 kv cache 2026-04-01 15.55.59.excalidraw.md

Lines changed: 120 additions & 120 deletions
Large diffs are not rendered by default.

content/Inference/vllm/src_code/excalidraw/1. vllm 如何使用 mooncake 传输 kv cache 2026-04-01 15.55.59.excalidraw.svg

Lines changed: 5 additions & 5 deletions
Loading
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
type: daily
3+
tags:
4+
- daily
5+
summary:
6+
focus:
7+
mood:
8+
energy:
9+
---
10+
11+
# 2026-04-22 Daily
12+
13+
## 🧠 今天记录
14+
- [ ]
15+
16+
## 🚀 今日TODO
17+
- [ ]
18+
19+
## 🧩 遇到的问题 / 卡点
20+
- [ ]
21+
22+
## 📌 明天该干啥
23+
- [ ]
24+
25+
## 💡 随手记录
26+
-
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
type: daily
3+
tags:
4+
- daily
5+
summary:
6+
focus:
7+
mood:
8+
energy:
9+
---
10+
11+
# 2026-05-06 Daily
12+
13+
## 🧠 今天记录
14+
- [ ]
15+
16+
## 🚀 今日TODO
17+
- [ ]
18+
19+
## 🧩 遇到的问题 / 卡点
20+
- [ ]
21+
22+
## 📌 明天该干啥
23+
- [ ]
24+
25+
## 💡 随手记录
26+
-

0 commit comments

Comments
 (0)