<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>GPU on Council of Elrond</title><link>https://songkou.github.io/tags/gpu/</link><description>Recent content in GPU on Council of Elrond</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 05 Aug 2026 21:00:00 +0800</lastBuildDate><atom:link href="https://songkou.github.io/tags/gpu/index.xml" rel="self" type="application/rss+xml"/><item><title>NCCL and NVLink: Collective Communication and the Two Domains of an AI Cluster</title><link>https://songkou.github.io/posts/nvlink-nccl-scaleup-scaleout/</link><pubDate>Wed, 05 Aug 2026 21:00:00 +0800</pubDate><guid>https://songkou.github.io/posts/nvlink-nccl-scaleup-scaleout/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; this post is a re-write based on articles found on the internet, cross-checked against NVIDIA&amp;rsquo;s NCCL documentation and published NVLink specifications, and kept here for future reference.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="1-nccl-the-communication-primitives-under-every-training-job"&gt;1. NCCL: the communication primitives under every training job&lt;/h2&gt;
&lt;p&gt;Training a model across many GPUs is, mechanically, a loop of compute and synchronization. With 8 GPUs data-parallel training a 7B model, each card holds ~14 GB of bf16 gradients after every backward pass, and all 8 copies must be merged into one identical result on every card — hundreds of thousands of times over a run. The standard tool for this is NVIDIA&amp;rsquo;s &lt;strong&gt;NCCL&lt;/strong&gt; (NVIDIA Collective Communications Library). NCCL is not a training framework and not a scheduler; it is the layer that moves tensors between GPUs. Every &amp;ldquo;data parallel&amp;rdquo;, &amp;ldquo;tensor parallel&amp;rdquo;, or &amp;ldquo;parameter sharding&amp;rdquo; feature in the frameworks above it eventually lands on the small set of primitives this section walks through.&lt;/p&gt;</description></item></channel></rss>