<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
    <channel>
      <title>Non-blocking</title>
      <link>https://nonblocking.pages.dev</link>
      <description>Last 20 notes on Non-blocking</description>
      <generator>Quartz -- quartz.jzhao.xyz</generator>
      <item>
    <title>Before the switches, name the networks.</title>
    <link>https://nonblocking.pages.dev/posts/nvidia-network-names-edgecore-placement</link>
    <guid>https://nonblocking.pages.dev/posts/nvidia-network-names-edgecore-placement</guid>
    <description><![CDATA[ &lt;blockquote class=&quot;callout info&quot; data-callout=&quot;info&quot;&gt;
&lt;div class=&quot;callout-title&quot;&gt;
                  &lt;div class=&quot;callout-icon&quot;&gt;&lt;/div&gt;
                  &lt;div class=&quot;callout-title-inner&quot;&gt;&lt;p&gt;Disclosure &lt;/p&gt;&lt;/div&gt;
                  
                &lt;/div&gt;
&lt;div class=&quot;callout-content&quot;&gt;
&lt;p&gt;I work in sales at Edgecore Networks. This is my personal blog, and these are my views. &lt;span class=&quot;text-highlight&quot;&gt;[EDIT: confirm author wording and review status before publication]&lt;/span&gt;. No company endorsement, certification or deployment acceptance is claimed.&lt;/p&gt;
&lt;p&gt;I use large language models (LLMs) to help draft and edit these posts. The thoughts, ideas and opinions are my own.&lt;/p&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;tldr&quot;&gt;TL;DR&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#tldr&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Before choosing switches, name the job each network does. NVIDIA’s terminology is a useful map: NVLink for scale-up, CIN for external compute communication, TAN for tenant access and SMN for infrastructure management. Storage and inference traffic need to be placed deliberately on that map.&lt;/p&gt;
&lt;p&gt;That gives us two different conversations about Edgecore: building an independent Ethernet network around NVIDIA GPUs, and proposing specific Edgecore placements in an NCP deployment.&lt;/p&gt;
&lt;h2 id=&quot;start-with-the-job-then-the-hardware&quot;&gt;Start with the job, then the hardware&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#start-with-the-job-then-the-hardware&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A diagram can make every line look equivalent. They aren’t. A model loading from storage, GPUs exchanging collectives and a management system reaching a BMC all need different things from the network.&lt;/p&gt;
&lt;p&gt;NVIDIA’s &lt;a href=&quot;https://docs.nvidia.com/dsx/ncp/part-1-software-reference-guide/infrastructure-as-a-service&quot; class=&quot;external&quot;&gt;NCP network table&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt; gives those roles names:&lt;/p&gt;

























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Term&lt;/th&gt;&lt;th&gt;The practical meaning&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;NVLink scale-up&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;The local GPU communication domain. Its physical boundary depends on the platform.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;CIN: Cluster Interconnect Network&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;External compute communication between GPU systems.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;TAN: Tenant Access Network&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Tenant access to storage and external services. Shared services can be logical overlays here.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;SMN: Secure Management Network&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Restricted access to infrastructure management interfaces.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Those are responsibilities, not a universal instruction to buy four physically separate switch fabrics. A storage network can be converged or dedicated. Tenant isolation involves the switches, endpoints and control plane.&lt;/p&gt;
&lt;h2 id=&quot;nvl72-is-a-platform-not-an-ethernet-topology&quot;&gt;NVL72 is a platform, not an Ethernet topology&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#nvl72-is-a-platform-not-an-ethernet-topology&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This distinction matters when somebody asks whether an open Ethernet switch can replace “the NVL72 network.”&lt;/p&gt;
&lt;p&gt;The rack includes an internal NVLink/NVSwitch system. Edgecore Ethernet doesn’t replace that domain. An external scale-out fabric is a different design question. Frontend and infrastructure management connections are different again. &lt;a href=&quot;https://docs.nvidia.com/enterprise-reference-architectures/nvl72-ai-factory/latest/components.html&quot; class=&quot;external&quot;&gt;NVIDIA’s component description&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt; is the place to establish the rack boundary.&lt;/p&gt;
&lt;p&gt;An HGX B300 server and a GB300 NVL72 rack also need different attachment plans. We shouldn’t carry a server count, DPU link rate or management-port budget from one into the other without checking the selected profile.&lt;/p&gt;
&lt;h2 id=&quot;inference-has-more-than-one-network-conversation&quot;&gt;Inference has more than one network conversation&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#inference-has-more-than-one-network-conversation&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A user request entering the service is one path. Model weights moving from storage are another. Disaggregated serving can move KV cache between prefill and decode workers, while model-parallel GPUs exchange their own communication.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://docs.nvidia.com/dsx/ncp/inference-ra/home&quot; class=&quot;external&quot;&gt;NVIDIA inference RA&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt; separates the serving architecture from the capabilities delivered by the provider. That’s a useful discipline: identify the flow, the endpoints and the required transport before drawing the fabric.&lt;/p&gt;
&lt;p&gt;For a customer, I’d put each flow on the diagram and ask what happens when it competes with the others. Then measure the serving result. Time to first token and latency under concurrency tell us something a switch’s port count cannot.&lt;/p&gt;
&lt;h2 id=&quot;two-edgecore-conversations&quot;&gt;Two Edgecore conversations&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#two-edgecore-conversations&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;An independent open Ethernet deployment.&lt;/strong&gt; Here, we can propose Edgecore for external compute communication as well as frontend, storage and management. The proposal still needs a selected NOS release, optics, NIC configuration and workload tests. Port speed alone doesn’t establish the implementation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A deployment following NCP requirements.&lt;/strong&gt; Here, the selected profile governs the design. The &lt;a href=&quot;https://docs.nvidia.com/dsx/ncp/inference-provider-requirements/home&quot; class=&quot;external&quot;&gt;GB300 NVL72 provider requirements&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt; prescribe BlueField-3 north-south under NET-1 and InfiniBand or Spectrum-X east-west under NET-2. Proposed Edgecore placements elsewhere require their own design and acceptance review. Calling traffic “inference interconnect” doesn’t remove the requirement that applies to its actual role.&lt;/p&gt;
&lt;p&gt;This is why I prefer a placement map to a blanket compatibility statement. It tells the customer which equipment we’re proposing, what stays in place and what needs to be tested.&lt;/p&gt;
&lt;h2 id=&quot;what-id-want-the-diagram-to-tell-me&quot;&gt;What I’d want the diagram to tell me&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#what-id-want-the-diagram-to-tell-me&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;For each connection, show the source and destination, physical interface, logical network and failure boundary. For each number, say whether it is a port-rate sum, an allocation or a measured result.&lt;/p&gt;
&lt;p&gt;For each conclusion, distinguish a documented specification, a design assumption, a tested configuration and an accepted deployment. Those are useful answers to different questions.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;text-highlight&quot;&gt;[EDIT: add one customer-approved example once the exact platform and test profile are available]&lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#faq&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;does-an-ethernet-link-establish-ncp-acceptance&quot;&gt;Does an Ethernet link establish NCP acceptance?&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#does-an-ethernet-link-establish-ncp-acceptance&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;No. The complete applicable requirements and deployment conditions govern acceptance. &lt;a href=&quot;https://docs.nvidia.com/dsx/ncp/nvidia-requirements-for-ai-clouds/v2.4&quot; class=&quot;external&quot;&gt;NVIDIA’s v2.4 baseline&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt; extends well beyond the network hardware.&lt;/p&gt;
&lt;h3 id=&quot;is-the-tenant-network-another-physical-fabric&quot;&gt;Is the tenant network another physical fabric?&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#is-the-tenant-network-another-physical-fabric&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;It can be, but it can also be an overlay on TAN. State the isolation model and actual connections rather than assuming a separate tier of switches.&lt;/p&gt;
&lt;h3 id=&quot;where-should-i-go-next&quot;&gt;Where should I go next?&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#where-should-i-go-next&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Read &lt;a href=&quot;../posts/open-ethernet-ai-fabrics-outside-the-nvidia-box&quot; class=&quot;internal alias&quot; data-slug=&quot;posts/open-ethernet-ai-fabrics-outside-the-nvidia-box&quot;&gt;the open Ethernet fabric discussion&lt;/a&gt; for the independent design, or &lt;a href=&quot;../posts/open-ethernet-frontend-storage-oob-b300-cluster&quot; class=&quot;internal alias&quot; data-slug=&quot;posts/open-ethernet-frontend-storage-oob-b300-cluster&quot;&gt;the frontend, storage and OOB discussion&lt;/a&gt; for the surrounding networks.&lt;/p&gt;
&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#sources&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.nvidia.com/dsx/ncp/part-1-software-reference-guide/infrastructure-as-a-service&quot; class=&quot;external&quot;&gt;NVIDIA NCP network terminology&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.nvidia.com/enterprise-reference-architectures/nvl72-ai-factory/latest/components.html&quot; class=&quot;external&quot;&gt;NVIDIA NVL72 components&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.nvidia.com/dsx/ncp/inference-ra/home&quot; class=&quot;external&quot;&gt;NVIDIA inference architecture&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.nvidia.com/dsx/ncp/inference-provider-requirements/home&quot; class=&quot;external&quot;&gt;GB300 NVL72 provider requirements&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.nvidia.com/dsx/ncp/nvidia-requirements-for-ai-clouds/v2.4&quot; class=&quot;external&quot;&gt;Requirements for AI Clouds v2.4&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; ]]></description>
    <pubDate>Tue, 03 Nov 2026 19:00:00 GMT</pubDate>
  </item><item>
    <title>Open Ethernet, outside the NVIDIA box.</title>
    <link>https://nonblocking.pages.dev/posts/open-ethernet-ai-fabrics-outside-the-nvidia-box</link>
    <guid>https://nonblocking.pages.dev/posts/open-ethernet-ai-fabrics-outside-the-nvidia-box</guid>
    <description><![CDATA[ &lt;blockquote class=&quot;callout info&quot; data-callout=&quot;info&quot;&gt;
&lt;div class=&quot;callout-title&quot;&gt;
                  &lt;div class=&quot;callout-icon&quot;&gt;&lt;/div&gt;
                  &lt;div class=&quot;callout-title-inner&quot;&gt;&lt;p&gt;Disclosure &lt;/p&gt;&lt;/div&gt;
                  
                &lt;/div&gt;
&lt;div class=&quot;callout-content&quot;&gt;
&lt;p&gt;I’m a sales director at Edgecore Networks, which sells open networking switches, including some of the hardware discussed below. This is my personal blog. Views are my own, not Edgecore’s.&lt;/p&gt;
&lt;p&gt;I use large language models (LLMs) to help draft and edit these posts. The thoughts, ideas and opinions are my own.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This is my personal blog. I work in sales at Edgecore Networks, but these are my own opinions, not Edgecore’s, and &lt;span class=&quot;text-highlight&quot;&gt;[EDIT: nobody at Edgecore reviewed or approved this / EDIT if Edgecore did review it]&lt;/span&gt;. Nothing here is a price, a roadmap, a certification, or a promise. Specs are linked to public pages; check them yourself before you buy anything, from anyone.&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;tldr&quot;&gt;TL;DR&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#tldr&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;NCP names the switch.&lt;/strong&gt; NVIDIA’s published NCP design puts the east-west GPU fabric on InfiniBand (Quantum) or Spectrum-X, so a Broadcom Tomahawk switch is not part of an NCP reference architecture’s compute fabric unless a deployment-specific agreement identifies the affected requirement and approved exception.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A common open Ethernet pattern.&lt;/strong&gt; The pattern I keep seeing is a rail-optimized, non-blocking (1:1) leaf-spine on 51.2T switches running SONiC: a 64-port 800G leaf split 1:1 gives 64 NIC ports at 400G down and 32x800G up to the spines.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Congestion control hasn’t converged.&lt;/strong&gt; The classic recipe is PFC plus ECN/DCQCN; Meta ran its 400G RoCE fabric on PFC alone with DCQCN off; OpenAI and Microsoft describe production fabrics running lossy, with PFC disabled, using MRC.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The work is everything around the switch.&lt;/strong&gt; Optics, NIC to switch link recipes, PFC/ECN tuning, ECMP collisions on elephant flows, host settings and full-scale NCCL/RCCL validation are where FarmGPU and SAKURAONE spent their effort, in public.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;why-im-writing-this&quot;&gt;Why I’m writing this&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#why-im-writing-this&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I recently read FarmGPU’s post, &lt;a href=&quot;https://blog.farmgpu.com/building-an-ai-cluster-our-17-day-crash-course-in-open-networking/&quot; class=&quot;external&quot;&gt;&lt;em&gt;Building an AI Cluster: Our 17-Day Crash Course in Open Networking&lt;/em&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;, and kept nodding along. Optics that wouldn’t initialize. A ConnectX-7 that wouldn’t link to a SONiC switch until they forced the speed and turned off auto-negotiation. A BIOS setting that cost half the performance. Their line, “the network is about a lot more than just a switch,” is the most honest sentence I’ve read about AI infrastructure this year.&lt;/p&gt;
&lt;p&gt;I sell switches for a living, so you can discount my opinion accordingly. But I spend most of my week talking to people building GPU clusters &lt;span class=&quot;text-highlight&quot;&gt;[EDIT: confirm this line is accurate]&lt;/span&gt;, and the same questions come up every time. So I’m going to answer them here, once a month, as plainly as I can. First up: how are people building open Ethernet AI fabrics today if they’re &lt;em&gt;not&lt;/em&gt; building to NVIDIA’s Cloud Partner (NCP) designs, and where does a company like mine actually fit?&lt;/p&gt;
&lt;h2 id=&quot;first-the-boundary-so-nobody-is-misled&quot;&gt;First, the boundary, so nobody is misled&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#first-the-boundary-so-nobody-is-misled&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I’ll start with what I &lt;em&gt;can’t&lt;/em&gt; do, because I see this muddled constantly.&lt;/p&gt;
&lt;p&gt;NCP is a partner program for GPU clouds. It isn’t a switch certification. But if you are building a cluster that has to follow NCP’s published design, the east-west GPU fabric is spelled out. NVIDIA’s own NCP software reference guide lists the Cluster Interconnect Network as &lt;a href=&quot;https://docs.nvidia.com/dsx/ncp/part-1-software-reference-guide/infrastructure-as-a-service&quot; class=&quot;external&quot;&gt;“InfiniBand (Quantum) or Ethernet (SpectrumX)“&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;. NVIDIA’s GB300 NVL72 inference provider requirements make an &lt;a href=&quot;https://docs.nvidia.com/dsx/ncp/inference-provider-requirements/home&quot; class=&quot;external&quot;&gt;“East-west back-end RDMA fabric (InfiniBand or Spectrum-X)”&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt; a MUST. NVIDIA’s AI cloud requirements say a deployment-specific agreement doesn’t waive a baseline requirement &lt;a href=&quot;https://docs.nvidia.com/dsx/ncp/nvidia-requirements-for-ai-clouds/v2.4&quot; class=&quot;external&quot;&gt;unless it identifies the requirement and approved exception&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So no, a Broadcom Tomahawk switch is not part of an NCP reference architecture’s compute fabric. Anyone who tells you otherwise should show you the exception in writing.&lt;/p&gt;
&lt;p&gt;That’s fine. A lot of clusters don’t need to be NCP builds. This post is for them.&lt;/p&gt;
&lt;h2 id=&quot;who-is-building-outside-ncp&quot;&gt;Who is building outside NCP&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#who-is-building-outside-ncp&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;From the outside, three groups:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Operators who own their GPUs and their customers.&lt;/strong&gt; Their tenants care about throughput per dollar and uptime, not which badge is on the network.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Research, sovereign, and enterprise clusters&lt;/strong&gt; that want to run their own network stack the way they run their own Linux.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Non-NVIDIA GPU clusters&lt;/strong&gt;, where NVIDIA’s network designs don’t apply at all.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Two public examples are worth reading in full. FarmGPU built a B200 cluster on Celestica switches with SONiC and Hedgehog, and wrote down &lt;a href=&quot;https://blog.farmgpu.com/building-an-ai-cluster-our-17-day-crash-course-in-open-networking/&quot; class=&quot;external&quot;&gt;every lesson&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;. And Sakura Internet’s SAKURAONE is &lt;a href=&quot;https://arxiv.org/abs/2507.02124&quot; class=&quot;external&quot;&gt;100 nodes of eight H100s each on a rail-optimized, 800GbE leaf-spine running SONiC&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;. It placed &lt;a href=&quot;https://www.macnica.co.jp/public-relations/news/2026/148990/&quot; class=&quot;external&quot;&gt;49th on the TOP500 at ISC 2025&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt; &lt;span class=&quot;text-highlight&quot;&gt;[EDIT: confirm the TOP500 #49 cite against the Macnica release]&lt;/span&gt;. (Full disclosure: SAKURAONE runs on Edgecore AIS800-64O switches with Enterprise SONiC, per &lt;a href=&quot;https://www.macnica.co.jp/public-relations/news/2026/148990/&quot; class=&quot;external&quot;&gt;Macnica’s release&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;. I’m citing it because it’s public, not because it’s mine.)&lt;/p&gt;
&lt;h2 id=&quot;the-four-networks-in-one-paragraph&quot;&gt;The four networks, in one paragraph&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#the-four-networks-in-one-paragraph&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;NVIDIA’s NCP guide describes &lt;a href=&quot;https://docs.nvidia.com/dsx/ncp/software-reference-guide/data-center-architecture&quot; class=&quot;external&quot;&gt;four networks&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;, and it’s a helpful map even if you’re not building to it:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;../glossary#scale-up&quot; class=&quot;internal alias&quot; data-slug=&quot;glossary&quot;&gt;Scale-up&lt;/a&gt; (NVLink).&lt;/strong&gt; GPUs sharing memory inside a server or rack. This is not Ethernet, and on NVIDIA GPUs nobody like me plays here.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The &lt;a href=&quot;../glossary#scale-out--backend--east-west-compute-fabric&quot; class=&quot;internal alias&quot; data-slug=&quot;glossary&quot;&gt;back-end, east-west fabric&lt;/a&gt;.&lt;/strong&gt; One NIC per GPU, RDMA between servers. This is where the money and the pain are.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The &lt;a href=&quot;../glossary#frontend--north-south-converged&quot; class=&quot;internal alias&quot; data-slug=&quot;glossary&quot;&gt;front-end&lt;/a&gt;.&lt;/strong&gt; Storage, in-band management, tenant traffic.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;../glossary#oob--management-smn&quot; class=&quot;internal alias&quot; data-slug=&quot;glossary&quot;&gt;Out-of-band management&lt;/a&gt;.&lt;/strong&gt; Boring 1G Ethernet to every BMC and PDU, which you will be very grateful for at 2am.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Open Ethernet can live in 2, 3 and 4 when you’re not bound by a program that names the switch.&lt;/p&gt;
&lt;h2 id=&quot;the-pattern-i-keep-seeing&quot;&gt;The pattern I keep seeing&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#the-pattern-i-keep-seeing&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This isn’t an official reference architecture. It’s the rough shape that keeps showing up on whiteboards.&lt;/p&gt;
&lt;pre&gt;&lt;button class=&quot;expand-button&quot; aria-label=&quot;Expand mermaid diagram&quot; data-view-component&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;currentColor&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M3.72 3.72a.75.75 0 011.06 1.06L2.56 7h10.88l-2.22-2.22a.75.75 0 011.06-1.06l3.5 3.5a.75.75 0 010 1.06l-3.5 3.5a.75.75 0 11-1.06-1.06l2.22-2.22H2.56l2.22 2.22a.75.75 0 11-1.06 1.06l-3.5-3.5a.75.75 0 010-1.06l3.5-3.5z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;code class=&quot;mermaid&quot; data-clipboard=&quot;&amp;#x22;flowchart TB\r\n  subgraph Spines[\&amp;#x22;Spine layer (51.2T, 800G ports)\&amp;#x22;]\r\n    S1[Spine 1]\r\n    S2[Spine 2]\r\n  end\r\n  subgraph Leaves[\&amp;#x22;Rail leaves (one leaf per GPU rail, 1:1)\&amp;#x22;]\r\n    L1[Rail 1 leaf]\r\n    L2[Rail 2 leaf]\r\n    L3[Rail 3 leaf]\r\n    L4[Rail 4 leaf]\r\n  end\r\n  subgraph SA[\&amp;#x22;Server A\&amp;#x22;]\r\n    A1[GPU1 + NIC]\r\n    A2[GPU2 + NIC]\r\n    A3[GPU3 + NIC]\r\n    A4[GPU4 + NIC]\r\n  end\r\n  subgraph SB[\&amp;#x22;Server B\&amp;#x22;]\r\n    B1[GPU1 + NIC]\r\n    B2[GPU2 + NIC]\r\n    B3[GPU3 + NIC]\r\n    B4[GPU4 + NIC]\r\n  end\r\n  A1 --- L1\r\n  B1 --- L1\r\n  A2 --- L2\r\n  B2 --- L2\r\n  A3 --- L3\r\n  B3 --- L3\r\n  A4 --- L4\r\n  B4 --- L4\r\n  L1 --- S1\r\n  L1 --- S2\r\n  L2 --- S1\r\n  L2 --- S2\r\n  L3 --- S1\r\n  L3 --- S2\r\n  L4 --- S1\r\n  L4 --- S2&amp;#x22;&quot;&gt;flowchart TB
  subgraph Spines[&quot;Spine layer (51.2T, 800G ports)&quot;]
    S1[Spine 1]
    S2[Spine 2]
  end
  subgraph Leaves[&quot;Rail leaves (one leaf per GPU rail, 1:1)&quot;]
    L1[Rail 1 leaf]
    L2[Rail 2 leaf]
    L3[Rail 3 leaf]
    L4[Rail 4 leaf]
  end
  subgraph SA[&quot;Server A&quot;]
    A1[GPU1 + NIC]
    A2[GPU2 + NIC]
    A3[GPU3 + NIC]
    A4[GPU4 + NIC]
  end
  subgraph SB[&quot;Server B&quot;]
    B1[GPU1 + NIC]
    B2[GPU2 + NIC]
    B3[GPU3 + NIC]
    B4[GPU4 + NIC]
  end
  A1 --- L1
  B1 --- L1
  A2 --- L2
  B2 --- L2
  A3 --- L3
  B3 --- L3
  A4 --- L4
  B4 --- L4
  L1 --- S1
  L1 --- S2
  L2 --- S1
  L2 --- S2
  L3 --- S1
  L3 --- S2
  L4 --- S1
  L4 --- S2
&lt;/code&gt;&lt;div id=&quot;mermaid-container&quot; role=&quot;dialog&quot;&gt;&lt;div id=&quot;mermaid-space&quot;&gt;&lt;div class=&quot;mermaid-content&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;A rail-optimized back end, simplified to four rails and two servers. Real HGX servers have eight GPUs and eight rails; front-end and out-of-band networks are separate and not shown.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;../glossary#rail-optimized&quot; class=&quot;internal alias&quot; data-slug=&quot;glossary&quot;&gt;Rail-optimized&lt;/a&gt; leaf-spine, non-blocking.&lt;/strong&gt; GPU 1 in every server goes to leaf 1, GPU 2 to leaf 2, and so on. Same-rail traffic within a shared leaf group is one hop, which is why SAKURAONE describes its fabric as &lt;a href=&quot;https://arxiv.org/abs/2507.02124&quot; class=&quot;external&quot;&gt;“Rail-Optimized” with full bisection&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;. Back ends run 1:1. Don’t oversubscribe the thing you bought GPUs to feed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;51.2T switches at 800G, broken out to 400G NICs.&lt;/strong&gt; A 64-port 800G Tomahawk 5 box can run &lt;a href=&quot;https://www.edge-core.com/product/ais800-64o/&quot; class=&quot;external&quot;&gt;64x800G or 128x400G&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;. The napkin math: split a 64-port leaf 1:1 and you get 32 ports down, broken out 2x400G. That’s 64 NIC ports per rail leaf, with 32x800G up to the spines. FarmGPU’s B200 nodes have &lt;a href=&quot;https://blog.farmgpu.com/building-an-ai-cluster-our-17-day-crash-course-in-open-networking/&quot; class=&quot;external&quot;&gt;eight 400G ConnectX-7 NICs&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;, so you can see how quickly the leaf count follows the GPU count.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;../glossary#rocev2&quot; class=&quot;internal alias&quot; data-slug=&quot;glossary&quot;&gt;RoCEv2&lt;/a&gt;, usually made lossless on purpose.&lt;/strong&gt; The classic recipe is PFC to keep RDMA packets from dropping, plus ECN marking so the NICs back off (DCQCN) before the PFC pauses start. The biggest operators have since diverged: Meta &lt;a href=&quot;https://engineering.fb.com/2024/08/05/data-center-engineering/roce-network-distributed-ai-training-at-scale/&quot; class=&quot;external&quot;&gt;ran its 400G RoCE fabric on PFC alone, with DCQCN turned off&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;, and OpenAI and Microsoft now run their newest fabrics &lt;a href=&quot;https://arxiv.org/html/2605.04333v1&quot; class=&quot;external&quot;&gt;lossy, with PFC disabled, using a multipath transport called MRC&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;. These are different transport and workload designs; their settings are not interchangeable. There’s a good plain-English explainer, with the PFC-storm warning, on &lt;a href=&quot;https://www.edge-core.com/blogs/powering-ai-at-scale-the-indispensable-role-of-data-center-bridging-with-pfc-and-ecn-for-large-gpu-deployments/&quot; class=&quot;external&quot;&gt;Edgecore’s blog&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;. Yes, it’s my employer’s. It’s still a good explainer.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Load balancing that understands AI traffic.&lt;/strong&gt; AI collectives are a few elephant flows, and classic ECMP hashing piles them onto the same link. Tomahawk-class switches offer &lt;a href=&quot;https://www.edge-core.com/product/ais800-64o/&quot; class=&quot;external&quot;&gt;dynamic load balancing&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;, and newer approaches spray packets based on congestion. FarmGPU’s own table says to &lt;a href=&quot;https://blog.farmgpu.com/building-an-ai-cluster-our-17-day-crash-course-in-open-networking/&quot; class=&quot;external&quot;&gt;turn on RoCE QPN hashing from day one&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;../glossary#sonic--enterprise-sonic&quot; class=&quot;internal alias&quot; data-slug=&quot;glossary&quot;&gt;SONiC&lt;/a&gt; on whitebox.&lt;/strong&gt; The switch ships with &lt;a href=&quot;../glossary#onie&quot; class=&quot;internal alias&quot; data-slug=&quot;glossary&quot;&gt;ONIE&lt;/a&gt; and you load the NOS. That’s what lets you change vendors without changing how you operate.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Separate front-end and 1G OOB.&lt;/strong&gt; Keep storage and tenant traffic off the GPU fabric unless you have a really good reason.&lt;/p&gt;
&lt;p&gt;Meta’s example also depends on workload and receiver coordination. MRC is a distinct multipath transport with specific implementation requirements, not a generic SONiC setting. Neither is a portable instruction to disable congestion control.&lt;/p&gt;
&lt;h2 id=&quot;where-the-work-actually-is&quot;&gt;Where the work actually is&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#where-the-work-actually-is&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Here’s my version of FarmGPU’s table. It’s what I’d plan time for before the GPUs arrive.&lt;/p&gt;








































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Area&lt;/th&gt;&lt;th&gt;What bites people&lt;/th&gt;&lt;th&gt;What I’d do&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Optics&lt;/td&gt;&lt;td&gt;Lead times, interop, dust, MPO polarity&lt;/td&gt;&lt;td&gt;Validate &lt;em&gt;every&lt;/em&gt; optic SKU on the exact switch; inspect and clean everything&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;NIC ↔ switch link&lt;/td&gt;&lt;td&gt;Speed, auto-neg, breakout order&lt;/td&gt;&lt;td&gt;Write the link recipe down once and automate it&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lossless config&lt;/td&gt;&lt;td&gt;PFC/ECN thresholds that are “almost right”&lt;/td&gt;&lt;td&gt;Tune with the NIC’s congestion control, not separately&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Load balancing&lt;/td&gt;&lt;td&gt;ECMP collisions on elephant flows&lt;/td&gt;&lt;td&gt;Turn on DLB/spraying or QPN-aware hashing early&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Host&lt;/td&gt;&lt;td&gt;BIOS, kernel, driver, peermem&lt;/td&gt;&lt;td&gt;Treat the host as part of the network&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Validation&lt;/td&gt;&lt;td&gt;”It links” ≠ “it performs”&lt;/td&gt;&lt;td&gt;Run NCCL/RCCL all-reduce at full scale before you hand it over&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;None of this is exotic. On SAKURAONE, the integrator &lt;a href=&quot;https://www.macnica.co.jp/public-relations/news/2026/148990/&quot; class=&quot;external&quot;&gt;proposed PFC and ECN parameter settings and worked chip-level troubleshooting with Edgecore&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;. FarmGPU had their switch, NOS, silicon and optics vendors &lt;a href=&quot;https://blog.farmgpu.com/building-an-ai-cluster-our-17-day-crash-course-in-open-networking/&quot; class=&quot;external&quot;&gt;on calls together for days&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;. Open networking isn’t “no help.” It’s choosing which people help you, and getting them to talk to each other.&lt;/p&gt;
&lt;h2 id=&quot;where-i-think-edgecore-fits&quot;&gt;Where I think Edgecore fits&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#where-i-think-edgecore-fits&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;My opinion, with links so you can check me &lt;span class=&quot;text-highlight&quot;&gt;[EDIT: re-check every product page below right before publishing]&lt;/span&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Back-end leaf and spine at 51.2T: the &lt;a href=&quot;https://www.edge-core.com/product/ais800-64o/&quot; class=&quot;external&quot;&gt;AIS800-64O&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt; (64x OSFP800) and &lt;a href=&quot;https://www.edge-core.com/product/ais800-64d/&quot; class=&quot;external&quot;&gt;AIS800-64D&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt; (64x QSFP-DD800). Both are Tomahawk 5, 2RU, with RoCEv2, DLB and in-band telemetry listed on the product pages.&lt;/li&gt;
&lt;li&gt;Smaller pods or 1RU leaves: the &lt;a href=&quot;https://www.edge-core.com/product/ais800-32o/&quot; class=&quot;external&quot;&gt;AIS800-32O&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt; and &lt;a href=&quot;https://www.edge-core.com/product/ais800-32d/&quot; class=&quot;external&quot;&gt;AIS800-32D&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;, with 32x800G on Tomahawk 5.&lt;/li&gt;
&lt;li&gt;102.4T designs: the &lt;a href=&quot;https://www.edge-core.com/product/ais1600-64o/&quot; class=&quot;external&quot;&gt;AIS1600-64O&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt; (64x1.6T) and &lt;a href=&quot;https://www.edge-core.com/product/ais800-128o/&quot; class=&quot;external&quot;&gt;AIS800-128O&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt; (128x800G), both Tomahawk 6, &lt;a href=&quot;https://www.edge-core.com/press-release/edgecore-networks-sets-new-benchmark-for-ai-infrastructure-with-worlds-first-102-4t-open-networking-switches/&quot; class=&quot;external&quot;&gt;announced in February&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;. The 128-port radix is the interesting part. More ports per box means fewer tiers and fewer hops for a given GPU count.&lt;/li&gt;
&lt;li&gt;NOS: SONiC. Edgecore &lt;a href=&quot;https://www.edge-core.com/press-release/edgecore-networks-strategic-move-to-accelerate-the-maturity-and-broader-adoption-of-sonic/&quot; class=&quot;external&quot;&gt;announced it would collaborate with Broadcom to deliver Enterprise SONiC&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Edgecore’s own published data: an AIS800-64O / Enterprise SONiC test on AMD MI300X with Broadcom Thor 2 NICs. It showed &lt;a href=&quot;https://www.edge-core.com/press-release/edgecore-networks-demonstrates-up-to-35-6-performance-improvement-in-collective-communication-benchmark/&quot; class=&quot;external&quot;&gt;up to 35.6% better RCCL collective performance&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt; with congestion-aware packet spraying than with traditional load balancing. Read the caveats: “up to,” best case at 1:1, AMD, not ConnectX.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And where we &lt;strong&gt;don’t&lt;/strong&gt; fit: NVLink scale-up, and the compute fabric of a build that has to be NCP-compliant. I’d rather lose a deal than have you find that out after the fact.&lt;/p&gt;
&lt;h2 id=&quot;whats-known-whats-inferred-what-nobody-has-published&quot;&gt;What’s known, what’s inferred, what nobody has published&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#whats-known-whats-inferred-what-nobody-has-published&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Known (public docs): NCP’s east-west fabric is Quantum InfiniBand or Spectrum-X. Tomahawk 5 + SONiC + ConnectX-7 backends run in production (FarmGPU, SAKURAONE).&lt;/li&gt;
&lt;li&gt;Inferred: a ConnectX NIC on a non-Spectrum switch gives you standard RoCEv2 plus the switch’s own load balancing, not Spectrum-X’s end-to-end adaptive routing.&lt;/li&gt;
&lt;li&gt;Not established by the sources reviewed here: a production-validated lossless RoCEv2 config for Tomahawk 5 with ConnectX-8. If you have one, I’d love to compare notes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;what-id-ask-any-vendor-including-us&quot;&gt;What I’d ask any vendor, including us&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#what-id-ask-any-vendor-including-us&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Which &lt;strong&gt;exact&lt;/strong&gt; optics have you validated on this switch, and at which firmware?&lt;/li&gt;
&lt;li&gt;Which NIC, NOS version, and PFC/ECN/load-balancing config did you test, and can I have it?&lt;/li&gt;
&lt;li&gt;Show me NCCL (or RCCL) all-reduce numbers at a scale near mine.&lt;/li&gt;
&lt;li&gt;Who picks up the phone when the switch vendor, the NIC vendor and the optics vendor all say it’s the other guy?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If a vendor can’t answer those in writing, that’s your answer.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#faq&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;can-a-broadcom-tomahawk-switch-be-used-in-the-compute-fabric-of-an-nvidia-ncp-build&quot;&gt;Can a Broadcom Tomahawk switch be used in the compute fabric of an NVIDIA NCP build?&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#can-a-broadcom-tomahawk-switch-be-used-in-the-compute-fabric-of-an-nvidia-ncp-build&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Not under NCP’s published design. NVIDIA’s NCP software reference guide lists the Cluster Interconnect Network as InfiniBand (Quantum) or Ethernet (Spectrum-X), and its inference provider requirements make an InfiniBand or Spectrum-X east-west fabric a MUST. A baseline requirement is only waived by an agreement that identifies the affected requirement and approved exception.&lt;/p&gt;
&lt;h3 id=&quot;what-does-an-open-ethernet-ai-back-end-fabric-usually-look-like&quot;&gt;What does an open Ethernet AI back-end fabric usually look like?&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#what-does-an-open-ethernet-ai-back-end-fabric-usually-look-like&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;A rail-optimized, non-blocking (1:1) leaf-spine built on 51.2T switches at 800G, broken out to 400G NICs, running RoCEv2 with tuned congestion control, AI-aware load balancing, and SONiC loaded on whitebox switches via ONIE, with a separate front-end and 1G out-of-band network.&lt;/p&gt;
&lt;h3 id=&quot;do-rocev2-ai-fabrics-need-pfc&quot;&gt;Do RoCEv2 AI fabrics need PFC?&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#do-rocev2-ai-fabrics-need-pfc&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The classic recipe uses PFC plus ECN and DCQCN, but large operators have diverged: Meta ran its 400G RoCE fabric on PFC alone with DCQCN off, and OpenAI and Microsoft describe production fabrics running lossy with PFC disabled, using a multipath transport called MRC.&lt;/p&gt;
&lt;h3 id=&quot;where-does-edgecore-not-fit-in-an-ai-cluster&quot;&gt;Where does Edgecore not fit in an AI cluster?&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#where-does-edgecore-not-fit-in-an-ai-cluster&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;NVLink scale-up, and the compute fabric of a build that has to follow NCP’s published design.&lt;/p&gt;
&lt;h2 id=&quot;the-upshot&quot;&gt;The upshot&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#the-upshot&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;FarmGPU said it best: the pain is real, but it’s a one-time cost once somebody writes the recipe down. That’s the point of this blog. Open Ethernet AI fabrics are being built today, in public, at real scale. They just aren’t NCP builds, and they shouldn’t pretend to be.&lt;/p&gt;
&lt;p&gt;Next month I want to get into the front-end and storage network, which is the part everyone under-designs. If you’re building one of these and want to compare notes, my inbox is open &lt;span class=&quot;text-highlight&quot;&gt;[EDIT: add contact email or link]&lt;/span&gt;. No slide deck, I promise.&lt;/p&gt;
&lt;p&gt;Elliot&lt;/p&gt; ]]></description>
    <pubDate>Tue, 03 Nov 2026 19:00:00 GMT</pubDate>
  </item><item>
    <title>Everything around the GPU fabric.</title>
    <link>https://nonblocking.pages.dev/posts/open-ethernet-frontend-storage-oob-b300-cluster</link>
    <guid>https://nonblocking.pages.dev/posts/open-ethernet-frontend-storage-oob-b300-cluster</guid>
    <description><![CDATA[ &lt;blockquote class=&quot;callout info&quot; data-callout=&quot;info&quot;&gt;
&lt;div class=&quot;callout-title&quot;&gt;
                  &lt;div class=&quot;callout-icon&quot;&gt;&lt;/div&gt;
                  &lt;div class=&quot;callout-title-inner&quot;&gt;&lt;p&gt;Disclosure &lt;/p&gt;&lt;/div&gt;
                  
                &lt;/div&gt;
&lt;div class=&quot;callout-content&quot;&gt;
&lt;p&gt;I’m a sales director at Edgecore Networks, which sells open networking switches, including some of the hardware discussed below. This is my personal blog. Views are my own, not Edgecore’s.&lt;/p&gt;
&lt;p&gt;I use large language models (LLMs) to help draft and edit these posts. The thoughts, ideas and opinions are my own.&lt;/p&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;tldr&quot;&gt;TL;DR&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#tldr&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Treat each NCP placement as its own design decision.&lt;/strong&gt; &lt;a href=&quot;https://docs.nvidia.com/dsx/ncp/part-1-software-reference-guide/infrastructure-as-a-service&quot; class=&quot;external&quot;&gt;NVIDIA’s NCP guide&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt; lists the Cluster Interconnect Network as InfiniBand (Quantum) or Spectrum-X, and the Secure Management Network as “Ethernet (1GbE)” with no vendor. The Tenant Access Network is listed as “Ethernet (Spectrum)”, and public documentation does not establish acceptance of a substitute switch.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Count frontend links separately from usable throughput.&lt;/strong&gt; Using &lt;a href=&quot;https://docs.nvidia.com/enterprise-reference-architectures/hgx-ai-factory/latest/network-logical-architecture.html&quot; class=&quot;external&quot;&gt;NVIDIA’s HGX B300 interfaces&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;, a 32-node HGX B300 cluster puts 64 x 400G frontend links (25.6 Tb/s) next to 204.8 Tb/s of ConnectX-8 bandwidth. A pair of 64-port 800G switches covers it with ports to spare. The hard part is BGP/EVPN and the BlueField-3 DPU, which NET-1 makes a MUST for the cited GB300 NVL72 provider profile.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Storage forces a choice before cabling: RoCE or TCP.&lt;/strong&gt; If storage rides the converged frontend with RDMA, you are running a lossless class next to tenant TCP on the same switches, and that needs testing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OOB is bigger than everyone draws it.&lt;/strong&gt; &lt;a href=&quot;https://docs.nvidia.com/enterprise-reference-architectures/hgx-ai-factory/latest/network-logical-architecture.html&quot; class=&quot;external&quot;&gt;NVIDIA counts six 1G management connections per HGX B300 server&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;: 192 ports for 32 servers before a single switch, PDU or console port.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;why-im-writing-this&quot;&gt;Why I’m writing this&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#why-im-writing-this&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In my &lt;a href=&quot;../posts/open-ethernet-ai-fabrics-outside-the-nvidia-box&quot; class=&quot;internal alias&quot; data-slug=&quot;posts/open-ethernet-ai-fabrics-outside-the-nvidia-box&quot;&gt;last post&lt;/a&gt; I promised the frontend and storage network next. The most common reply was fair: “Our build has to follow NCP, so the GPU fabric is Spectrum-X. Is anything left for open networking?”&lt;/p&gt;
&lt;p&gt;Yes, and it’s not small. A GPU cluster has &lt;a href=&quot;https://docs.nvidia.com/dsx/ncp/software-reference-guide/data-center-architecture&quot; class=&quot;external&quot;&gt;four networks&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;, with distinct requirements for NVLink &lt;a href=&quot;../glossary#scale-up&quot; class=&quot;internal alias&quot; data-slug=&quot;glossary&quot;&gt;scale-up&lt;/a&gt; and the &lt;a href=&quot;../glossary#cin-cluster-interconnect-network&quot; class=&quot;internal alias&quot; data-slug=&quot;glossary&quot;&gt;CIN&lt;/a&gt;. Frontend and management substitutions still need deployment acceptance. This post examines those candidate placements and storage, using a 32-node B300 design I worked on: 32 HGX B300 servers, 256 GPUs, GPU fabric held constant as Spectrum-X.&lt;/p&gt;
&lt;h2 id=&quot;first-the-boundary&quot;&gt;First, the boundary&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#first-the-boundary&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;NVIDIA’s NCP Part 1 guide has a “Data Centre Networks” table. It lists the CIN as &lt;a href=&quot;https://docs.nvidia.com/dsx/ncp/part-1-software-reference-guide/infrastructure-as-a-service&quot; class=&quot;external&quot;&gt;“InfiniBand (Quantum) or Ethernet (SpectrumX)”&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;, the &lt;a href=&quot;../glossary#tan-tenant-access-network&quot; class=&quot;internal alias&quot; data-slug=&quot;glossary&quot;&gt;TAN&lt;/a&gt; as “Ethernet (Spectrum)”, and the Secure Management Network as “Ethernet (1GbE)” with no vendor. The data center architecture page says &lt;a href=&quot;https://docs.nvidia.com/dsx/ncp/software-reference-guide/data-center-architecture&quot; class=&quot;external&quot;&gt;“The TAN and SMN are always Ethernet”&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So I won’t tell you NCP “defines nothing” for the frontend. It names Spectrum in a reference table. The OOB row names no vendor, but this does not establish acceptance of an Edgecore substitution. The &lt;a href=&quot;../glossary#ncp-hardware-reference-design&quot; class=&quot;internal alias&quot; data-slug=&quot;glossary&quot;&gt;NCP Hardware Reference Design&lt;/a&gt; is behind a partner login, and I haven’t read it. If your build has to claim compliance, get the frontend and OOB switch choice approved in writing.&lt;/p&gt;
&lt;p&gt;One more honest note. NVIDIA’s &lt;a href=&quot;https://docs.nvidia.com/enterprise-reference-architectures/hgx-ai-factory/latest/network-logical-architecture.html&quot; class=&quot;external&quot;&gt;HGX B300 Enterprise RA&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt; uses SN5600 switches for the converged fabric and SN2201 for OOB. Swap those and you are following its topology, not the RA.&lt;/p&gt;
&lt;pre&gt;&lt;button class=&quot;expand-button&quot; aria-label=&quot;Expand mermaid diagram&quot; data-view-component&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;currentColor&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M3.72 3.72a.75.75 0 011.06 1.06L2.56 7h10.88l-2.22-2.22a.75.75 0 011.06-1.06l3.5 3.5a.75.75 0 010 1.06l-3.5 3.5a.75.75 0 11-1.06-1.06l2.22-2.22H2.56l2.22 2.22a.75.75 0 11-1.06 1.06l-3.5-3.5a.75.75 0 010-1.06l3.5-3.5z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;code class=&quot;mermaid&quot; data-clipboard=&quot;&amp;#x22;flowchart TB\r\n  subgraph Locked[\&amp;#x22;Named by NVIDIA for NCP builds\&amp;#x22;]\r\n    BE[\&amp;#x22;GPU fabric (CIN)&lt;br/&gt;Spectrum-X or Quantum\&amp;#x22;]\r\n  end\r\n  subgraph Open[\&amp;#x22;Where open Ethernet can fit\&amp;#x22;]\r\n    FE[\&amp;#x22;Frontend / converged pair&lt;br/&gt;2 x 64-port 800G switches\&amp;#x22;]\r\n    OOB[\&amp;#x22;OOB / SMN&lt;br/&gt;48-port 1G switches\&amp;#x22;]\r\n  end\r\n  SRV[\&amp;#x22;HGX B300 server&lt;br/&gt;8 GPUs\&amp;#x22;]\r\n  ST[\&amp;#x22;Storage servers\&amp;#x22;]\r\n  BR[\&amp;#x22;Border / internet\&amp;#x22;]\r\n  CON[\&amp;#x22;Console server\&amp;#x22;]\r\n  SRV -- \&amp;#x22;8 x ConnectX-8\&amp;#x22; --&gt; BE\r\n  SRV -- \&amp;#x22;BlueField-3 DPU, 2 x 400G\&amp;#x22; --&gt; FE\r\n  ST --- FE\r\n  FE --- BR\r\n  SRV -- \&amp;#x22;BMCs, 1G\&amp;#x22; --&gt; OOB\r\n  FE -. \&amp;#x22;mgmt port\&amp;#x22; .-&gt; OOB\r\n  BE -. \&amp;#x22;mgmt port\&amp;#x22; .-&gt; OOB\r\n  CON -. \&amp;#x22;serial\&amp;#x22; .-&gt; FE\r\n  CON -. \&amp;#x22;serial\&amp;#x22; .-&gt; OOB&amp;#x22;&quot;&gt;flowchart TB
  subgraph Locked[&quot;Named by NVIDIA for NCP builds&quot;]
    BE[&quot;GPU fabric (CIN)&amp;#x3C;br/&gt;Spectrum-X or Quantum&quot;]
  end
  subgraph Open[&quot;Where open Ethernet can fit&quot;]
    FE[&quot;Frontend / converged pair&amp;#x3C;br/&gt;2 x 64-port 800G switches&quot;]
    OOB[&quot;OOB / SMN&amp;#x3C;br/&gt;48-port 1G switches&quot;]
  end
  SRV[&quot;HGX B300 server&amp;#x3C;br/&gt;8 GPUs&quot;]
  ST[&quot;Storage servers&quot;]
  BR[&quot;Border / internet&quot;]
  CON[&quot;Console server&quot;]
  SRV -- &quot;8 x ConnectX-8&quot; --&gt; BE
  SRV -- &quot;BlueField-3 DPU, 2 x 400G&quot; --&gt; FE
  ST --- FE
  FE --- BR
  SRV -- &quot;BMCs, 1G&quot; --&gt; OOB
  FE -. &quot;mgmt port&quot; .-&gt; OOB
  BE -. &quot;mgmt port&quot; .-&gt; OOB
  CON -. &quot;serial&quot; .-&gt; FE
  CON -. &quot;serial&quot; .-&gt; OOB
&lt;/code&gt;&lt;div id=&quot;mermaid-container&quot; role=&quot;dialog&quot;&gt;&lt;div id=&quot;mermaid-space&quot;&gt;&lt;div class=&quot;mermaid-content&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;One server, three networks you can touch. NVLink scale-up and the storage system’s internal network are not shown.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;the-frontend-small-pipes-hard-rules&quot;&gt;The frontend: small pipes, hard rules&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#the-frontend-small-pipes-hard-rules&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;what-it-carries&quot;&gt;What it carries&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#what-it-carries&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;NVIDIA’s HGX B300 RA calls it the CPU Converged (North/South) network and says it &lt;a href=&quot;https://docs.nvidia.com/enterprise-reference-architectures/hgx-ai-factory/latest/network-logical-architecture.html&quot; class=&quot;external&quot;&gt;“is used for node communications with compute, storage, in-band management, and end-user connections.”&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt; On NCP, &lt;a href=&quot;../glossary#in-band-management&quot; class=&quot;internal alias&quot; data-slug=&quot;glossary&quot;&gt;in-band management&lt;/a&gt;, storage, and tenant traffic all ride it.&lt;/p&gt;
&lt;h3 id=&quot;the-sizing-math-for-32-nodes&quot;&gt;The sizing math for 32 nodes&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#the-sizing-math-for-32-nodes&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Each B300 server in that RA has &lt;a href=&quot;https://docs.nvidia.com/enterprise-reference-architectures/hgx-ai-factory/latest/network-logical-architecture.html&quot; class=&quot;external&quot;&gt;“One NVIDIA BlueField-3 B3240 dual port 400 GbE DPU”&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;, connected &lt;a href=&quot;https://docs.nvidia.com/enterprise-reference-architectures/hgx-ai-factory/latest/network-logical-architecture.html&quot; class=&quot;external&quot;&gt;“using two 400 GbE ports to two separate switches”&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;. These are port line rates, not a guarantee that one BlueField-3 delivers 800 Gb/s aggregate host throughput. NVIDIA’s card-limit descriptions vary by page and attachment profile; confirm the selected card and configuration. See the &lt;a href=&quot;https://docs.nvidia.com/enterprise-reference-architectures/nvl72-ai-factory/latest/networking-hardware.html&quot; class=&quot;external&quot;&gt;NVL72 networking hardware description&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;32 servers x 2 = &lt;strong&gt;64 x 400G links&lt;/strong&gt;, 32 to each switch, &lt;strong&gt;25.6 Tb/s&lt;/strong&gt; total.&lt;/li&gt;
&lt;li&gt;The GPU fabric: 32 servers x 8 ConnectX-8 at 800G (configured as 2x400G) = &lt;strong&gt;204.8 Tb/s&lt;/strong&gt;. That is a 1:8 ratio of nominal link rates, not a measure of usable BlueField throughput. NVIDIA’s own 4-server block shows the same ratio: 3.2 Tb/s converged next to 25.6 Tb/s compute.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The design I worked on used two &lt;a href=&quot;https://www.edge-core.com/product/ais800-64o/&quot; class=&quot;external&quot;&gt;AIS800-64O&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt; switches for the frontend. Each has 64 OSFP800 ports, each runnable as 2 x 400G. The 32 server links on each switch take 16 ports. That leaves 48 ports per switch for storage, the link between the pair, and uplinks to the border &lt;span class=&quot;text-highlight&quot;&gt;[EDIT: border uplink count and speed for the example]&lt;/span&gt;. NVIDIA’s own 32-node page calls for a &lt;a href=&quot;https://docs.nvidia.com/enterprise-reference-architectures/hgx-ai-factory/latest/network-logical-architecture.html&quot; class=&quot;external&quot;&gt;“cost-efficient converged two-switch fabric”&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;, so the shape matches. At 64 nodes the design adds a frontend spine pair and a separate storage leaf pair.&lt;/p&gt;
&lt;h3 id=&quot;the-hard-parts&quot;&gt;The hard parts&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#the-hard-parts&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;NET-1 makes the DPU mandatory in the cited GB300 NVL72 profile.&lt;/strong&gt; NVIDIA’s inference provider requirements, written for NCPs building GB300 NVL72 clusters, make NET-1 a MUST: &lt;a href=&quot;https://docs.nvidia.com/dsx/ncp/inference-provider-requirements/home&quot; class=&quot;external&quot;&gt;“North-south through the BlueField-3 DPU enforcing zero trust and host multi-tenancy; carries control plane, storage, external connectivity”&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;. NET-5 makes BGP with “IPv4 and EVPN/VPNv4 address families” a MUST, and NET-6 says multitenancy SHOULD use BGP underlay, &lt;a href=&quot;../glossary#evpn-vxlan&quot; class=&quot;internal alias&quot; data-slug=&quot;glossary&quot;&gt;EVPN, VXLAN&lt;/a&gt; overlay and DPU ACLs.&lt;/p&gt;
&lt;p&gt;My inference: if the DPU terminates the overlay, the leaf is mostly a BGP underlay router. If the leaf is the VTEP, its EVPN implementation is the product. Know which one you have before you pick a NOS.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dual homing.&lt;/strong&gt; Two links to two switches means MLAG, EVPN multihoming, or routing to the host. Each fails differently. Pick one and pull cables during testing.&lt;/p&gt;
&lt;h2 id=&quot;storage-converged-until-it-isnt&quot;&gt;Storage: converged until it isn’t&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#storage-converged-until-it-isnt&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;what-it-carries-1&quot;&gt;What it carries&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#what-it-carries-1&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Checkpoints, datasets, model weights. The NCP guide calls storage the TAN’s &lt;a href=&quot;https://docs.nvidia.com/dsx/ncp/software-reference-guide/data-center-architecture&quot; class=&quot;external&quot;&gt;“primary consumer”&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;. In the 32-node design, four storage servers dual home to the same frontend pair &lt;span class=&quot;text-highlight&quot;&gt;[EDIT: storage vendor, NIC speed and ports per storage server]&lt;/span&gt;. At 64 nodes storage gets its own &lt;a href=&quot;../glossary#storage-fabric&quot; class=&quot;internal alias&quot; data-slug=&quot;glossary&quot;&gt;storage fabric&lt;/a&gt; leaf pair, uplinked to the frontend spines.&lt;/p&gt;
&lt;h3 id=&quot;roce-or-tcp&quot;&gt;RoCE or TCP&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#roce-or-tcp&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This is the decision that drives switch config. &lt;a href=&quot;https://docs.nvidia.com/gpudirect-storage/overview-guide/index.html&quot; class=&quot;external&quot;&gt;GPUDirect Storage&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt; enables &lt;a href=&quot;https://docs.nvidia.com/gpudirect-storage/overview-guide/index.html&quot; class=&quot;external&quot;&gt;“a direct data path for direct memory access (DMA) transfers between GPU memory and storage, which avoids a bounce buffer through the CPU.”&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt; The RDMA flavors of that path want a tuned &lt;a href=&quot;../glossary#rocev2&quot; class=&quot;internal alias&quot; data-slug=&quot;glossary&quot;&gt;RoCEv2&lt;/a&gt; class with &lt;a href=&quot;../glossary#pfc--ecn--dcqcn&quot; class=&quot;internal alias&quot; data-slug=&quot;glossary&quot;&gt;PFC and ECN&lt;/a&gt; on the frontend. TCP-based storage needs none of that.&lt;/p&gt;
&lt;p&gt;On a converged frontend, RoCE storage means a lossless class sharing buffers with lossy tenant traffic. That works, but it’s a design, not a checkbox. Ask the storage vendor which transport they tested at your scale, then configure exactly that. If it’s TCP, keep the frontend lossy and simple.&lt;/p&gt;
&lt;h2 id=&quot;oob-the-network-everyone-undercounts&quot;&gt;OOB: the network everyone undercounts&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#oob-the-network-everyone-undercounts&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;what-it-carries-2&quot;&gt;What it carries&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#what-it-carries-2&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;NVIDIA’s RA connects &lt;a href=&quot;https://docs.nvidia.com/enterprise-reference-architectures/hgx-ai-factory/latest/network-logical-architecture.html&quot; class=&quot;external&quot;&gt;“BMC ports of the server nodes”&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;, “BMC ports of the Bluefield-3 DPU and SuperNICs” and “OOB management ports of switches”, and says to scale it with a 25 or 100 Gbps spine layer. Add PDUs, CDUs and the console server.&lt;/p&gt;
&lt;h3 id=&quot;the-sizing-math-and-my-own-miss&quot;&gt;The sizing math, and my own miss&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#the-sizing-math-and-my-own-miss&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The first pass of the 32-node design counted about 54 OOB ports (one BMC per server, 18 switch management ports, 4 storage servers) and two 48-port 1G switches. Then I read NVIDIA’s HGX B300 page again: &lt;a href=&quot;https://docs.nvidia.com/enterprise-reference-architectures/hgx-ai-factory/latest/network-logical-architecture.html&quot; class=&quot;external&quot;&gt;“4 servers, each with 6x 1Gb/s connections”&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;32 servers x 6 = &lt;strong&gt;192 ports&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;18 data switches in that design + 4 storage servers = &lt;strong&gt;22 more&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Total &lt;strong&gt;214&lt;/strong&gt;, before PDUs, CDUs or the console server&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A 48-port 1G switch like the &lt;a href=&quot;https://www.edge-core.com/product/eps201/&quot; class=&quot;external&quot;&gt;EPS201 (AS4630-54TE)&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;, with 48 x 1G RJ45, 4 x 25G and 2 x 100G ports, means &lt;strong&gt;five&lt;/strong&gt; switches, not two &lt;span class=&quot;text-highlight&quot;&gt;[EDIT: confirm the actual OEM management-port schedule, then add infrastructure and spare capacity]&lt;/span&gt;. The 25G and 100G uplinks give you the spine layer NVIDIA describes.&lt;/p&gt;
&lt;h3 id=&quot;console&quot;&gt;Console&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#console&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Every SONiC switch should have a serial console reachable when its management port isn’t. That’s how you recover a box stuck in ONIE or a bad upgrade. Count consoles like you count BMCs: 18 data switches plus the OOB switches themselves &lt;span class=&quot;text-highlight&quot;&gt;[EDIT: console server model and port count used]&lt;/span&gt;.&lt;/p&gt;
&lt;h2 id=&quot;what-to-validate-by-network&quot;&gt;What to validate, by network&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#what-to-validate-by-network&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;








































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Network&lt;/th&gt;&lt;th&gt;What it carries&lt;/th&gt;&lt;th&gt;32-node sizing&lt;/th&gt;&lt;th&gt;What bites people&lt;/th&gt;&lt;th&gt;What I’d validate&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Frontend (TAN)&lt;/td&gt;&lt;td&gt;In-band mgmt, tenant traffic, internet&lt;/td&gt;&lt;td&gt;64 x 400G from BlueField-3, 2 switches&lt;/td&gt;&lt;td&gt;BGP/EVPN behavior, dual homing failover&lt;/td&gt;&lt;td&gt;EVPN with your DPU overlay design; pull one link and one switch under load&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Storage&lt;/td&gt;&lt;td&gt;Checkpoints, datasets, weights&lt;/td&gt;&lt;td&gt;4 storage servers dual homed (converged)&lt;/td&gt;&lt;td&gt;RoCE lossless class next to TCP&lt;/td&gt;&lt;td&gt;Your storage vendor’s exact transport; checkpoint write at full scale&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;OOB (SMN)&lt;/td&gt;&lt;td&gt;BMCs, switch mgmt, PDUs, CDUs&lt;/td&gt;&lt;td&gt;214+ x 1G, 5 x 48-port switches&lt;/td&gt;&lt;td&gt;Six ports per server, not one&lt;/td&gt;&lt;td&gt;Every BMC reachable; serial console to every switch&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GPU fabric (CIN)&lt;/td&gt;&lt;td&gt;NCCL between GPUs&lt;/td&gt;&lt;td&gt;256 x 800G ConnectX-8&lt;/td&gt;&lt;td&gt;Not this post&lt;/td&gt;&lt;td&gt;Spectrum-X on NCP builds&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h2 id=&quot;whats-known-whats-inferred-what-nobody-has-published&quot;&gt;What’s known, what’s inferred, what nobody has published&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#whats-known-whats-inferred-what-nobody-has-published&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Known (public docs): NCP lists the CIN as Quantum or Spectrum-X, the TAN as “Ethernet (Spectrum)”, and the SMN as 1GbE with no vendor. NET-1 makes BlueField-3 north-south a MUST for NCPs hosting inference providers on GB300 NVL72. NVIDIA’s HGX B300 RA uses one dual port 400 GbE BlueField-3 per server and six 1G OOB connections per server.&lt;/li&gt;
&lt;li&gt;Inferred: frontend and OOB switch substitutions remain proposed; public documentation does not establish their acceptance. When the DPU terminates the overlay, the frontend leaf’s job gets simpler.&lt;/li&gt;
&lt;li&gt;Not established by the sources reviewed here: the gated NCP Hardware Reference Design’s frontend and OOB switch rules. The tables in NVIDIA’s HGX guide also disagree on converged switch counts at larger sizes, so I haven’t quoted them. If you’ve seen either settled, I’d like to compare notes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#faq&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;can-the-frontend-network-of-an-nvidia-ncp-build-use-non-nvidia-switches&quot;&gt;Can the frontend network of an NVIDIA NCP build use non-NVIDIA switches?&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#can-the-frontend-network-of-an-nvidia-ncp-build-use-non-nvidia-switches&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Public NCP text doesn’t exclude a non-NVIDIA frontend switch, but its reference table lists the Tenant Access Network as Ethernet (Spectrum), and the gated NCP Hardware Reference Design wasn’t public for me to check. Get it in writing for your specific build.&lt;/p&gt;
&lt;h3 id=&quot;is-a-bluefield-3-dpu-required-on-the-frontend&quot;&gt;Is a BlueField-3 DPU required on the frontend?&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#is-a-bluefield-3-dpu-required-on-the-frontend&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;For NCPs hosting inference providers on GB300 NVL72, yes: NVIDIA’s NET-1 requirement makes north-south through the BlueField-3 DPU a MUST, carrying control plane, storage and external connectivity. NVIDIA’s HGX B300 Enterprise RA also uses one BlueField-3 B3240 dual port 400 GbE DPU per server.&lt;/p&gt;
&lt;h3 id=&quot;how-much-frontend-bandwidth-does-a-32-node-hgx-b300-cluster-need&quot;&gt;How much frontend bandwidth does a 32-node HGX B300 cluster need?&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#how-much-frontend-bandwidth-does-a-32-node-hgx-b300-cluster-need&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;In NVIDIA’s HGX B300 design each server has two 400 GbE frontend ports to two separate switches, so 32 servers bring 64 x 400G links, or 25.6 Tb/s. As a sum of port line rates, that is one eighth of the 204.8 Tb/s the eight ConnectX-8 SuperNICs per server put on the GPU fabric.&lt;/p&gt;
&lt;h3 id=&quot;how-many-out-of-band-ports-does-a-32-node-b300-cluster-need&quot;&gt;How many out-of-band ports does a 32-node B300 cluster need?&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#how-many-out-of-band-ports-does-a-32-node-b300-cluster-need&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;NVIDIA’s HGX B300 Enterprise RA counts six 1 Gb/s management connections per server, so 32 servers need 192 ports before you add switches, storage, PDUs and console servers. That is at least five 48-port switches once the additional equipment in this example is included.&lt;/p&gt;
&lt;h2 id=&quot;the-upshot&quot;&gt;The upshot&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#the-upshot&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Even on a build where NVIDIA names the GPU fabric, a 32-node B300 cluster still has a frontend pair, a storage decision and a few hundred OOB ports that public NCP text doesn’t lock to one vendor. Those networks are smaller than the GPU fabric, but they are where clusters break at 2am.&lt;/p&gt;
&lt;p&gt;Next up: drawing a 32-server rail group honestly, every cable. If you’re sizing one of these and want to compare notes, my inbox is open &lt;span class=&quot;text-highlight&quot;&gt;[EDIT: add contact email or link]&lt;/span&gt;. No slide deck, I promise.&lt;/p&gt;
&lt;p&gt;Elliot&lt;/p&gt;
&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#sources&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.nvidia.com/dsx/ncp/software-reference-guide/data-center-architecture&quot; class=&quot;external&quot;&gt;NCP Software Reference Guide, Data Center Architecture: “Networking” and compute tray table&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;, NVIDIA, accessed 2026-11-02&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.nvidia.com/dsx/ncp/part-1-software-reference-guide/infrastructure-as-a-service&quot; class=&quot;external&quot;&gt;NCP Software Reference Guide Part 1, Infrastructure as a Service: “Data Centre Networks” table&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;, NVIDIA, accessed 2026-11-02&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.nvidia.com/dsx/ncp/inference-provider-requirements/home&quot; class=&quot;external&quot;&gt;Inference Provider Platform Requirements on GB300 NVL72 for NCPs: “Networking and Multi-tenancy”, NET-1 to NET-8&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;, NVIDIA, accessed 2026-11-02&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.nvidia.com/enterprise-reference-architectures/hgx-ai-factory/latest/network-logical-architecture.html&quot; class=&quot;external&quot;&gt;HGX AI Factory Enterprise RA, Networking Logical Architecture: “CPU Converged (North/South) Network”, “Enterprise RA Scalable Unit (SU)”, “Out-of-Band (OOB) Management Network”, Table 5, “32 Nodes with 256 NVIDIA HGX B300 SXM GPUs”&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;, NVIDIA, accessed 2026-11-02&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.nvidia.com/gpudirect-storage/overview-guide/index.html&quot; class=&quot;external&quot;&gt;GPUDirect Storage Overview Guide: 1.1 Introduction&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;, NVIDIA, accessed 2026-11-02&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.edge-core.com/product/ais800-64o/&quot; class=&quot;external&quot;&gt;AIS800-64O product page&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;, Edgecore Networks, accessed 2026-11-02&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.edge-core.com/product/eps201/&quot; class=&quot;external&quot;&gt;EPS201 (AS4630-54TE) product page&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;, Edgecore Networks, accessed 2026-11-02&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Profile boundary:&lt;/strong&gt; General storage designs can use TCP or RDMA. The cited GB300 NVL72 provider profile specifically requires RDMA and a certified storage partner under STO-2/3. An Edgecore switch placement remains proposed until the hardware/storage design and deployment acceptance are checked. &lt;a href=&quot;https://docs.nvidia.com/dsx/ncp/inference-provider-requirements/home&quot; class=&quot;external&quot;&gt;NVIDIA provider requirements&lt;svg aria-hidden=&quot;true&quot; class=&quot;external-icon&quot; style=&quot;max-width:0.8em;max-height:0.8em&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path d=&quot;M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt; ]]></description>
    <pubDate>Tue, 03 Nov 2026 19:00:00 GMT</pubDate>
  </item><item>
    <title>About Elliot Lombardo</title>
    <link>https://nonblocking.pages.dev/about</link>
    <guid>https://nonblocking.pages.dev/about</guid>
    <description><![CDATA[ &lt;p&gt;Elliot Lombardo is a sales director at Edgecore Networks who writes this personal, unofficial blog about AI cluster networking and open networking topologies. It is not an Edgecore publication, and the views here are his own.&lt;/p&gt;
&lt;h2 id=&quot;disclaimer&quot;&gt;Disclaimer&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#disclaimer&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote class=&quot;callout info&quot; data-callout=&quot;info&quot;&gt;
&lt;div class=&quot;callout-title&quot;&gt;
                  &lt;div class=&quot;callout-icon&quot;&gt;&lt;/div&gt;
                  &lt;div class=&quot;callout-title-inner&quot;&gt;&lt;p&gt;Disclosure &lt;/p&gt;&lt;/div&gt;
                  
                &lt;/div&gt;
&lt;div class=&quot;callout-content&quot;&gt;
&lt;p&gt;I’m a sales director at Edgecore Networks, which sells open networking switches, including some of the hardware discussed below. This is my personal blog. Views are my own, not Edgecore’s.&lt;/p&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;p&gt;The same disclosure appears at the top of every post. A few more things worth being clear about:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Nothing here is a price, a roadmap, an availability date, a certification, or a promise from Edgecore or anyone else.&lt;/li&gt;
&lt;li&gt;I don’t publish confidential material from my employer, its partners, or customers, and I don’t name customers or prospects without their written permission.&lt;/li&gt;
&lt;li&gt;Product names are trademarks of their owners and are used here only to describe products. This site is personal and isn’t sponsored or endorsed by the companies I discuss. My employment at Edgecore is disclosed above.&lt;/li&gt;
&lt;li&gt;Specs are linked to public pages. Check them yourself before you buy anything, from anyone.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;writing-with-llm-assistance&quot;&gt;Writing with LLM assistance&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#writing-with-llm-assistance&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I use large language models (LLMs) to help draft and edit these posts. The thoughts, ideas and opinions are my own. Sources and open questions remain visible so readers can assess the claims.&lt;/p&gt;
&lt;h2 id=&quot;about-me&quot;&gt;About me&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#about-me&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I spend my working week with people building and running GPU clusters: neoclouds, research and sovereign clusters, and enterprises. I don’t build the clusters myself. These posts are field notes from the person in the room, with links so you can check every claim.&lt;/p&gt;
&lt;h2 id=&quot;about-this-blog&quot;&gt;About this blog&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#about-this-blog&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;What:&lt;/strong&gt; how AI clusters are networked with open Ethernet, written plainly.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How often:&lt;/strong&gt; about one post a month. See &lt;a href=&quot;./upcoming&quot; class=&quot;internal alias&quot; data-slug=&quot;upcoming&quot;&gt;upcoming topics&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Method:&lt;/strong&gt; every post separates what’s known (public sources), what’s inferred, and what nobody has published.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Terms:&lt;/strong&gt; I use the definitions in the &lt;a href=&quot;./glossary&quot; class=&quot;internal&quot; data-slug=&quot;glossary&quot;&gt;glossary&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Corrections:&lt;/strong&gt; if I get something wrong, I fix it and update the “last updated” date on the page.&lt;/li&gt;
&lt;/ul&gt; ]]></description>
    <pubDate>Sun, 01 Nov 2026 06:00:00 GMT</pubDate>
  </item><item>
    <title>AI cluster networking glossary</title>
    <link>https://nonblocking.pages.dev/glossary</link>
    <guid>https://nonblocking.pages.dev/glossary</guid>
    <description><![CDATA[ &lt;p&gt;This glossary defines the terms I use on this blog for GPU cluster networks, in plain language and the way I use them in every post. Each term has its own heading, so you can link straight to it (for example, &lt;a href=&quot;#rail-optimized&quot; class=&quot;internal alias&quot;&gt;rail-optimized&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;A note on naming: NVIDIA program and product names (NCP, Reference Architecture, SuperPOD, Spectrum-X) refer to specific NVIDIA things. When I describe a design that hasn’t been validated by NVIDIA, I call it a “pattern” or a “rail group,” never an RA.&lt;/p&gt;
&lt;h2 id=&quot;scale-up&quot;&gt;Scale-up&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#scale-up&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;GPUs sharing memory directly over NVLink and NVSwitch as “one big GPU,” inside a server (HGX = 8 GPUs) or a rack (NVL72 = 72 GPUs). It is not Ethernet.&lt;/p&gt;
&lt;h2 id=&quot;nvlink-domain&quot;&gt;NVLink domain&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#nvlink-domain&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The set of GPUs on one scale-up fabric. I say “the NVLink domain,” not “the rack network.”&lt;/p&gt;
&lt;h2 id=&quot;scale-out--backend--east-west-compute-fabric&quot;&gt;Scale-out / backend / east-west compute fabric&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#scale-out--backend--east-west-compute-fabric&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The RDMA network joining GPUs across servers, usually one NIC per GPU into rail leaves. NVIDIA’s NCP documents call it the CIN.&lt;/p&gt;
&lt;h2 id=&quot;cin-cluster-interconnect-network&quot;&gt;CIN (Cluster Interconnect Network)&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#cin-cluster-interconnect-network&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The NCP name for the back-end fabric. NCP documents list InfiniBand (Quantum) or Ethernet (Spectrum-X) for it.&lt;/p&gt;
&lt;h2 id=&quot;frontend--north-south-converged&quot;&gt;Frontend / north-south (converged)&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#frontend--north-south-converged&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The network on the DPU or front-end NIC ports: storage, in-band management, tenant and internet traffic. It is “converged” when storage rides on it. The NCP name is TAN.&lt;/p&gt;
&lt;h2 id=&quot;tan-tenant-access-network&quot;&gt;TAN (Tenant Access Network)&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#tan-tenant-access-network&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;NCP’s name for the front-end network. Always Ethernet; NCP’s IaaS table lists “Ethernet (Spectrum).”&lt;/p&gt;
&lt;h2 id=&quot;tenant-network&quot;&gt;Tenant network&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#tenant-network&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A customer’s isolated overlay (a VPC) riding on the front-end, usually EVPN-VXLAN.&lt;/p&gt;
&lt;h2 id=&quot;oob--management-smn&quot;&gt;OOB / management (SMN)&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#oob--management-smn&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A separate 1G Ethernet network to BMCs, switch management ports, PDUs and CDUs. NCP calls it the SMN and doesn’t name a vendor.&lt;/p&gt;
&lt;h2 id=&quot;in-band-management&quot;&gt;In-band management&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#in-band-management&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Provisioning, Kubernetes or Slurm control, and monitoring traffic carried over the front-end. Not the same thing as out-of-band management.&lt;/p&gt;
&lt;h2 id=&quot;storage-fabric&quot;&gt;Storage fabric&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#storage-fabric&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The network to file and object storage. It may be separate or converged onto the front-end. NVIDIA’s storage reference designs default to Spectrum SN5600 switches in the bill of materials.&lt;/p&gt;
&lt;h2 id=&quot;border--edge--dci&quot;&gt;Border / edge / DCI&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#border--edge--dci&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The uplink out of the cluster to the internet, the WAN or other sites (sometimes called “scale-across”).&lt;/p&gt;
&lt;h2 id=&quot;tor-top-of-rack&quot;&gt;ToR (top-of-rack)&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#tor-top-of-rack&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A switch in the rack. On NVL72 the only ToRs are the two management switches; back-end leaves sit in separate network racks.&lt;/p&gt;
&lt;h2 id=&quot;leaf--spine--super-spine&quot;&gt;Leaf / spine / super-spine&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#leaf--spine--super-spine&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The tiers of a Clos fabric. A super-spine joins multiple spine groups.&lt;/p&gt;
&lt;h2 id=&quot;rail-optimized&quot;&gt;Rail-optimized&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#rail-optimized&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;GPU n of every server connects to leaf n, so same-rail traffic is one hop. Rails cut across servers, not racks.&lt;/p&gt;
&lt;h2 id=&quot;plane-dual-plane&quot;&gt;Plane (dual-plane)&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#plane-dual-plane&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Independent, parallel back-end fabrics. Each GPU’s NIC ports are split across the planes for bandwidth and failure isolation.&lt;/p&gt;
&lt;h2 id=&quot;oversubscription&quot;&gt;Oversubscription&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#oversubscription&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Downlink bandwidth divided by uplink bandwidth on a switch. Back ends are usually 1:1 (non-blocking); front ends can be oversubscribed.&lt;/p&gt;
&lt;h2 id=&quot;su-scalable-unit&quot;&gt;SU (Scalable Unit)&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#su-scalable-unit&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A repeatable scale-out building block. NVIDIA defines it differently across its reference architectures; the term is not exclusive to NVIDIA. For non-NVIDIA designs I say “pod” or “rail group” instead.&lt;/p&gt;
&lt;h2 id=&quot;pod--basepod--superpod&quot;&gt;POD / BasePOD / SuperPOD&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#pod--basepod--superpod&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;“POD” is generic in NCP documents. DGX BasePOD and DGX SuperPOD are NVIDIA products built from DGX systems with NVIDIA networking only; the names don’t apply to other designs.&lt;/p&gt;
&lt;h2 id=&quot;ra-reference-architecture&quot;&gt;RA (Reference Architecture)&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#ra-reference-architecture&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A documented design for a particular use case and set of assumptions. NVIDIA publishes specific RAs with their own prescribed components. An Edgecore architecture proposal does not establish conformance to one of those NVIDIA designs.&lt;/p&gt;
&lt;h2 id=&quot;enterprise-ra&quot;&gt;Enterprise RA&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#enterprise-ra&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;NVIDIA’s on-premises designs (for example HGX AI Factory and NVL72 AI Factory) with partner endorsement, built on Spectrum-X.&lt;/p&gt;
&lt;h2 id=&quot;ncp-nvidia-cloud-partner&quot;&gt;NCP (NVIDIA Cloud Partner)&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#ncp-nvidia-cloud-partner&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;An NVIDIA partner program for GPU clouds. It is not a switch certification; there is no such thing as an “NCP-certified switch.”&lt;/p&gt;
&lt;h2 id=&quot;ncp-hardware-reference-design&quot;&gt;NCP Hardware Reference Design&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#ncp-hardware-reference-design&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The gated (partner login) design that NCP builds are expected to follow closely.&lt;/p&gt;
&lt;h2 id=&quot;deployment-specific-agreement--exception&quot;&gt;Deployment-specific agreement / exception&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#deployment-specific-agreement--exception&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The only documented way a baseline NCP requirement is waived. The agreement must identify the affected requirement and approved exception.&lt;/p&gt;
&lt;h2 id=&quot;spectrum-x&quot;&gt;Spectrum-X&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#spectrum-x&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;NVIDIA’s Ethernet AI platform: Spectrum switches and SuperNICs working together for adaptive routing and congestion control. It is more than “NVIDIA Ethernet switches.”&lt;/p&gt;
&lt;h2 id=&quot;spectrum-sn5600sn5610sn6600sn2201&quot;&gt;Spectrum (SN5600/SN5610/SN6600/SN2201)&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#spectrum-sn5600sn5610sn6600sn2201&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;NVIDIA switch families. The SN2201 is the 1G management switch.&lt;/p&gt;
&lt;h2 id=&quot;infiniband-quantum&quot;&gt;InfiniBand (Quantum)&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#infiniband-quantum&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;NVIDIA’s non-Ethernet back-end option.&lt;/p&gt;
&lt;h2 id=&quot;nic--supernic-connectx-789&quot;&gt;NIC / SuperNIC (ConnectX-7/8/9)&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#nic--supernic-connectx-789&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The data mover, one per GPU on the back end, using GPUDirect RDMA straight into GPU memory. ConnectX-8 on HGX B300 runs 2x400GbE.&lt;/p&gt;
&lt;h2 id=&quot;dpu-bluefield-34&quot;&gt;DPU (BlueField-3/4)&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#dpu-bluefield-34&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A NIC plus Arm cores running its own OS. Used as the front-end and storage card for overlays, isolation and security. It offloads the host CPU, not the GPU.&lt;/p&gt;
&lt;h2 id=&quot;bluefield-3-supernic&quot;&gt;BlueField-3 SuperNIC&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#bluefield-3-supernic&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;BlueField silicon sold as a back-end NIC for early Spectrum-X deployments; not the DPU role.&lt;/p&gt;
&lt;h2 id=&quot;rocev2&quot;&gt;RoCEv2&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#rocev2&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;RDMA over Converged Ethernet, version 2. The classic recipe runs it on a lossless, tuned fabric (PFC plus ECN/DCQCN), Operator-specific alternatives include PFC-only designs with workload coordination and distinct multipath transports such as MRC. Those are not interchangeable configuration recipes.&lt;/p&gt;
&lt;h2 id=&quot;pfc--ecn--dcqcn&quot;&gt;PFC / ECN / DCQCN&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#pfc--ecn--dcqcn&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Priority Flow Control, Explicit Congestion Notification and the DCQCN congestion control algorithm: the flow control and congestion signaling that keep RoCE traffic from dropping.&lt;/p&gt;
&lt;h2 id=&quot;adaptive-routing--dlb--packet-spraying&quot;&gt;Adaptive routing / DLB / packet spraying&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#adaptive-routing--dlb--packet-spraying&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Per-packet or per-flow path balancing. Spectrum-X does it across switch and NIC; Broadcom Tomahawk switches offer dynamic load balancing (DLB).&lt;/p&gt;
&lt;h2 id=&quot;nccl&quot;&gt;NCCL&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#nccl&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;NVIDIA’s collective communications library (all-reduce, all-to-all) that rides the back-end fabric. AMD’s equivalent is RCCL.&lt;/p&gt;
&lt;h2 id=&quot;tomahawk-th5-512t-th6-1024t-th-ultra&quot;&gt;Tomahawk (TH5 51.2T, TH6 102.4T, TH Ultra)&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#tomahawk-th5-512t-th6-1024t-th-ultra&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Broadcom Ethernet switch ASICs. Tomahawk 5 is 51.2 Tb/s; Tomahawk 6 is 102.4 Tb/s.&lt;/p&gt;
&lt;h2 id=&quot;ais800-64o---64d---32o---32d&quot;&gt;AIS800-64O / -64D / -32O / -32D&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#ais800-64o---64d---32o---32d&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Edgecore Tomahawk 5 AI switches: 64x800G OSFP or QSFP-DD in 2RU, and 32-port 1RU versions. (Disclosure: I work at Edgecore.)&lt;/p&gt;
&lt;h2 id=&quot;jericho3-ai&quot;&gt;Jericho3-AI&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#jericho3-ai&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A Broadcom scheduled-fabric ASIC (cells and credits), an alternative to a Tomahawk Clos fabric.&lt;/p&gt;
&lt;h2 id=&quot;sonic--enterprise-sonic&quot;&gt;SONiC / Enterprise SONiC&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#sonic--enterprise-sonic&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;SONiC is an open source network operating system built on SAI. Enterprise SONiC is Broadcom’s commercially supported distribution.&lt;/p&gt;
&lt;h2 id=&quot;sai&quot;&gt;SAI&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#sai&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The Switch Abstraction Interface: an open API between the NOS and the switch ASIC. It is why SONiC is portable across hardware.&lt;/p&gt;
&lt;h2 id=&quot;onie&quot;&gt;ONIE&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#onie&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The Open Network Install Environment: a whitebox installer that lets you load any compatible NOS onto a switch.&lt;/p&gt;
&lt;h2 id=&quot;evpn-vxlan&quot;&gt;EVPN-VXLAN&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#evpn-vxlan&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The standard multi-tenant overlay on a BGP underlay. NCP inference provider builds require BGP with EVPN.&lt;/p&gt;
&lt;h2 id=&quot;ualink--ualoe--esun--sue&quot;&gt;UALink / UALoE / ESUN / SUE&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#ualink--ualoe--esun--sue&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Open scale-up efforts. UALoE is UALink over Ethernet (used in AMD Helios). None of them can be used as NVIDIA GPU scale-up.&lt;/p&gt;
&lt;h2 id=&quot;operator-vs-tenant&quot;&gt;Operator vs tenant&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#operator-vs-tenant&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The operator owns the cluster and buys the switches; the tenant (for example an inference provider) rents managed capacity such as Kubernetes. I say “inference provider,” not “ISP.”&lt;/p&gt;
&lt;h2 id=&quot;ai-cloud-ready--exemplar-cloud&quot;&gt;AI Cloud Ready / Exemplar Cloud&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#ai-cloud-ready--exemplar-cloud&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;NVIDIA validation and performance badges for clouds. They are not NCP tiers.&lt;/p&gt;
&lt;h2 id=&quot;deployment-pattern&quot;&gt;Deployment pattern&lt;a role=&quot;anchor&quot; aria-hidden tabindex=&quot;-1&quot; data-no-popover href=&quot;#deployment-pattern&quot; class=&quot;internal&quot;&gt;&lt;svg width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;What I call a design that hasn’t been tested or validated as an NVIDIA reference architecture. Placing open Ethernet next to NVIDIA systems is a pattern, not an RA.&lt;/p&gt; ]]></description>
    <pubDate>Sun, 01 Nov 2026 06:00:00 GMT</pubDate>
  </item><item>
    <title>Non-blocking</title>
    <link>https://nonblocking.pages.dev/</link>
    <guid>https://nonblocking.pages.dev/</guid>
    <description><![CDATA[  ]]></description>
    <pubDate>Sun, 01 Nov 2026 06:00:00 GMT</pubDate>
  </item><item>
    <title>Architecture Field Notes</title>
    <link>https://nonblocking.pages.dev/posts/</link>
    <guid>https://nonblocking.pages.dev/posts/</guid>
    <description><![CDATA[ &lt;p&gt;Every post on this blog, newest first. Each one opens with a short answer, shows its last updated date, and links its sources.&lt;/p&gt;
&lt;p&gt;Latest: &lt;a href=&quot;../posts/nvidia-network-names-edgecore-placement&quot; class=&quot;internal alias&quot; data-slug=&quot;posts/nvidia-network-names-edgecore-placement&quot;&gt;Before the switches, name the networks.&lt;/a&gt;&lt;/p&gt; ]]></description>
    <pubDate>Sun, 01 Nov 2026 06:00:00 GMT</pubDate>
  </item><item>
    <title>Upcoming topics</title>
    <link>https://nonblocking.pages.dev/upcoming</link>
    <guid>https://nonblocking.pages.dev/upcoming</guid>
    <description><![CDATA[ &lt;p&gt;These are the posts planned for the next six months, about one a month, from November 2026 to April 2027. Plans change; this page shows the latest version and its last updated date.&lt;/p&gt;





































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Month&lt;/th&gt;&lt;th&gt;Planned post&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Nov 2026&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;./posts/open-ethernet-ai-fabrics-outside-the-nvidia-box&quot; class=&quot;internal alias&quot; data-slug=&quot;posts/open-ethernet-ai-fabrics-outside-the-nvidia-box&quot;&gt;Open Ethernet AI fabrics outside the NVIDIA box&lt;/a&gt; (published)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Nov 2026&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;./posts/open-ethernet-frontend-storage-oob-b300-cluster&quot; class=&quot;internal alias&quot; data-slug=&quot;posts/open-ethernet-frontend-storage-oob-b300-cluster&quot;&gt;Everything around the GPU fabric: frontend, storage and OOB networks of a B300 cluster&lt;/a&gt; (published)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Nov 2026&lt;/td&gt;&lt;td&gt;NVIDIA network terminology: now drafted in Field note 03&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Jan 2027&lt;/td&gt;&lt;td&gt;Drawing a rail group honestly: 32 servers, 8 rails, every cable&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Feb 2027&lt;/td&gt;&lt;td&gt;The 90% problem: optics, breakouts and dust&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Mar 2027&lt;/td&gt;&lt;td&gt;RoCEv2 on Tomahawk 5: what you tune, and what nobody has published (PFC only vs DCQCN vs lossy MRC/UEC)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Apr 2027&lt;/td&gt;&lt;td&gt;Mailbag and corrections: six months of reader questions&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;In reserve:&lt;/strong&gt; 102.4T switching and Tomahawk 6, from public specs only.&lt;/p&gt;
&lt;p&gt;Have a question you want answered in the April mailbag? See the &lt;a href=&quot;./about#contact&quot; class=&quot;internal alias&quot; data-slug=&quot;about&quot;&gt;contact note on the About page&lt;/a&gt;.&lt;/p&gt; ]]></description>
    <pubDate>Sun, 01 Nov 2026 06:00:00 GMT</pubDate>
  </item>
    </channel>
  </rss>