PE-to-PE latency: drop h5 inter-SIP panel from overview
Remove h5_inter_sip from the hop list and switch the overview grid from 2x3 to 2x2. RAW DMA was unavailable for the cross-SIP hop, so the panel only carried IPCQ data and was redundant with h4_inter_cube for the topology comparison. Regenerate pe2pe_latency_plots/overview.png and summary.csv; delete the obsolete h5_inter_sip.png. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 44 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 129 KiB After Width: | Height: | Size: 101 KiB |
@@ -79,13 +79,3 @@ h4_inter_cube_vertical,Inter-cube vertical (cube0 to cube4),8192,ipcq,181.659999
|
|||||||
h4_inter_cube_vertical,Inter-cube vertical (cube0 to cube4),8192,raw,183.04000000000087
|
h4_inter_cube_vertical,Inter-cube vertical (cube0 to cube4),8192,raw,183.04000000000087
|
||||||
h4_inter_cube_vertical,Inter-cube vertical (cube0 to cube4),10240,ipcq,205.65999999999985
|
h4_inter_cube_vertical,Inter-cube vertical (cube0 to cube4),10240,ipcq,205.65999999999985
|
||||||
h4_inter_cube_vertical,Inter-cube vertical (cube0 to cube4),10240,raw,207.04000000000087
|
h4_inter_cube_vertical,Inter-cube vertical (cube0 to cube4),10240,raw,207.04000000000087
|
||||||
h5_inter_sip,"Inter-SIP (sip0 to sip1, same cube/pe)",128,ipcq,6.015000000003056
|
|
||||||
h5_inter_sip,"Inter-SIP (sip0 to sip1, same cube/pe)",256,ipcq,6.515000000003056
|
|
||||||
h5_inter_sip,"Inter-SIP (sip0 to sip1, same cube/pe)",384,ipcq,7.015000000003056
|
|
||||||
h5_inter_sip,"Inter-SIP (sip0 to sip1, same cube/pe)",512,ipcq,7.515000000003056
|
|
||||||
h5_inter_sip,"Inter-SIP (sip0 to sip1, same cube/pe)",768,ipcq,8.515000000003056
|
|
||||||
h5_inter_sip,"Inter-SIP (sip0 to sip1, same cube/pe)",1024,ipcq,9.515000000003056
|
|
||||||
h5_inter_sip,"Inter-SIP (sip0 to sip1, same cube/pe)",2048,ipcq,13.515000000003056
|
|
||||||
h5_inter_sip,"Inter-SIP (sip0 to sip1, same cube/pe)",4096,ipcq,21.515000000003056
|
|
||||||
h5_inter_sip,"Inter-SIP (sip0 to sip1, same cube/pe)",8192,ipcq,37.51499999999214
|
|
||||||
h5_inter_sip,"Inter-SIP (sip0 to sip1, same cube/pe)",10240,ipcq,45.51499999999214
|
|
||||||
|
|||||||
|
@@ -1,15 +1,12 @@
|
|||||||
"""PE-to-PE latency sweep across hop types and data sizes.
|
"""PE-to-PE latency sweep across hop types and data sizes.
|
||||||
|
|
||||||
Compares IPCQ send/recv vs raw-DMA (tl.load + tl.store) latency for five
|
Compares IPCQ send/recv vs raw-DMA (tl.load + tl.store) latency for four
|
||||||
hop types:
|
hop types:
|
||||||
|
|
||||||
H1 Intra-cube horizontal pe0 → pe1
|
H1 Intra-cube horizontal pe0 → pe1
|
||||||
H2 Intra-cube vertical pe0 → pe4
|
H2 Intra-cube vertical pe0 → pe4
|
||||||
H3 Inter-cube horizontal sip0.cube0.pe0 → sip0.cube1.pe0
|
H3 Inter-cube horizontal sip0.cube0.pe0 → sip0.cube1.pe0
|
||||||
H4 Inter-cube vertical sip0.cube0.pe0 → sip0.cube4.pe0
|
H4 Inter-cube vertical sip0.cube0.pe0 → sip0.cube4.pe0
|
||||||
H5 Inter-SIP sip0.cube0.pe0 → sip1.cube0.pe0 (IPCQ only —
|
|
||||||
raw needs
|
|
||||||
cross-SIP MMU)
|
|
||||||
|
|
||||||
Sizes: 128..10240 bytes. Emits PNGs with both lines plus a CSV.
|
Sizes: 128..10240 bytes. Emits PNGs with both lines plus a CSV.
|
||||||
"""
|
"""
|
||||||
@@ -48,7 +45,7 @@ class Hop:
|
|||||||
dst: tuple[int, int, int]
|
dst: tuple[int, int, int]
|
||||||
send_dir: str
|
send_dir: str
|
||||||
recv_dir: str
|
recv_dir: str
|
||||||
supports_raw: bool # False for cross-SIP (DPPolicy intra-device only)
|
supports_raw: bool
|
||||||
|
|
||||||
|
|
||||||
HOPS = [
|
HOPS = [
|
||||||
@@ -60,8 +57,6 @@ HOPS = [
|
|||||||
(0, 0, 0), (0, 1, 0), "E", "W", True),
|
(0, 0, 0), (0, 1, 0), "E", "W", True),
|
||||||
Hop("h4_inter_cube_vertical", "Inter-cube vertical (cube0 to cube4)",
|
Hop("h4_inter_cube_vertical", "Inter-cube vertical (cube0 to cube4)",
|
||||||
(0, 0, 0), (0, 4, 0), "S", "N", True),
|
(0, 0, 0), (0, 4, 0), "S", "N", True),
|
||||||
Hop("h5_inter_sip", "Inter-SIP (sip0 to sip1, same cube/pe)",
|
|
||||||
(0, 0, 0), (1, 0, 0), "global_E", "global_W", False),
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@@ -251,12 +246,6 @@ def _plot_per_hop(records, hop: Hop, path: Path) -> None:
|
|||||||
[r["total_ns"] for r in raw],
|
[r["total_ns"] for r in raw],
|
||||||
marker="s", label="Raw DMA (load+store)", color="tab:orange",
|
marker="s", label="Raw DMA (load+store)", color="tab:orange",
|
||||||
)
|
)
|
||||||
else:
|
|
||||||
ax.text(
|
|
||||||
0.98, 0.02, "(Raw DMA unavailable for cross-SIP)",
|
|
||||||
transform=ax.transAxes, ha="right", va="bottom",
|
|
||||||
fontsize=9, color="gray",
|
|
||||||
)
|
|
||||||
ax.set_xlabel("Data size (bytes)")
|
ax.set_xlabel("Data size (bytes)")
|
||||||
ax.set_ylabel("Latency (ns)")
|
ax.set_ylabel("Latency (ns)")
|
||||||
ax.set_title(hop.label)
|
ax.set_title(hop.label)
|
||||||
@@ -270,7 +259,7 @@ def _plot_per_hop(records, hop: Hop, path: Path) -> None:
|
|||||||
def _plot_overview(records, path: Path) -> None:
|
def _plot_overview(records, path: Path) -> None:
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
|
|
||||||
fig, axes = plt.subplots(2, 3, figsize=(16, 9))
|
fig, axes = plt.subplots(2, 2, figsize=(13, 9))
|
||||||
axes = axes.flatten()
|
axes = axes.flatten()
|
||||||
for i, hop in enumerate(HOPS):
|
for i, hop in enumerate(HOPS):
|
||||||
ax = axes[i]
|
ax = axes[i]
|
||||||
|
|||||||
Reference in New Issue
Block a user