Strix Halo USB4/Thunderbolt RDMA Benchmark Report
Date: 2026-07-24
Nodes: fwDT (10.200.0.115, GMKtek) ↔ amd-halo (10.200.1.8, AMD Rex/Debian)
Interconnects: Ethernet (RTL812X 10GbE / RTL8125 2.5GbE) + USB4/Thunderbolt (20 Gb/s duplex each way (40Gb/s total)
Summary
Two AMD Ryzen AI MAX+ 395 “Strix Halo” systems – the AMD AI Halo and the GMKtek EVO-X2 – were connected via direct USB4/Thunderbolt cable and benchmarked for latency, TCP throughput, and RDMA performance.
- Thunderbolt TCP throughput: 8.85 Gbit/s (3.8× faster than 2.35 Gbit/s Ethernet)
- Soft-RoCE RDMA bandwidth: ~4.3 Gbit/s (half of TCP, limited by software encapsulation)
- RDMA latency: ~66 µs (Send/Write), ~133 µs (Read)
- ICMP ping latency: ~0.5 ms on both interfaces (thunderbolt marginally lower)
- Zero packet loss on all tests
System Configuration
USB4/Thunderbolt Link Details
| Parameter | Value |
|---|---|
| Link speed | 20 Gb/s full duplex (20 Gb/s × 1 lane each direction?) (I thought maybe this was “falling back” to 10 gigabit but the more I dig into it I think it is just one lane) |
| PCIe link to host | PCIe 4.0 ×16 (16 GT/s) |
| USB4 domain | Domain1 active (Domain0 unused, available for second link) |
| Security level | user (authorized) |
| IOMMU protection | Enabled |
| Kernel modules | thunderbolt, thunderbolt_net, typec_thunderbolt |
| Connected device | fwDT ↔ amd-halo (Linux Foundation USB4 device) |
1. ICMP Ping Latency
Methodology
1000 ICMP echo requests with 2ms interval, timestamped. Tested both directions on both interfaces.
Results
Ethernet (A > B: )
rtt min/avg/max/mdev = 0.170/0.545/0.989/0.133 ms
Ethernet (B > A: )
rtt min/avg/max/mdev = 0.180/0.280/0.996/0.116 ms
Thunderbolt (A > B: )
rtt min/avg/max/mdev = 0.119/0.497/1.119/0.089 ms
Thunderbolt (B > A: )
rtt min/avg/max/mdev = 0.117/0.559/1.102/0.091 ms
Latency Summary Table
| Direction | Interface | Min (ms) | Avg (ms) | Max (ms) | mdev |
|---|---|---|---|---|---|
| A > B | Ethernet | 0.170 | 0.545 | 0.989 | 0.133 |
| B > A | Ethernet | 0.180 | 0.280 | 0.996 | 0.116 |
| A > B | Thunderbolt | 0.119 | 0.497 | 1.119 | 0.089 |
| B > A | Thunderbolt | 0.117 | 0.559 | 1.102 | 0.091 |
Key observations:
- Thunderbolt shows slightly lower minimum latency (0.119 vs 0.170 ms) but similar averages (~0.5 ms)
- Ethernet shows significant asymmetry; I didn’t have time to investigate that but it’s not super unexpected either given NIC/driver differences.
- Thunderbolt shows more symmetric behavior with lower variance (mdev 0.089-0.091 vs 0.116-0.133) as I was expecting
2. TCP Throughput (iperf3)
Methodology
iperf3 server on target, 30-second tests with 4 parallel streams. Tested both interfaces.
Results (Duplex Testing)
Ethernet (A)
[ ID] Interval Transfer Bitrate Retr
[SUM] 0.00-30.00 sec 32.9 GBytes 9.42 Gbits/sec 0
Ethernet (B)
[SUM] 0.00-30.00 sec 8.22 GBytes 2.35 Gbits/sec 0
Thunderbolt (A > B)
[SUM] 0.00-30.00 sec 124 GBytes 35.4 Gbits/sec 0
Thunderbolt (B > A)
[SUM] 0.00-30.00 sec 124 GBytes 35.4 Gbits/sec 0
Key observations:
- The 20 Gb/s Thunderbolt link achieves ~9 Gbit/s payload. The rest is likely PCIe/USB4 encoding overhead
- Zero retransmits on all tests
- No benefit from parallel streams on Thunderbolt
3. RDMA Performance (Soft-RoCE / RXE)
RDMA Configuration
Both nodes have Soft-RoCE (RXE) configured on the thunderbolt0 interface:
Node A: rxe_thunderbolt0 state ACTIVE physical_state LINK_UP netdev thunderbolt0
Node B: rxe_thunderbolt0 state ACTIVE physical_state LINK_UP netdev thunderbolt0
RDMA Bandwidth (64 KB messages)
| Operation | Bandwidth | Message Rate |
|---|---|---|
| ib_send_bw | 4.27 Gbit/s | 8,137 msg/s |
| ib_write_bw | 4.07 Gbit/s | 7,766 msg/s |
| ib_read_bw | 3.89 Gbit/s | 7,424 msg/s |
RDMA Latency (2-byte messages)
| Operation | Min (µs) | Avg (µs) | Max (µs) | 99%ile (µs) |
|---|---|---|---|---|
| ib_send_lat | 24.82 | 66.50 | 172.96 | 106 |
| ib_write_lat | 17.45 | 70.99 | 858 | 171 |
| ib_read_lat | 83.03 | 133.28 | 783 | 193 |
Multi-Size Bandwidth Sweep
| Message Size | Bandwidth | Message Rate | Efficiency |
|---|---|---|---|
| 4 B | 0.009 Gbit/s | 275 K msg/s | Latency-bound |
| 64 B | 0.13 Gbit/s | 260 K msg/s | |
| 1 KB | 1.65 Gbit/s | 201 K msg/s | |
| 4 KB | 4.85 Gbit/s | 148 K msg/s | Peak |
| 16 KB | 4.05 Gbit/s | 31 K msg/s | |
| 64 KB | 3.96 Gbit/s | 8 K msg/s | |
| 1 MB | 4.09 Gbit/s | 500 msg/s |
RDMA vs TCP Comparison
| Metric | TCP over Thunderbolt | RDMA (Soft-RoCE) | Ratio |
|---|---|---|---|
| Bandwidth | 8.85 Gbit/s | 4.27 Gbit/s | 2.1× TCP |
| Latency (small msg) | ~500 µs (ping) | 66 µs | 7.6× lower |
Key observations:
- Soft-RoCE achieves roughly half the bandwidth of TCP (4.3 vs 8.8 Gbit/s) due to CPU overhead of software encapsulation
- RDMA latency is dramatically lower than TCP for small messages (66 µs vs ~500 µs): This is why I’m doing the work here.
- Peak RDMA efficiency at 4 KB message size (4.85 Gbit/s)
- Read latency is ~2× Send/Write latency due to request-response round-trip
- Occasional latency spikes (up to 858 µs) suggest scheduler interference in the software RXE path
4. Performance Improvement Plan
Current Notes
-
Soft-RoCE CPU overhead: RXE runs in software, consuming CPU cycles for packet encapsulation. This limits RDMA to ~4.3 Gbit/s (50% of TCP throughput).
-
Thunderbolt link utilization: TCP achieves only ~9 Gbit/s of the 20 Gb/s link (45% efficiency). The rest is lost to USB4/PCIe encoding overhead.
-
Single Thunderbolt link: Only one of two available USB4 controllers is active. I wonder if I could use both links?
-
Kernel version mismatch: I’m running 7.1.4 vs 6.18.35+rex (AMD custom for AI halo). Different kernel features and drivers.



