<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Nccl on Alessandro Sangiorgi — GPU Performance Engineer</title><link>https://contact.alessandrosangiorgi.net/tags/nccl/</link><description>Recent content in Nccl on Alessandro Sangiorgi — GPU Performance Engineer</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sun, 28 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://contact.alessandrosangiorgi.net/tags/nccl/index.xml" rel="self" type="application/rss+xml"/><item><title>Wiring Two DGX Sparks: One Script to Detect, Configure, and Validate the RoCE Link</title><link>https://contact.alessandrosangiorgi.net/posts/dgx-spark-roce-link-validation/</link><pubDate>Sun, 28 Jun 2026 00:00:00 +0000</pubDate><guid>https://contact.alessandrosangiorgi.net/posts/dgx-spark-roce-link-validation/</guid><description>&lt;p&gt;You plug the ConnectX-7 stacking cable into two DGX Sparks, assign a couple of IPs, and&amp;hellip; now what? Before you trust that link with any distributed workload, you want to &lt;em&gt;know&lt;/em&gt; three things are true:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The link runs at line rate (~100 Gbps/rail), not pinned at ~13 Gbps by a firmware-throttle trap.&lt;/li&gt;
&lt;li&gt;RDMA latency is in the single-digit microseconds.&lt;/li&gt;
&lt;li&gt;NCCL collectives actually ride the RoCE fabric — not a silent TCP fallback that &lt;em&gt;looks&lt;/em&gt; like it works but runs 50× slower.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Every one of those can fail &lt;em&gt;silently&lt;/em&gt;, reporting a plausible-but-wrong number. And before you can even test them, you have to answer a surprisingly annoying question: &lt;strong&gt;which network device is the live one?&lt;/strong&gt; On a fresh Spark the answer is not obvious, and it is not the same name on both boxes.&lt;/p&gt;</description></item><item><title>The Number Nobody Published: Small-Message NCCL Latency Between Two DGX Sparks</title><link>https://contact.alessandrosangiorgi.net/posts/dgx-spark-nccl-collective-latency/</link><pubDate>Thu, 25 Jun 2026 00:00:00 +0000</pubDate><guid>https://contact.alessandrosangiorgi.net/posts/dgx-spark-nccl-collective-latency/</guid><description>&lt;p&gt;If you go looking for performance numbers on two NVIDIA DGX Sparks wired together over the ConnectX-7 stacking cable, you&amp;rsquo;ll find the same thing everywhere: &lt;strong&gt;bandwidth&lt;/strong&gt;. NCCL bus bandwidth of ~24 GB/s. RDMA &lt;code&gt;ib_write_bw&lt;/code&gt; of ~190 Gbps aggregate. iperf throughput. Forum threads about getting from a throttled 13 Gbps back up to line rate.&lt;/p&gt;
&lt;p&gt;What you will &lt;em&gt;not&lt;/em&gt; find — anywhere, as of this writing — is the number that actually matters for a latency-bound distributed workload: &lt;strong&gt;how long does a small-message collective take?&lt;/strong&gt; Not a 1 GB all-gather that&amp;rsquo;s bottlenecked on bandwidth, but a few-kilobyte all-reduce whose cost is pure round-trip latency, the kind that lands on the critical path of tightly-coupled parallel execution and gets paid once per layer, per step, with no overlap.&lt;/p&gt;</description></item></channel></rss>