Files
kernbench2/docs/diagrams/cube_view.svg
T
ywkang e94f1de078 Cube-view SVG: detailed topology validation rendering
- Dedicated cube_view renderer showing 6×6 router grid with attachments
- PE blocks drawn next to their router (above/below)
- HBM pseudo channel port bar (64 ports, color-coded by PE owner)
- Per-PE BW annotations on HBM links
- Router color-coded by type (PE/M_CPU/SRAM/UCIe/relay)
- Title shows mode, channel count, per-PE and total BW
- Legend for all component types

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 22:03:38 -07:00

259 lines
25 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<svg xmlns="http://www.w3.org/2000/svg" width="970" height="900" viewBox="0 0 970 900">
<title>cube</title>
<rect width="970" height="900" fill="#0f172a"/>
<text x="485" y="22" text-anchor="middle" font-family="monospace" font-size="14" font-weight="bold" fill="#94a3b8">CUBE TOPOLOGY — 17.0×14.0mm | 6×6 Router Mesh | n_to_one mode | 64 pseudo-ch</text>
<text x="485" y="40" text-anchor="middle" font-family="monospace" font-size="10" fill="#64748b">Per-PE: 8 ch × 32.0 GB/s = 256.0 GB/s | Cube total: 64 × 32.0 = 2048.0 GB/s</text>
<rect x="60" y="60" width="850.0" height="700.0" rx="6" fill="none" stroke="#475569" stroke-width="2" stroke-dasharray="8,4"/>
<rect x="260" y="285" width="450" height="250" rx="6" fill="#052e16" stroke="#047857" stroke-width="2" opacity="0.6"/>
<text x="485" y="395" text-anchor="middle" font-family="monospace" font-size="11" font-weight="bold" fill="#047857">HBM_CTRL | 64 pseudo channels</text>
<text x="485" y="412" text-anchor="middle" font-family="monospace" font-size="9" fill="#05966988">Total BW: 2048 GB/s</text>
<rect x="285.0" y="425" width="5.8" height="8" fill="#3b82f6" opacity="0.7"/>
<rect x="291.2" y="425" width="5.8" height="8" fill="#3b82f6" opacity="0.7"/>
<rect x="297.5" y="425" width="5.8" height="8" fill="#3b82f6" opacity="0.7"/>
<rect x="303.8" y="425" width="5.8" height="8" fill="#3b82f6" opacity="0.7"/>
<rect x="310.0" y="425" width="5.8" height="8" fill="#3b82f6" opacity="0.7"/>
<rect x="316.2" y="425" width="5.8" height="8" fill="#3b82f6" opacity="0.7"/>
<rect x="322.5" y="425" width="5.8" height="8" fill="#3b82f6" opacity="0.7"/>
<rect x="328.8" y="425" width="5.8" height="8" fill="#3b82f6" opacity="0.7"/>
<rect x="335.0" y="425" width="5.8" height="8" fill="#60a5fa" opacity="0.7"/>
<rect x="341.2" y="425" width="5.8" height="8" fill="#60a5fa" opacity="0.7"/>
<rect x="347.5" y="425" width="5.8" height="8" fill="#60a5fa" opacity="0.7"/>
<rect x="353.8" y="425" width="5.8" height="8" fill="#60a5fa" opacity="0.7"/>
<rect x="360.0" y="425" width="5.8" height="8" fill="#60a5fa" opacity="0.7"/>
<rect x="366.2" y="425" width="5.8" height="8" fill="#60a5fa" opacity="0.7"/>
<rect x="372.5" y="425" width="5.8" height="8" fill="#60a5fa" opacity="0.7"/>
<rect x="378.8" y="425" width="5.8" height="8" fill="#60a5fa" opacity="0.7"/>
<rect x="385.0" y="425" width="5.8" height="8" fill="#8b5cf6" opacity="0.7"/>
<rect x="391.2" y="425" width="5.8" height="8" fill="#8b5cf6" opacity="0.7"/>
<rect x="397.5" y="425" width="5.8" height="8" fill="#8b5cf6" opacity="0.7"/>
<rect x="403.8" y="425" width="5.8" height="8" fill="#8b5cf6" opacity="0.7"/>
<rect x="410.0" y="425" width="5.8" height="8" fill="#8b5cf6" opacity="0.7"/>
<rect x="416.2" y="425" width="5.8" height="8" fill="#8b5cf6" opacity="0.7"/>
<rect x="422.5" y="425" width="5.8" height="8" fill="#8b5cf6" opacity="0.7"/>
<rect x="428.8" y="425" width="5.8" height="8" fill="#8b5cf6" opacity="0.7"/>
<rect x="435.0" y="425" width="5.8" height="8" fill="#a78bfa" opacity="0.7"/>
<rect x="441.2" y="425" width="5.8" height="8" fill="#a78bfa" opacity="0.7"/>
<rect x="447.5" y="425" width="5.8" height="8" fill="#a78bfa" opacity="0.7"/>
<rect x="453.8" y="425" width="5.8" height="8" fill="#a78bfa" opacity="0.7"/>
<rect x="460.0" y="425" width="5.8" height="8" fill="#a78bfa" opacity="0.7"/>
<rect x="466.2" y="425" width="5.8" height="8" fill="#a78bfa" opacity="0.7"/>
<rect x="472.5" y="425" width="5.8" height="8" fill="#a78bfa" opacity="0.7"/>
<rect x="478.8" y="425" width="5.8" height="8" fill="#a78bfa" opacity="0.7"/>
<rect x="485.0" y="425" width="5.8" height="8" fill="#f59e0b" opacity="0.7"/>
<rect x="491.2" y="425" width="5.8" height="8" fill="#f59e0b" opacity="0.7"/>
<rect x="497.5" y="425" width="5.8" height="8" fill="#f59e0b" opacity="0.7"/>
<rect x="503.8" y="425" width="5.8" height="8" fill="#f59e0b" opacity="0.7"/>
<rect x="510.0" y="425" width="5.8" height="8" fill="#f59e0b" opacity="0.7"/>
<rect x="516.2" y="425" width="5.8" height="8" fill="#f59e0b" opacity="0.7"/>
<rect x="522.5" y="425" width="5.8" height="8" fill="#f59e0b" opacity="0.7"/>
<rect x="528.8" y="425" width="5.8" height="8" fill="#f59e0b" opacity="0.7"/>
<rect x="535.0" y="425" width="5.8" height="8" fill="#fbbf24" opacity="0.7"/>
<rect x="541.2" y="425" width="5.8" height="8" fill="#fbbf24" opacity="0.7"/>
<rect x="547.5" y="425" width="5.8" height="8" fill="#fbbf24" opacity="0.7"/>
<rect x="553.8" y="425" width="5.8" height="8" fill="#fbbf24" opacity="0.7"/>
<rect x="560.0" y="425" width="5.8" height="8" fill="#fbbf24" opacity="0.7"/>
<rect x="566.2" y="425" width="5.8" height="8" fill="#fbbf24" opacity="0.7"/>
<rect x="572.5" y="425" width="5.8" height="8" fill="#fbbf24" opacity="0.7"/>
<rect x="578.8" y="425" width="5.8" height="8" fill="#fbbf24" opacity="0.7"/>
<rect x="585.0" y="425" width="5.8" height="8" fill="#ef4444" opacity="0.7"/>
<rect x="591.2" y="425" width="5.8" height="8" fill="#ef4444" opacity="0.7"/>
<rect x="597.5" y="425" width="5.8" height="8" fill="#ef4444" opacity="0.7"/>
<rect x="603.8" y="425" width="5.8" height="8" fill="#ef4444" opacity="0.7"/>
<rect x="610.0" y="425" width="5.8" height="8" fill="#ef4444" opacity="0.7"/>
<rect x="616.2" y="425" width="5.8" height="8" fill="#ef4444" opacity="0.7"/>
<rect x="622.5" y="425" width="5.8" height="8" fill="#ef4444" opacity="0.7"/>
<rect x="628.8" y="425" width="5.8" height="8" fill="#ef4444" opacity="0.7"/>
<rect x="635.0" y="425" width="5.8" height="8" fill="#f87171" opacity="0.7"/>
<rect x="641.2" y="425" width="5.8" height="8" fill="#f87171" opacity="0.7"/>
<rect x="647.5" y="425" width="5.8" height="8" fill="#f87171" opacity="0.7"/>
<rect x="653.8" y="425" width="5.8" height="8" fill="#f87171" opacity="0.7"/>
<rect x="660.0" y="425" width="5.8" height="8" fill="#f87171" opacity="0.7"/>
<rect x="666.2" y="425" width="5.8" height="8" fill="#f87171" opacity="0.7"/>
<rect x="672.5" y="425" width="5.8" height="8" fill="#f87171" opacity="0.7"/>
<rect x="678.8" y="425" width="5.8" height="8" fill="#f87171" opacity="0.7"/>
<text x="485" y="445" text-anchor="middle" font-family="monospace" font-size="7" fill="#05966988">64 ports | 8 per PE (color-coded)</text>
<line x1="135" y1="135" x2="285" y2="135" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="135" y1="135" x2="135" y2="260" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="285" y1="135" x2="435" y2="135" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="285" y1="135" x2="285" y2="260" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="435" y1="135" x2="585" y2="135" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="435" y1="135" x2="435" y2="260" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="585" y1="135" x2="685" y2="135" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="585" y1="135" x2="585" y2="260" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="685" y1="135" x2="835" y2="135" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="685" y1="135" x2="685" y2="260" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="835" y1="135" x2="835" y2="260" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="135" y1="260" x2="285" y2="260" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="135" y1="260" x2="135" y2="335" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="285" y1="260" x2="435" y2="260" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="285" y1="260" x2="285" y2="335" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="435" y1="260" x2="585" y2="260" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="435" y1="260" x2="435" y2="560" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="585" y1="260" x2="685" y2="260" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="585" y1="260" x2="585" y2="560" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="685" y1="260" x2="835" y2="260" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="685" y1="260" x2="685" y2="335" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="835" y1="260" x2="835" y2="335" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="135" y1="335" x2="285" y2="335" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="135" y1="335" x2="135" y2="485" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="285" y1="335" x2="685" y2="335" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="285" y1="335" x2="285" y2="485" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="685" y1="335" x2="835" y2="335" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="685" y1="335" x2="685" y2="485" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="835" y1="335" x2="835" y2="485" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="135" y1="485" x2="285" y2="485" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="135" y1="485" x2="135" y2="560" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="285" y1="485" x2="685" y2="485" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="285" y1="485" x2="285" y2="560" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="685" y1="485" x2="835" y2="485" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="685" y1="485" x2="685" y2="560" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="835" y1="485" x2="835" y2="560" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="135" y1="560" x2="285" y2="560" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="135" y1="560" x2="135" y2="685" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="285" y1="560" x2="435" y2="560" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="285" y1="560" x2="285" y2="685" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="435" y1="560" x2="585" y2="560" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="435" y1="560" x2="435" y2="685" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="585" y1="560" x2="685" y2="560" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="585" y1="560" x2="585" y2="685" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="685" y1="560" x2="835" y2="560" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="685" y1="560" x2="685" y2="685" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="835" y1="560" x2="835" y2="685" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="135" y1="685" x2="285" y2="685" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="285" y1="685" x2="435" y2="685" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="435" y1="685" x2="585" y2="685" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="585" y1="685" x2="685" y2="685" stroke="#475569" stroke-width="1" opacity="0.4"/>
<line x1="685" y1="685" x2="835" y2="685" stroke="#475569" stroke-width="1" opacity="0.4"/>
<circle cx="135" cy="135" r="10" fill="#3b82f6" stroke="#1d4ed8" stroke-width="1.5"/>
<text x="135" y="138" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r0c0</text>
<text x="135" y="155" text-anchor="middle" font-family="monospace" font-size="6" fill="#94a3b8">PE0, UCIe×2</text>
<line x1="135" y1="145" x2="135" y2="285" stroke="#10b981" stroke-width="1.5" opacity="0.5" stroke-dasharray="4,3"/>
<text x="147" y="215" font-family="monospace" font-size="6" fill="#10b98188">256GB/s</text>
<circle cx="285" cy="135" r="10" fill="#3b82f6" stroke="#1d4ed8" stroke-width="1.5"/>
<text x="285" y="138" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r0c1</text>
<text x="285" y="155" text-anchor="middle" font-family="monospace" font-size="6" fill="#94a3b8">PE1, UCIe×1</text>
<line x1="285" y1="145" x2="285" y2="285" stroke="#10b981" stroke-width="1.5" opacity="0.5" stroke-dasharray="4,3"/>
<text x="297" y="215" font-family="monospace" font-size="6" fill="#10b98188">256GB/s</text>
<circle cx="435" cy="135" r="10" fill="#334155" stroke="#475569" stroke-width="1.5"/>
<text x="435" y="138" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r0c2</text>
<circle cx="585" cy="135" r="10" fill="#334155" stroke="#475569" stroke-width="1.5"/>
<text x="585" y="138" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r0c3</text>
<circle cx="685" cy="135" r="10" fill="#8b5cf6" stroke="#6d28d9" stroke-width="1.5"/>
<text x="685" y="138" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r0c4</text>
<text x="685" y="155" text-anchor="middle" font-family="monospace" font-size="6" fill="#94a3b8">UCIe×1</text>
<circle cx="835" cy="135" r="10" fill="#8b5cf6" stroke="#6d28d9" stroke-width="1.5"/>
<text x="835" y="138" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r0c5</text>
<text x="835" y="155" text-anchor="middle" font-family="monospace" font-size="6" fill="#94a3b8">UCIe×2</text>
<circle cx="135" cy="260" r="10" fill="#8b5cf6" stroke="#6d28d9" stroke-width="1.5"/>
<text x="135" y="263" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r1c0</text>
<text x="135" y="280" text-anchor="middle" font-family="monospace" font-size="6" fill="#94a3b8">UCIe×1</text>
<circle cx="285" cy="260" r="10" fill="#334155" stroke="#475569" stroke-width="1.5"/>
<text x="285" y="263" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r1c1</text>
<circle cx="435" cy="260" r="10" fill="#334155" stroke="#475569" stroke-width="1.5"/>
<text x="435" y="263" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r1c2</text>
<circle cx="585" cy="260" r="10" fill="#334155" stroke="#475569" stroke-width="1.5"/>
<text x="585" y="263" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r1c3</text>
<circle cx="685" cy="260" r="10" fill="#3b82f6" stroke="#1d4ed8" stroke-width="1.5"/>
<text x="685" y="263" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r1c4</text>
<text x="685" y="280" text-anchor="middle" font-family="monospace" font-size="6" fill="#94a3b8">PE2</text>
<line x1="685" y1="270" x2="685" y2="285" stroke="#10b981" stroke-width="1.5" opacity="0.5" stroke-dasharray="4,3"/>
<text x="697" y="278" font-family="monospace" font-size="6" fill="#10b98188">256GB/s</text>
<circle cx="835" cy="260" r="10" fill="#3b82f6" stroke="#1d4ed8" stroke-width="1.5"/>
<text x="835" y="263" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r1c5</text>
<text x="835" y="280" text-anchor="middle" font-family="monospace" font-size="6" fill="#94a3b8">PE3, UCIe×1</text>
<line x1="835" y1="270" x2="835" y2="285" stroke="#10b981" stroke-width="1.5" opacity="0.5" stroke-dasharray="4,3"/>
<text x="847" y="278" font-family="monospace" font-size="6" fill="#10b98188">256GB/s</text>
<circle cx="135" cy="335" r="10" fill="#f59e0b" stroke="#d97706" stroke-width="1.5"/>
<text x="135" y="338" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r2c0</text>
<text x="135" y="355" text-anchor="middle" font-family="monospace" font-size="6" fill="#94a3b8">M_CPU</text>
<circle cx="285" cy="335" r="10" fill="#334155" stroke="#475569" stroke-width="1.5"/>
<text x="285" y="338" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r2c1</text>
<circle cx="685" cy="335" r="10" fill="#334155" stroke="#475569" stroke-width="1.5"/>
<text x="685" y="338" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r2c4</text>
<circle cx="835" cy="335" r="10" fill="#334155" stroke="#475569" stroke-width="1.5"/>
<text x="835" y="338" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r2c5</text>
<circle cx="135" cy="485" r="10" fill="#f59e0b" stroke="#d97706" stroke-width="1.5"/>
<text x="135" y="488" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r3c0</text>
<text x="135" y="505" text-anchor="middle" font-family="monospace" font-size="6" fill="#94a3b8">SRAM</text>
<circle cx="285" cy="485" r="10" fill="#334155" stroke="#475569" stroke-width="1.5"/>
<text x="285" y="488" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r3c1</text>
<circle cx="685" cy="485" r="10" fill="#334155" stroke="#475569" stroke-width="1.5"/>
<text x="685" y="488" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r3c4</text>
<circle cx="835" cy="485" r="10" fill="#334155" stroke="#475569" stroke-width="1.5"/>
<text x="835" y="488" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r3c5</text>
<circle cx="135" cy="560" r="10" fill="#3b82f6" stroke="#1d4ed8" stroke-width="1.5"/>
<text x="135" y="563" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r4c0</text>
<text x="135" y="580" text-anchor="middle" font-family="monospace" font-size="6" fill="#94a3b8">PE4, UCIe×1</text>
<line x1="135" y1="570" x2="135" y2="535" stroke="#10b981" stroke-width="1.5" opacity="0.5" stroke-dasharray="4,3"/>
<text x="147" y="552" font-family="monospace" font-size="6" fill="#10b98188">256GB/s</text>
<circle cx="285" cy="560" r="10" fill="#3b82f6" stroke="#1d4ed8" stroke-width="1.5"/>
<text x="285" y="563" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r4c1</text>
<text x="285" y="580" text-anchor="middle" font-family="monospace" font-size="6" fill="#94a3b8">PE5</text>
<line x1="285" y1="570" x2="285" y2="535" stroke="#10b981" stroke-width="1.5" opacity="0.5" stroke-dasharray="4,3"/>
<text x="297" y="552" font-family="monospace" font-size="6" fill="#10b98188">256GB/s</text>
<circle cx="435" cy="560" r="10" fill="#334155" stroke="#475569" stroke-width="1.5"/>
<text x="435" y="563" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r4c2</text>
<circle cx="585" cy="560" r="10" fill="#334155" stroke="#475569" stroke-width="1.5"/>
<text x="585" y="563" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r4c3</text>
<circle cx="685" cy="560" r="10" fill="#334155" stroke="#475569" stroke-width="1.5"/>
<text x="685" y="563" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r4c4</text>
<circle cx="835" cy="560" r="10" fill="#8b5cf6" stroke="#6d28d9" stroke-width="1.5"/>
<text x="835" y="563" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r4c5</text>
<text x="835" y="580" text-anchor="middle" font-family="monospace" font-size="6" fill="#94a3b8">UCIe×1</text>
<circle cx="135" cy="685" r="10" fill="#8b5cf6" stroke="#6d28d9" stroke-width="1.5"/>
<text x="135" y="688" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r5c0</text>
<text x="135" y="705" text-anchor="middle" font-family="monospace" font-size="6" fill="#94a3b8">UCIe×2</text>
<circle cx="285" cy="685" r="10" fill="#8b5cf6" stroke="#6d28d9" stroke-width="1.5"/>
<text x="285" y="688" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r5c1</text>
<text x="285" y="705" text-anchor="middle" font-family="monospace" font-size="6" fill="#94a3b8">UCIe×1</text>
<circle cx="435" cy="685" r="10" fill="#334155" stroke="#475569" stroke-width="1.5"/>
<text x="435" y="688" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r5c2</text>
<circle cx="585" cy="685" r="10" fill="#334155" stroke="#475569" stroke-width="1.5"/>
<text x="585" y="688" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r5c3</text>
<circle cx="685" cy="685" r="10" fill="#3b82f6" stroke="#1d4ed8" stroke-width="1.5"/>
<text x="685" y="688" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r5c4</text>
<text x="685" y="705" text-anchor="middle" font-family="monospace" font-size="6" fill="#94a3b8">PE6, UCIe×1</text>
<line x1="685" y1="695" x2="685" y2="535" stroke="#10b981" stroke-width="1.5" opacity="0.5" stroke-dasharray="4,3"/>
<text x="697" y="615" font-family="monospace" font-size="6" fill="#10b98188">256GB/s</text>
<circle cx="835" cy="685" r="10" fill="#3b82f6" stroke="#1d4ed8" stroke-width="1.5"/>
<text x="835" y="688" text-anchor="middle" font-family="monospace" font-size="7" font-weight="bold" fill="white">r5c5</text>
<text x="835" y="705" text-anchor="middle" font-family="monospace" font-size="6" fill="#94a3b8">PE7, UCIe×2</text>
<line x1="835" y1="695" x2="835" y2="535" stroke="#10b981" stroke-width="1.5" opacity="0.5" stroke-dasharray="4,3"/>
<text x="847" y="615" font-family="monospace" font-size="6" fill="#10b98188">256GB/s</text>
<rect x="120" y="103" width="30" height="18" rx="3" fill="#2d1f3d" stroke="#a855f7" stroke-width="1"/>
<text x="135" y="116" text-anchor="middle" font-family="monospace" font-size="8" font-weight="bold" fill="#a855f7">PE0</text>
<line x1="135" y1="121" x2="135" y2="125" stroke="#a855f7" stroke-width="1.5" opacity="0.7"/>
<rect x="270" y="103" width="30" height="18" rx="3" fill="#2d1f3d" stroke="#a855f7" stroke-width="1"/>
<text x="285" y="116" text-anchor="middle" font-family="monospace" font-size="8" font-weight="bold" fill="#a855f7">PE1</text>
<line x1="285" y1="121" x2="285" y2="125" stroke="#a855f7" stroke-width="1.5" opacity="0.7"/>
<rect x="670" y="228" width="30" height="18" rx="3" fill="#2d1f3d" stroke="#a855f7" stroke-width="1"/>
<text x="685" y="241" text-anchor="middle" font-family="monospace" font-size="8" font-weight="bold" fill="#a855f7">PE2</text>
<line x1="685" y1="246" x2="685" y2="250" stroke="#a855f7" stroke-width="1.5" opacity="0.7"/>
<rect x="820" y="228" width="30" height="18" rx="3" fill="#2d1f3d" stroke="#a855f7" stroke-width="1"/>
<text x="835" y="241" text-anchor="middle" font-family="monospace" font-size="8" font-weight="bold" fill="#a855f7">PE3</text>
<line x1="835" y1="246" x2="835" y2="250" stroke="#a855f7" stroke-width="1.5" opacity="0.7"/>
<rect x="120" y="574" width="30" height="18" rx="3" fill="#2d1f3d" stroke="#a855f7" stroke-width="1"/>
<text x="135" y="587" text-anchor="middle" font-family="monospace" font-size="8" font-weight="bold" fill="#a855f7">PE4</text>
<line x1="135" y1="574" x2="135" y2="570" stroke="#a855f7" stroke-width="1.5" opacity="0.7"/>
<rect x="270" y="574" width="30" height="18" rx="3" fill="#2d1f3d" stroke="#a855f7" stroke-width="1"/>
<text x="285" y="587" text-anchor="middle" font-family="monospace" font-size="8" font-weight="bold" fill="#a855f7">PE5</text>
<line x1="285" y1="574" x2="285" y2="570" stroke="#a855f7" stroke-width="1.5" opacity="0.7"/>
<rect x="670" y="699" width="30" height="18" rx="3" fill="#2d1f3d" stroke="#a855f7" stroke-width="1"/>
<text x="685" y="712" text-anchor="middle" font-family="monospace" font-size="8" font-weight="bold" fill="#a855f7">PE6</text>
<line x1="685" y1="699" x2="685" y2="695" stroke="#a855f7" stroke-width="1.5" opacity="0.7"/>
<rect x="820" y="699" width="30" height="18" rx="3" fill="#2d1f3d" stroke="#a855f7" stroke-width="1"/>
<text x="835" y="712" text-anchor="middle" font-family="monospace" font-size="8" font-weight="bold" fill="#a855f7">PE7</text>
<line x1="835" y1="699" x2="835" y2="695" stroke="#a855f7" stroke-width="1.5" opacity="0.7"/>
<rect x="60" y="865" width="10" height="10" rx="2" fill="#3b82f6" stroke="#475569" stroke-width="0.5"/>
<text x="74" y="874" font-family="monospace" font-size="8" fill="#94a3b8">PE Router</text>
<rect x="147" y="865" width="10" height="10" rx="2" fill="#f59e0b" stroke="#475569" stroke-width="0.5"/>
<text x="161" y="874" font-family="monospace" font-size="8" fill="#94a3b8">M_CPU / SRAM</text>
<rect x="255" y="865" width="10" height="10" rx="2" fill="#8b5cf6" stroke="#475569" stroke-width="0.5"/>
<text x="269" y="874" font-family="monospace" font-size="8" fill="#94a3b8">UCIe</text>
<rect x="307" y="865" width="10" height="10" rx="2" fill="#334155" stroke="#475569" stroke-width="0.5"/>
<text x="321" y="874" font-family="monospace" font-size="8" fill="#94a3b8">Relay</text>
<rect x="366" y="865" width="10" height="10" rx="2" fill="#10b981" stroke="#475569" stroke-width="0.5"/>
<text x="380" y="874" font-family="monospace" font-size="8" fill="#94a3b8">HBM Link</text>
<rect x="446" y="865" width="10" height="10" rx="2" fill="#475569" stroke="#475569" stroke-width="0.5"/>
<text x="460" y="874" font-family="monospace" font-size="8" fill="#94a3b8">Mesh Link</text>
</svg>