') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); GitHub - FarmGPU/fabric-reliability: training for 800G fabric reliaiblity · GitHub
Skip to content

Repository files navigation

800G+ AI Fabric Reliability

Interactive research report, labs, and operating plan for physical-layer reliability on 800G+ AI fabrics.

Primary audience: datacenter techs and network SREs who already know cables, dirt, BGP, ECMP, and tickets — and need to read FarmGPU dashboards and take the right action. Repeat flaps are a physical channel until proven otherwise. Damping is not the repair. One-variable swaps. APC is not UPC.

Repo: github.com/FarmGPU/fabric-reliability

Why this exists

At 800G, a dirty ferrule, a wrong polish, a saturated equalizer, or a pause-storm is not a “network blip.” RoCEv2 / InfiniBand plus NCCL do not hide Layer-1 drops the way TCP does. One uncorrectable on a hop becomes milliseconds of tail latency; the slowest GPU sets step time; the job hangs.

The production bar in the source report:

Clean at every mating. Certify every fiber. Qualify every exact hardware/firmware combination. Trend every lane. Quarantine repeat offenders. Design independent planes so a single link failure costs bandwidth rather than a training job.

This app turns that report into something you can walk, drill, and check off — not only read.

Who it is for

You already knowThis app is so you can
Datacenter tech: cables, dirt, airflow, replacing a partNot swap cable + both optics; APC vs UPC; Zone A; bag the failed part
Network SRE: BGP, ECMP, flaps, damping, ticketsNot treat damping as the repair; ECN vs PFC; dual-plane vs LAG; read pre-FEC not just Rx

GPU / ML infra is a secondary reader. This is not a switch CLI cookbook. It is how to interpret the data on our fabric dashboards and what to do in the aisle or on the ticket.

What is in the app

Hash-routed single page (#/briefing, #/learn/why-800g, …). Progress (visited pages, quizzes, 30/60/90 and commissioning checklists) stays in this browser via localStorage.

Start

  • Command brief — dashboard signal → wrong fix → right action; field numbers; six non-negotiables; ten controls.

Physical layer

  • Landscape — why 800G is not 400G with a bigger sticker; ghost links.
  • Media & topology — reach selector for DAC / AEC / AOC / DR8; polarity and form factor.
  • Inspection lab — IEC 61300-3-35 end-face lab, inspect-clean-inspect SOP, optical budget calculator.

Signal & fabric

  • Telemetry — false-clean (Rx power green, eye dead), KP4 FEC gauge, CMIS-oriented signal table, alert policy.
  • Lossless transport — ECN before PFC tuner, pause storms, PFC watchdog.
  • Failure taxonomy — signatures, confirm / correct / prevent, one-variable swaps.

Operate

  • Resilient architecture — dual-plane vs cosmetic redundancy; damping without masking faults.
  • Incident playbook — interactive decision tree, first five minutes, isolation order.
  • 30 / 60 / 90 plan — persisted checklists: contamination control → certify/baseline → job survival.
  • Commissioning — per-link gates, qualification tests, reject criteria.
  • Operating policy — ten printable rules, SLOs, vendor questions.

Learn

  • Drills & quizzes — six short teach-then-ask modules (answers persist locally).
  • Sources — IEEE, IEC, NVIDIA, Meta, OIF, and the two research reports.

Interactive labs: media-by-meters, MPO-16 end-face, optical budget, ghost-link vs All-Reduce, KP4 FEC, ECN/PFC tuner, flap cascade, incident tree.

Research sources

The app synthesizes two reports. Thresholds that are site policy (not a published standard) are labeled as such in the UI.

  1. Physical-layer operating framework (this repo): docs/AI_Fabric_Physical_Layer_Reliability_800G_Plus.md — ten controls, telemetry, IEC SOP, playbooks, 30/60/90 plan.
  2. Best practices for high-speed 800G AI fabrics — physical landscape, media, IEC 61300-3-35, CMIS telemetry, RoCEv2 / PFC / ECN. Encoded in apps/web/src/data/ alongside the framework.

Cited standards and vendor docs are listed in-app under Sources.

Quick start

Requires Bun 1.4+ (Node 20+ is accepted by the workspace engines field).

git clone https://github.com/FarmGPU/fabric-reliability.git
cd fabric-reliability
bun install
bun run dev

Vite serves apps/web at http://localhost:5173.

bun run typecheck # turbo typecheck across workspaces
bun run build # production build of the web app
bun run lint

Add shadcn components from apps/web:

cd apps/web
npx shadcn@latest add <component>

UI primitives land in packages/ui. Use render (not asChild); this stack is Base UI, not Radix.

Repo layout

apps/web/ Vite + React 19 app
src/data/ Typed content from the two reports
src/views/ One view per route
src/components/widgets/ Labs (cascade, end-face, FEC, PFC, …)
src/lib/ Hash routing + local progress
packages/ui/ shadcn/ui (base-nova) + FarmGPU light tokens
docs/ Source operating-framework markdown

Content edits almost always belong in apps/web/src/data/*.ts, not in view chrome.

FileHolds
data/briefing.tsStats, controls, cascade, conclusions
data/physical.tsMedia, fiber, IEC SOP, handling
data/signal.tsTelemetry, FEC, ghost-link, PFC, failures
data/ops.tsArchitecture, playbook, 30/60/90, commission, policy
data/learn.tsDrill modules and quizzes
data/sources.tsBibliography
data/nav.tsSidebar + route catalog

Product notes (current)

  • Light theme first. Soft paper surfaces, ink type, Spline Sans / Spline Sans Mono. Volt is for dark mode and live signals, not the page wash.
  • No FarmGPU wordmark yet. Sidebar uses the network icon until brand assets are in the product.
  • Learning on-ramp is still specialist-heavy. The brief is written for DC techs and network SREs reading dashboards. Labs and the playbook are the practice layer.

License

Internal FarmGPU training unless a license file is added to this repository.

About

training for 800G fabric reliaiblity

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages