Commit 7d8b4f8
add pipelining send/recv
Summary:
Instead of having 1 databuffer (or staging buffer), make it `pipelineDepth` buffers.
```
* Pipeline Flow:
* Time │ Sender │ Receiver
* ─────┼─────────────────────┼──────────────────
* 0 │ Step 0 → Slot[0] │ -
* 1 │ Step 1 → Slot[1] │ Step 0 ← Slot[0]
* 2 │ Step 2 → Slot[2] │ Step 1 ← Slot[1]
* 3 │ Step 3 → Slot[3] │ Step 2 ← Slot[2]
* 4 │ Step 4 → Slot[0] │ Step 3 ← Slot[3]
* 5 │ Step 5 → Slot[1] │ Step 4 ← Slot[0]
*
* The sender can be ahead by up to 3 steps, hiding NVLink latency and
* improving throughput
```
Reviewed By: cenzhaometa
Differential Revision: D88463702
fbshipit-source-id: d1414c50e605be6c8a6585b3b0019150d3ce266b1 parent 4f34173 commit 7d8b4f8
File tree
4 files changed
+900
-225
lines changed- comms/pipes
- tests
4 files changed
+900
-225
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
18 | 28 | | |
19 | | - | |
| 29 | + | |
20 | 30 | | |
21 | 31 | | |
22 | 32 | | |
23 | 33 | | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | 34 | | |
31 | 35 | | |
32 | 36 | | |
33 | 37 | | |
34 | 38 | | |
35 | | - | |
| 39 | + | |
36 | 40 | | |
37 | | - | |
| 41 | + | |
38 | 42 | | |
39 | 43 | | |
40 | 44 | | |
| |||
50 | 54 | | |
51 | 55 | | |
52 | 56 | | |
53 | | - | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
54 | 60 | | |
55 | 61 | | |
56 | 62 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
16 | 17 | | |
17 | 18 | | |
18 | 19 | | |
| |||
0 commit comments