PageSourceSearch

https://open-neutrino.github.io/

html open-neutrino.github.io collected 2026-10-03 09:42:58 UTC 111,444 bytes, 29 lines download raw bytes

1<!DOCTYPE html><html lang="en" class="__className_e8ce0c"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.2ad4f518.png&amp;w=1920&amp;q=75 1x, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.2ad4f518.png&amp;w=3840&amp;q=75 2x"/><link rel="stylesheet" href="/_next/static/css/7a95a21c295627fa.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-5cb5f438e4923c75.js"/>
1<script src="/_next/static/chunks/4bd1b696-bdbcd6b6abfa5f41.js" async=""></script>
1<script src="/_next/static/chunks/684-8fc871b7617a5b5f.js" async=""></script>
1<script src="/_next/static/chunks/main-app-4b36f602801d20d5.js" async=""></script>
1<script src="/_next/static/chunks/35-e6a2aa443a9969c6.js" async=""></script>
1<script src="/_next/static/chunks/493-22e9dc7fbfdea194.js" async=""></script>
1<script src="/_next/static/chunks/app/layout-c704b2e4b9cc746f.js" async=""></script>
1<script src="/_next/static/chunks/459-3343952df99202c2.js" async=""></script>
1<script src="/_next/static/chunks/371-f6e78e78e3a20544.js" async=""></script>
1<script src="/_next/static/chunks/468-4edc99a1fcb3f5e1.js" async=""></script>
1<script src="/_next/static/chunks/36-7e56e85e44f3b80d.js" async=""></script>
1<script src="/_next/static/chunks/app/(home)/layout-f4e8b00021f70a27.js" async=""></script>
1<script src="/_next/static/chunks/307-39c937c789131bb9.js" async=""></script>
1<script src="/_next/static/chunks/app/(home)/page-ee5f7953070bfbb1.js" async=""></script>
1<meta name="next-size-adjust" content=""/>
1<script>document.querySelectorAll('body link[rel="icon"], body link[rel="apple-touch-icon"]').forEach(el => document.head.appendChild(el))</script>
1<script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script>
1</head><body class="flex flex-col min-h-screen">
1<script>((e,t,r,n,o,a,i,u)=>{let l=document.documentElement,s=["light","dark"];function c(t){var r;(Array.isArray(e)?e:[e]).forEach(e=>{let r="class"===e,n=r&&a?o.map(e=>a[e]||e):o;r?(l.classList.remove(...n),l.classList.add(a&&a[t]?a[t]:t)):l.setAttribute(e,t)}),r=t,u&&s.includes(r)&&(l.style.colorScheme=r)}if(n)c(n);else try{let e=localStorage.getItem(t)||r,n=i&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;c(n)}catch(e){}})("class","theme","system",null,["light","dark"],null,true,true)</script>
1<div class="mt-auto border-t p-3 empty:hidden"></div><main id="nd-home-layout" class="flex flex-1 flex-col pt-14"><header id="nd-nav" class="fixed top-(--fd-banner-height) z-40 inset-x-0 backdrop-blur-lg border-b transition-colors *:mx-auto *:max-w-fd-container shadow-sm bg-fd-background/80" aria-label="Main" data-orientation="horizontal" dir="ltr"><div style="position:relative"><nav data-orientation="horizontal" class="flex h-14 w-full items-center px-4" dir="ltr"><a class="inline-flex items-center gap-2.5 font-semibold" href="/"><img alt="logo" loading="lazy" width="24" height="24" decoding="async" data-nimg="1" style="color:transparent" src="/_next/static/media/logo.60f7ead8.svg"/>Neutrino</a><ul class="flex flex-row items-center gap-2 px-6 max-sm:hidden"><div class="text-sm"><li class="list-none"><button id="radix-«Rrlb»-trigger-radix-«R5mrlb»" data-state="closed" aria-expanded="false" aria-controls="radix-«Rrlb»-content-radix-«R5mrlb»" class="data-[state=open]:bg-fd-accent/50 inline-flex items-center gap-1 p-2 text-fd-muted-foreground transition-colors hover:text-fd-accent-foreground data-[active=true]:text-fd-primary [&amp;_svg]:size-4 rounded-md" data-radix-collection-item="">Documentation</button></li></div><li class="list-none"><a class="inline-flex items-center gap-1 p-2 text-fd-muted-foreground transition-colors hover:text-fd-accent-foreground data-[active=true]:text-fd-primary [&amp;_svg]:size-4 text-sm" data-active="false" data-radix-collection-item="" href="/blog">Blog</a></li></ul><div class="flex flex-row items-center justify-end gap-1.5 flex-1"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none hover:bg-fd-accent hover:text-fd-accent-foreground [&amp;_svg]:size-4.5 p-2 lg:hidden" data-search="" aria-label="Open Search"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg></button><button type="button" data-search-full="" class="inline-flex items-center gap-2 border bg-fd-secondary/50 p-1.5 text-sm text-fd-muted-foreground transition-colors hover:bg-fd-accent hover:text-fd-accent-foreground w-full rounded-full ps-2.5 max-w-[240px] max-lg:hidden"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-4"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg>Search<div class="ms-auto inline-flex gap-0.5"><kbd class="rounded-md border bg-fd-background px-1.5">⌘</kbd><kbd class="rounded-md border bg-fd-background px-1.5">K</kbd></div></button><button class="inline-flex items-center rounded-full border p-1 max-lg:hidden" aria-label="Toggle Theme" data-theme-toggle=""><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-6.5 rounded-full p-1.5 text-fd-muted-foreground"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-6.5 rounded-full p-1.5 text-fd-muted-foreground"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg></button></div><ul class="flex flex-row items-center"><li class="list-none"><a href="https://github.com/open-neutrino/neutrino" rel="noreferrer noopener" target="_blank" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [&amp;_svg]:size-5 max-lg:hidden" aria-label="GitHub" data-active="false" data-radix-collection-item=""><svg role="img" viewBox="0 0 24 24" fill="currentColor"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path></svg></a></li><li class="list-none lg:hidden"><button id="radix-«Rrlb»-trigger-radix-«Ramrlb»" data-state="closed" aria-expanded="false" aria-controls="radix-«Rrlb»-content-radix-«Ramrlb»" class="data-[state=open]:bg-fd-accent/50 inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [&amp;_svg]:size-5 group -me-1.5" aria-label="Toggle Menu" data-radix-collection-item=""><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide !size-5.5 transition-transform duration-300 group-data-[state=open]:rotate-180"><path d="m6 9 6 6 6-6"></path></svg></button></li></ul></nav></div><div class="flex w-full justify-center"></div></header><main class="container relative max-w-[1100px] px-2 py-4 z-[2] lg:py-8"><div style="background:repeating-linear-gradient(to bottom, transparent, color-mix(in oklab, var(--color-fd-primary) 1%, transparent) 500px, transparent 1000px)"><div class="relative"><div class="relative z-[2] flex flex-col border-x border-t bg-fd-background/80 px-4 pt-12 max-md:text-center md:px-12 md:pt-16 [.uwu_&amp;]:hidden overflow-hidden"><div class="absolute inset-0 z-[-1] blur-2xl hidden dark:block" style="mask-image:linear-gradient(to bottom, transparent, white, transparent);background:repeating-linear-gradient(65deg, var(--color-blue-500), var(--color-blue-500) 12px, color-mix(in oklab, var(--color-blue-600) 30%, transparent) 20px, transparent 200px
1)"></div><div class="absolute inset-0 z-[-1] blur-2xl dark:hidden" style="mask-image:linear-gradient(to bottom, transparent, white, transparent);background:repeating-linear-gradient(65deg, var(--color-purple-300), var(--color-purple-300) 12px, color-mix(in oklab, var(--color-blue-600) 30%, transparent) 20px, transparent 200px)"></div><h1 class="mb-8 max-w-[600px] text-4xl font-medium">Fine-grained GPU Kernel Profiling via Programmable Probing</h1><p class="mb-8 text-fd-muted-foreground md:max-w-[80%] md:text-xl">Neutrino is a GPU Assembly Probing Framework for GPU Kernel Profiling, Fine-grained, Versatile, Programmable, with <a class="underline" href="https://ebpf.io">eBPF</a>-like User Interface.</p><a href="https://www.usenix.org/conference/osdi25/presentation/huang-songlin" target="_blank" rel="noreferrer noopener" class="mb-8 italic font-semibold md:max-w-[80%] md:text-xl underline">Accepted by OSDI 25, Artifact Evaluated.</a><div class="inline-flex items-center gap-3 max-md:mx-auto"><a class="inline-flex items-center justify-center text-sm font-medium ring-offset-fd-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring disabled:pointer-events-none disabled:opacity-50 bg-gradient-to-b from-fd-primary to-fd-primary/60 text-fd-primary-foreground shadow-fd-background/20 hover:bg-fd-primary/90 h-11 px-6 rounded-full" href="/Neutrino-Preprint.pdf">Paper</a><a href="https://github.com/open-neutrino/neutrino" rel="noreferrer noopener" class="inline-flex items-center justify-center text-sm font-medium ring-offset-fd-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring disabled:pointer-events-none disabled:opacity-50 border from-fd-primary/10 shadow-fd-primary/10 hover:bg-fd-accent/50 hover:text-fd-accent-foreground h-11 px-6 rounded-full bg-fd-background">Code</a><a class="inline-flex items-center justify-center text-sm font-medium ring-offset-fd-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring disabled:pointer-events-none disabled:opacity-50 bg-gradient-to-b from-fd-primary to-fd-primary/60 text-fd-primary-foreground shadow-fd-background/20 hover:bg-fd-primary/90 h-11 px-6 rounded-full" href="/docs">Docs</a><a rel="noreferrer noopener" class="inline-flex items-center justify-center text-sm font-medium ring-offset-fd-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring disabled:pointer-events-none disabled:opacity-50 border from-fd-primary/10 shadow-fd-primary/10 hover:bg-fd-accent/50 hover:text-fd-accent-foreground h-11 px-6 rounded-full bg-fd-background" href="/blog">Blog</a></div><div class="mt-12 min-w-[800px] overflow-hidden xl:-mx-12 dark:[mask-image:linear-gradient(to_top,transparent,white_40px)]"></div></div><div class="z-[2] hidden flex-col items-center pb-8 text-center bg-fd-background border-x border-t [.uwu_&amp;]:flex"><img alt="logo" width="1337" height="696" decoding="async" data-nimg="1" class="mb-6 w-full max-w-[400px] px-4" style="color:transparent" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.2ad4f518.png&amp;w=1920&amp;q=75 1x, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.2ad4f518.png&amp;w=3840&amp;q=75 2x" src="/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.2ad4f518.png&amp;w=3840&amp;q=75"/><p class="mb-6 h-fit p-2 text-lg text-fd-muted-foreground md:max-w-[80%] md:text-xl">Fumadocs is the framework for building documentation with<!-- --> <b class="font-medium text-fd-foreground">anime and fuwa fuwa power</b>. Using the power of weebs and waifus.</p><div class="inline-flex items-center gap-3"><a class="inline-flex items-center justify-center text-sm font-medium ring-offset-fd-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring disabled:pointer-events-none disabled:opacity-50 bg-gradient-to-b from-fd-primary to-fd-primary/60 text-fd-primary-foreground shadow-fd-background/20 hover:bg-fd-primary/90 h-11 px-6 rounded-full" href="/docs">Getting Started</a><a href="https://stackblitz.com/~/github.com/fuma-nama/fumadocs-ui-template" class="inline-flex items-center justify-center text-sm font-medium ring-offset-fd-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring disabled:pointer-events-none disabled:opacity-50 border from-fd-primary/10 shadow-fd-primary/10 hover:bg-fd-accent/50 hover:text-fd-accent-foreground h-11 px-6 rounded-full bg-fd-background">Open Demo</a></div></div></div><div class="grid grid-cols-1 border-r md:grid-cols-2 lg:grid-cols-3"><div class="col-span-full flex flex-row items-start justify-center border-l border-t p-8 pb-2 text-center">
1<h2 class="bg-fd-primary text-fd-primary-foreground px-1 text-3xl font-semibold">Highlights</h2><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-mouse-pointer -ml-1 mt-8" aria-hidden="true"><path d="M12.586 12.586 19 19"></path><path d="M3.688 3.037a.497.497 0 0 0-.651.651l6.5 15.999a.501.501 0 0 0 .947-.062l1.569-6.083a2 2 0 0 1 1.448-1.479l6.124-1.579a.5.5 0 0 0 .063-.947z"></path></svg></div><div class="border-l border-t px-6 py-12"><div class="mb-4 flex flex-row items-center gap-2 text-fd-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-pencil-line size-4" aria-hidden="true"><path d="M12 20h9"></path><path d="M16.376 3.622a1 1 0 0 1 3.002 3.002L7.368 18.635a2 2 0 0 1-.855.506l-2.872.838a.5.5 0 0 1-.62-.62l.838-2.872a2 2 0 0 1 .506-.854z"></path><path d="m15 5 3 3"></path></svg><h2 class="text-sm font-medium">Programmability</h2></div><span class="font-medium">Easily customizes profiling via Pythonic DSL or Handcrafting Asms!</span></div><div class="border-l border-t px-6 py-12"><div class="mb-4 flex flex-row items-center gap-2 text-fd-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-locate-fixed size-4" aria-hidden="true"><line x1="2" x2="5" y1="12" y2="12"></line><line x1="19" x2="22" y1="12" y2="12"></line><line x1="12" x2="12" y1="2" y2="5"></line><line x1="12" x2="12" y1="19" y2="22"></line><circle cx="12" cy="12" r="7"></circle><circle cx="12" cy="12" r="3"></circle></svg><h2 class="text-sm font-medium">Fine-Granularity</h2></div><span class="font-medium">Operates on assemblies for finest instruction-level control!</span></div><div class="border-l border-t px-6 py-12"><div class="mb-4 flex flex-row items-center gap-2 text-fd-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rocket size-4" aria-hidden="true"><path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z"></path><path d="m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z"></path><path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0"></path><path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5"></path></svg><h2 class="text-sm font-medium">Versatility</h2></div><span class="font-medium">Covers both value- and time- profiling for complex and interesting profiling!</span></div></div><div class="relative overflow-hidden border-x border-t px-6 py-8" style="background-image:radial-gradient(circle at center, var(--color-fd-secondary), var(--color-fd-background) 40%)"><h2 class="text-center text-2xl font-semibold sm:text-3xl">Easy-to-use for Performance Engineers.</h2></div><div class="grid grid-cols-1 border-r md:grid-cols-2"><div class="flex flex-col gap-2 border-l border-t px-6 py-10 md:py-12"><div class="inline-flex size-7 items-center justify-center rounded-full bg-fd-primary font-medium text-fd-
1primary-foreground">1</div><h3 class="text-xl font-semibold">Write the probe.</h3><p class="text-fd-muted-foreground">Define contexted registers, Maps and Probes in Tracing DSL.</p><div class="relative flex flex-col max-h-64 sm:max-h-80 overflow-y-auto"><figure dir="ltr" class="not-prose group relative my-4 overflow-hidden rounded-lg border bg-fd-card text-sm outline-none"><button type="button" class="inline-flex items-center justify-center rounded-md p-2 text-sm font-medium duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none hover:bg-fd-accent hover:text-fd-accent-foreground transition-opacity group-hover:opacity-100 [&amp;_svg]:size-3.5 [@media(hover:hover)]:opacity-0 absolute right-2 top-2 z-[2] backdrop-blur-md" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide transition-transform scale-0"><path d="M20 6 9 17l-5-5"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide absolute transition-transform"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button><div class="text-[13px] py-3.5 overflow-auto [&amp;_.line]:px-4 max-h-[600px] fd-scroll-container"><pre class="min-w-full w-max *:flex *:flex-col shiki shiki-themes github-light vesper" style="--shiki-light:#24292e;--shiki-dark:#FFF;--shiki-light-bg:#fff;--shiki-dark-bg:#101010" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">from</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF"> neutrino </span><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">import</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF"> probe, Map</span></span>
2<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">import</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF"> neutrino.language </span><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">as</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF"> nl</span></span>
3<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#8B8B8B94"># declare maps via decorated class for persistence</span></span>
4<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#FFC799">@Map</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFF">level</span><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">=</span><span style="--shiki-light:#032F62;--shiki-dark:#99FFE4">&quot;warp&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFF">type</span><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">=</span><span style="--shiki-light:#032F62;--shiki-dark:#99FFE4">&quot;array&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFF">size</span><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#FFC799">8</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFF">cap</span><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#FFC799">1</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF">)</span></span>
5<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#FFC799"> block_sched</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF">:</span></span>
6<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#FFF">  start: nl.u64</span></span>
7<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#8B8B8B94"># declare probe registers shared across probes</span></span>
8<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#FFF">start: nl.u64 </span><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#FFC799"> 0</span><span style="--shiki-light:#6A737D;--shiki-dark:#8B8B8B94"> # starting clock</span></span>
9<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#8B8B8B94"># declare probe via decorated function</span></span>
10<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#FFC799">@probe</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFF">pos</span><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">=</span><span style="--shiki-light:#032F62;--shiki-dark:#99FFE4">&quot;kernel&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFF">level</span><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">=</span><span style="--shiki-light:#032F62;--shiki-dark:#99FFE4">&quot;warp&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFF">before</span><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#FFF">True</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF">)</span></span>
11<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#FFC799"> thread_start</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF">():</span></span>
12<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#FFF">  start </span><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">=</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF"> nl.clock()</span></span></code></pre></div></figure></div></div><div class="flex flex-col gap-2 border-l border-t px-6 py-10 md:py-12"><div class="inline-flex size-7 items-center justify-center rounded-full bg-fd-primary font-medium text-fd-
12primary-foreground">2</div><h3 class="text-xl font-semibold">Run it.</h3><p class="mb-4 text-fd-muted-foreground">Apply probes to your workload with simple CLI.</p><div class="relative"><pre class="overflow-hidden rounded-xl border text-[13px] shadow-lg"><div class="flex flex-row items-center gap-2 border-b px-4 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-terminal size-4" aria-hidden="true"><path d="M12 19h8"></path><path d="m4 17 6-6-6-6"></path></svg> <span class="font-bold">Terminal</span><div class="grow"></div><div class="size-2 rounded-full bg-red-400"></div></div><div class="min-h-[200px] bg-gradient-to-b from-fd-card"><code class="grid p-4"><div class="block whitespace-pre-wrap break-all font-mono"><span>neutrino -p probe.py python -c &quot;import torch; torch.zeros((4096, 4096), dtype=torch.float16)&quot;</span></div><span> </span><span class="font-bold">◆-- Trace Saving --◆</span><span class="font-bold">[info] trace in ./trace/Apr24_231539_1860576</span><span> </span><span class="font-bold">◆-- Trace Analysis --◆</span><span class="font-bold">vectorized_elementwise:</span><span class="font-bold">No.block:32768 Exec:680869 Sched:142674 (cycle/SM)</span></code></div></pre></div></div><div class="flex flex-col gap-2 border-l border-t px-6 py-10 md:py-12"><div class="inline-flex size-7 items-center justify-center rounded-full bg-fd-primary font-medium text-fd-
12primary-foreground">3</div><h3 class="text-xl font-semibold">Analyze the Trace.</h3><p class="text-fd-muted-foreground">Easily reading traces with auto-generated code for analysis.</p><div class="relative flex flex-col max-h-64 sm:max-h-80 overflow-y-auto"><figure dir="ltr" class="not-prose group my-4 overflow-hidden rounded-lg border bg-fd-card text-sm outline-none absolute inset-x-2 top-0 shadow-lg"><button type="button" class="inline-flex items-center justify-center rounded-md p-2 text-sm font-medium duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none hover:bg-fd-accent hover:text-fd-accent-foreground transition-opacity group-hover:opacity-100 [&amp;_svg]:size-3.5 [@media(hover:hover)]:opacity-0 absolute right-2 top-2 z-[2] backdrop-blur-md" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide transition-transform scale-0"><path d="M20 6 9 17l-5-5"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide absolute transition-transform"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button><div class="text-[13px] py-3.5 overflow-auto [&amp;_.line]:px-4 max-h-[600px] fd-scroll-container"><pre class="min-w-full w-max *:flex *:flex-col shiki shiki-themes github-light vesper" style="--shiki-light:#24292e;--shiki-dark:#FFF;--shiki-light-bg:#fff;--shiki-dark-bg:#101010" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">import</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF"> struct</span></span>
13<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">from</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF"> neutrino </span><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">import</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF"> TraceHeader, TraceSection</span></span>
14<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#FFC799"> block_sched</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#FFF">NamedTuple</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF">):</span></span>
15<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#FFF">  start: </span><span style="--shiki-light:#005CC5;--shiki-dark:#FFC799">int</span></span>
16<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#FFC799"> parse</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF">(path: </span><span style="--shiki-light:#005CC5;--shiki-dark:#FFC799">str</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF">):</span></span>
17<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">  with</span><span style="--shiki-light:#005CC5;--shiki-dark:#FFC799"> open</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF">(path, </span><span style="--shiki-light:#032F62;--shiki-dark:#99FFE4">&quot;rb&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">as</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF"> f:</span></span>
18<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#FFF">  header: TraceHeader </span><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">=</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF"> TraceHeader(struct.unpack(</span><span style="--shiki-light:#032F62;--shiki-dark:#99FFE4">&quot;iiiiiiii&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF">, f.read(</span><span style="--shiki-light:#005CC5;--shiki-dark:#FFC799">32</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF">)))</span></span>
19<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#FFF">  sections: List[TraceSection] </span><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">=</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF"> []</span></span>
20<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">  for</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF"> _ </span><span style="--shiki-light:#D73A49;--shiki-dark:#A0A0A0">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#FFC799"> range</span><span style="--shiki-light:#24292E;--shiki-dark:#FFF">(header.numProbes):)</span></span></code></pre></div></figure><div class="not-prose rounded-md border bg-fd-card p-2 z-[2] mt-40 shadow-xl"><div data-state="open"><button type="button" aria-controls="radix-«R538fblb»" aria-expanded="true" data-state="open" class="flex flex-row items-center gap-2 rounded-md px-2 py-1.5 text-sm hover:bg-fd-accent hover:text-fd-accent-foreground [&amp;_svg]:size-4 w-full"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide"><path d="m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"></path></svg>trace</button><div data-state="open" id="radix-«R538fblb»" class="overflow-hidden"><div class="ms-2 flex flex-col border-l ps-2"><div data-state="closed"><button type="button" aria-controls="radix-«R3d38fblb»" aria-expanded="false" data-state="closed" class="flex flex-row items-center gap-2 rounded-md px-2 py-1.5 text-sm hover:bg-fd-accent hover:text-fd-accent-foreground [&amp;_svg]:size-4 w-full"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide"><path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"></path></svg>kernel</button><div data-state="closed" id="radix-«R3d38fblb»" hidden="" class="overflow-hidden"></div></div><div data-state="closed"><button type="button" aria-controls="radix-«R5d38fblb»" aria-expanded="false" data-state="closed" class="flex flex-row items-center gap-2 rounded-md px-2 py-1.5 text-sm hover:bg-fd-accent hover:text-fd-accent-foreground [&amp;_svg]:size-4 w-full"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide"><path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"></path></svg>results</button><div data-state="closed" id="radix-«R5d38fblb»" hidden="" class="overflow-hidden"></div></div><div class="flex flex-row items-center gap-2 rounded-md px-2 py-1.5 text-sm hover:bg-fd-accent hover:text-fd-accent-foreground [&amp;_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path></svg>event.log</div></div></div></div></div></div></div><div class="flex flex-col gap-2 border-l border-t px-6 py-10 md:py-12"><div class="inline-flex size-7 items-center justify-center rounded-full bg-fd-primary font-medium text-fd-
20primary-foreground">4</div><h3 class="text-xl font-semibold">Share it.</h3><p class="mb-4 text-fd-muted-foreground">Share your probes with community via Github Issues or Gists.</p></div></div><div class="relative overflow-hidden border-x border-t px-6 py-8" style="background-image:radial-gradient(circle at center, var(--color-fd-secondary), var(--color-fd-background) 40%)"><h2 class="text-center text-2xl font-semibold sm:text-3xl">Compatible with Most Ecosystem.</h2></div><div class="grid grid-cols-1 border-r md:grid-cols-2"><div class="border-l border-t px-6 py-12 md:py-12 overflow-hidden" style="background-image:radial-gradient(circle at 60% 50%,var(--color-fd-secondary),var(--color-fd-background) 80%)"><div class="mb-4 inline-flex items-center gap-2 text-sm font-medium text-fd-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-gpu size-4" aria-hidden="true"><path d="M2 21V3"></path><path d="M2 5h18a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2.26"></path><path d="M7 17v3a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1v-3"></path><circle cx="16" cy="11" r="2"></circle><circle cx="8" cy="11" r="2"></circle></svg><p>Hardware Compatibility</p></div><h2 class="mb-2 text-lg font-semibold">Works fluently on commonly used hardwares.</h2><p class="text-fd-muted-foreground"></p><div class="prose my-6 overflow-auto prose-no-margin"><table class="whitespace-nowrap text-sm text-fd-muted-foreground"><thead><tr><th class="w-[40%]">Platform</th><th class="w-[60%]">Support</th></tr></thead><tbody><tr><td><div class="inline-flex flex-row items-center gap-1 font-bold text-fd-primary">NVIDIA/CUDA</div></td><td><div class="inline-flex flex-row items-center gap-1">✅ Fully Supported</div></td></tr><tr><td><div class="inline-flex flex-row items-center gap-1 font-bold text-fd-primary">AMD/ROCm</div></td><td><div class="inline-flex flex-row items-center gap-1">✅ Supported on CDNA</div></td></tr><tr><td><div class="inline-flex flex-row items-center gap-1 font-bold text-fd-primary">Intel/oneAPI</div></td><td><div class="inline-flex flex-row items-center gap-1">🚀 Planning</div></td></tr><tr><td><div class="inline-flex flex-row items-center gap-1 font-bold text-fd-primary">More to Come!</div></td><td><div class="inline-flex flex-row items-center gap-1">Raise Github Issue if you need!</div></td></tr></tbody></table></div></div><div class="border-l border-t px-6 py-12 md:py-12"><div class="mb-4 inline-flex items-center gap-2 text-sm font-medium text-fd-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-code2 lucide-file-code-2 size-4" aria-hidden="true"><path d="M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="m5 12-3 3 3 3"></path><path d="m9 18 3-3-3-3"></path></svg><p>Software Compatibility</p></div><h2 class="mb-2 text-lg font-semibold">Integrated seamlessly with ecosystems</h2><p class="text-fd-muted-foreground"></p><div class="prose my-6 overflow-auto prose-no-margin"><table class="whitespace-nowrap text-sm text-fd-muted-foreground"><thead><tr><th class="w-[40%]">Platform</th><th class="w-[60%]">Support</th></tr></thead><tbody><tr><td><div class="inline-flex flex-row items-center gap-1 font-bold text-fd-primary">PyTorch (and everything on top)</div></td><td><div class="inline-flex flex-row items-center gap-1">✅ Supported (with custom build)</div></td></tr><tr><td><div class="inline-flex flex-row items-center gap-1 font-bold text-fd-primary">Triton</div></td><td><div class="inline-flex flex-row items-center gap-1">✅ Supported</div></td></tr><tr><td><div class="inline-flex flex-row items-center gap-1 font-bold text-fd-primary">JAX</div></td><td><div class="inline-flex flex-row items-center gap-1">✅ Supported (with envariable)</div></td></tr><tr><td><div class="inline-flex flex-row items-center gap-1 font-bold text-fd-
20primary">More to Come!</div></td><td><div class="inline-flex flex-row items-center gap-1">Raise Github Issue if you need!</div></td></tr></tbody></table></div></div></div><div class="relative overflow-hidden border-x border-t px-6 py-8" style="background-image:radial-gradient(circle at center, var(--color-fd-secondary), var(--color-fd-background) 40%)"><h2 class="text-center text-2xl font-semibold sm:text-3xl">Hackable for your need.</h2></div><div class="flex flex-col gap-4 border-x border-t p-8 md:px-12 lg:flex-row"><div class="text-start items-center justify-center w-full"><p class="px-2 py-1 text-sm font-mono bg-fd-primary text-fd-primary-foreground font-bold w-fit mb-4">Designed with Extensibility</p><h2 class="text-2xl font-semibold mb-4">An approachable framework.</h2><p class="text-fd-muted-foreground mb-6">Neutrino consists of three components: Entry &amp; Compiler, Hook Driver, and the Probe Engine. All can be easily extended.</p></div><img alt="Architecture" loading="lazy" width="314" height="146" decoding="async" data-nimg="1" class="justify-center items-center w-full max-w-[450px]" style="color:transparent" src="/_next/static/media/workflow.bae5511f.svg"/></div><div class="grid grid-cols-1 border-r md:grid-cols-2"><div class="border-l border-t px-6 py-12 md:py-12 overflow-hidden" style="background-image:radial-gradient(circle at 60% 50%,var(--color-fd-secondary),var(--color-fd-background) 80%)"><div class="mb-4 inline-flex items-center gap-2 text-sm font-medium text-fd-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shrimp size-4" aria-hidden="true"><path d="M11 12h.01"></path><path d="M13 22c.5-.5 1.12-1 2.5-1-1.38 0-2-.5-2.5-1"></path><path d="M14 2a3.28 3.28 0 0 1-3.227 1.798l-6.17-.561A2.387 2.387 0 1 0 4.387 8H15.5a1 1 0 0 1 0 13 1 1 0 0 0 0-5H12a7 7 0 0 1-7-7V8"></path><path d="M14 8a8.5 8.5 0 0 1 0 8"></path><path d="M16 16c2 0 4.5-4 4-6"></path></svg><p>Hook Driver</p></div><h2 class="mb-2 text-lg font-semibold"></h2><p class="text-fd-muted-foreground"><span class="font-medium text-fd-foreground">Hook driver captures driver call (load &amp; launch) to provide runtime support, such as caching code(assembly) loaded.</span></p><div class="flex justify-center items-center py-8"><img alt="probe engine" loading="lazy" width="212" height="96" decoding="async" data-nimg="1" class="w-full max-w-[350px] md:max-w-[400px] lg:max-w-[450px] h-auto" style="color:transparent" src="/_next/static/media/driver.8f41cf7b.svg"/></div></div><div class="border-l border-t px-6 py-12 md:py-12"><div class="mb-4 inline-flex items-center gap-2 text-sm font-medium text-fd-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-picture-in-picture size-4" aria-hidden="true"><path d="M2 10h6V4"></path><path d="m2 4 6 6"></path><path d="M21 10V7a2 2 0 0 0-2-2h-7"></path><path d="M3 14v2a2 2 0 0 0 2 2h3"></path><rect x="12" y="14" width="10" height="7" rx="1"></rect></svg><p>Probe Engine</p></div><h2 class="mb-2 text-lg font-semibold"></h2><p class="text-fd-muted-foreground"><span class="font-medium text-fd-foreground">Probe engine extracts, prunes, probes and reassembles the GPU assembly from hook driver with probes from entry.</span></p><div class="flex justify-center items-center py-8"><img alt="probe engine" loading="lazy" width="212" height="96" decoding="async" data-nimg="1" class="w-full max-w-[350px] md:max-w-[400px] lg:max-w-[450px] h-auto" style="color:transparent" src="/_next/static/media/engine.d683d56b.svg"/></div></div></div><div class="relative overflow-hidden border-x border-t px-6 py-12" style="background-image:radial-gradient(circle at center, var(--color-fd-secondary), var(--color-fd-background) 40%)"><h2 class="text-center text-2xl px-1 font-semibold">Demos Available at Simple Clicks.</h2></div><div class="relative overflow-hidden border-x border-t p-2"><div id="why-interactive" class="flex flex-col-reverse gap-3 md:flex-row md:min-
20h-[380px]"><div class="flex flex-col"><button type="button" class="transition-colors text-nowrap border rounded-lg px-3 py-2.5 text-start text-sm font-medium text-fd-primary bg-fd-primary/10 border-fd-primary/10">Visualizing Memory Access</button><button type="button" class="transition-colors text-nowrap border border-transparent rounded-lg px-3 py-2.5 text-start text-sm text-fd-muted-foreground font-medium hover:text-fd-accent-foreground/80">Block Scheduling Costs</button><button type="button" class="transition-colors text-nowrap border border-transparent rounded-lg px-3 py-2.5 text-start text-sm text-fd-muted-foreground font-medium hover:text-fd-accent-foreground/80">Warp Scheduling Tailing Effect</button><button type="button" class="transition-colors text-nowrap border border-transparent rounded-lg px-3 py-2.5 text-start text-sm text-fd-muted-foreground font-medium hover:text-fd-accent-foreground/80">Async Copy Exposed Latency</button><button type="button" class="transition-colors text-nowrap border border-transparent rounded-lg px-3 py-2.5 text-start text-sm text-fd-muted-foreground font-medium hover:text-fd-accent-foreground/80">And Contributing Your Demo!</button></div><style>
21          @keyframes why-interactive-x {
22            from {
23              width: 0px;
24            }
25            
26            to {
27              width: 100%;
28            }
29          }</style><div class="flex-1 p-4 border border-fd-primary/10 bg-fd-card/40 rounded-lg shadow-lg"><div class="duration-700 animate-in fade-in text-sm prose"><h3>How your kernel access memory?</h3><p>Memory Access plays vital role in GPU performance engineering, but we know very little about that. Neutrino makes it easy for developers to visualize their memory access pattern with the novel DMAT plot via simply <code>neutrino -p dmat</code></p><a href="https://colab.research.google.com/drive/1RTcJfn32Ocx9B_icgpiDiC2WEHTKp1JB?usp=sharing" target="_blank" rel="noopener noreferrer"><img alt="Open in Colab" loading="lazy" width="160" height="40" decoding="async" data-nimg="1" style="color:transparent;display:inline-block;vertical-align:middle;margin-top:12px" src="https://colab.research.google.com/assets/colab-badge.svg"/></a></div></div></div></div><div class="flex flex-col border-b border-r md:flex-row *:border-l *:border-t"><div class="group flex flex-col min-w-0 flex-1 pt-8 **:transition-colors"><h2 class="text-center font-extrabold font-mono uppercase mb-4 lg:text-4xl">Fully Open-Sourced and Evaluated</h2><p class="text-center font-mono text-xs text-fd-foreground/60 mb-8 group-hover:text-blue-500/80"></p><div class="group flex flex-row justify-center items-center gap-12"><img alt="artifact-available" loading="lazy" width="96" height="96" decoding="async" data-nimg="1" style="color:transparent" src="/_next/static/media/usenix_available.970778c7.svg"/><img alt="artifact-functional" loading="lazy" width="96" height="96" decoding="async" data-nimg="1" style="color:transparent" src="/_next/static/media/usenix_functional.3639e9da.svg"/><img alt="artifact-reproduced" loading="lazy" width="96" height="96" decoding="async" data-nimg="1" style="color:transparent" src="/_next/static/media/usenix_reproduced.0d937d2f.svg"/></div><p class="text-center font-mono text-xs text-fd-foreground/60 mb-8 group-hover:text-blue-500/80"></p></div><ul class="flex flex-col gap-4 p-6 pt-8"><li><span class="flex flex-row items-center gap-2 font-medium"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-battery-charging size-5" aria-hidden="true"><path d="m11 7-3 5h4l-3 5"></path><path d="M14.856 6H16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.935"></path><path d="M22 14v-4"></path><path d="M5.14 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2.936"></path></svg>Battery guaranteed.</span><span class="mt-2 text-sm text-fd-muted-foreground">Actively maintained, open for contributions.</span></li><li><span class="flex flex-row items-center gap-2 font-medium"><svg viewBox="0 0 24 24" class="size-5" fill="currentColor"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path></svg>
29Fully open-source.</span><span class="mt-2 text-sm text-fd-muted-foreground">Open source, available on Github.</span></li><li><span class="flex flex-row items-center gap-2 font-medium"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-external-link size-5" aria-hidden="true"><path d="M15 3h6v6"></path><path d="M10 14 21 3"></path><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path></svg>Truly Collaborative.</span><span class="mt-2 text-sm text-fd-muted-foreground">Share your probe via Issues or Gists.</span></li><li class="flex flex-row flex-wrap gap-2 mt-auto"><a class="inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-fd-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring disabled:pointer-events-none disabled:opacity-50 bg-gradient-to-b from-fd-primary to-fd-primary/60 text-fd-primary-foreground shadow-fd-background/20 hover:bg-fd-primary/90 h-10 px-4 py-2" href="/docs">Read docs</a><a href="https://github.com/open-neutrino/neutrino" rel="noreferrer noopener" class="inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-fd-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring disabled:pointer-events-none disabled:opacity-50 border bg-gradient-to-t from-fd-primary/10 shadow-fd-primary/10 hover:bg-fd-accent/50 hover:text-fd-accent-foreground h-10 px-4 py-2">Check codes</a></li></ul></div></div></main><!--$--><!--/$--><!--$--><!--/$--></main>
29<script src="/_next/static/chunks/webpack-5cb5f438e4923c75.js" async=""></script>
29<script>(self.__next_f=self.__next_f||[]).push([0])</script>
29<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[3128,[\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"493\",\"static/chunks/493-22e9dc7fbfdea194.js\",\"177\",\"static/chunks/app/layout-c704b2e4b9cc746f.js\"],\"RootProvider\"]\n3:I[7555,[],\"\"]\n4:I[1295,[],\"\"]\n5:I[1339,[\"459\",\"static/chunks/459-3343952df99202c2.js\",\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"371\",\"static/chunks/371-f6e78e78e3a20544.js\",\"468\",\"static/chunks/468-4edc99a1fcb3f5e1.js\",\"36\",\"static/chunks/36-7e56e85e44f3b80d.js\",\"790\",\"static/chunks/app/(home)/layout-f4e8b00021f70a27.js\"],\"NavProvider\"]\n6:I[7110,[\"459\",\"static/chunks/459-3343952df99202c2.js\",\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"371\",\"static/chunks/371-f6e78e78e3a20544.js\",\"468\",\"static/chunks/468-4edc99a1fcb3f5e1.js\",\"36\",\"static/chunks/36-7e56e85e44f3b80d.js\",\"790\",\"static/chunks/app/(home)/layout-f4e8b00021f70a27.js\"],\"Navbar\"]\n7:I[2808,[\"459\",\"static/chunks/459-3343952df99202c2.js\",\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"371\",\"static/chunks/371-f6e78e78e3a20544.js\",\"468\",\"static/chunks/468-4edc99a1fcb3f5e1.js\",\"36\",\"static/chunks/36-7e56e85e44f3b80d.js\",\"790\",\"static/chunks/app/(home)/layout-f4e8b00021f70a27.js\"],\"default\"]\n8:I[3063,[\"459\",\"static/chunks/459-3343952df99202c2.js\",\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"493\",\"static/chunks/493-22e9dc7fbfdea194.js\",\"307\",\"static/chunks/307-39c937c789131bb9.js\",\"813\",\"static/chunks/app/(home)/page-ee5f7953070bfbb1.js\"],\"Image\"]\n9:I[7110,[\"459\",\"static/chunks/459-3343952df99202c2.js\",\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"371\",\"static/chunks/371-f6e78e78e3a20544.js\",\"468\",\"static/chunks/468-4edc99a1fcb3f5e1.js\",\"36\",\"static/chunks/36-7e56e85e44f3b80d.js\",\"790\",\"static/chunks/app/(home)/layout-f4e8b00021f70a27.js\"],\"NavbarMenu\"]\na:I[7110,[\"459\",\"static/chunks/459-3343952df99202c2.js\",\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"371\",\"static/chunks/371-f6e78e78e3a20544.js\",\"468\",\"static/chunks/468-4edc99a1fcb3f5e1.js\",\"36\",\"static/chunks/36-7e56e85e44f3b80d.js\",\"790\",\"static/chunks/app/(home)/layout-f4e8b00021f70a27.js\"],\"NavbarMenuTrigger\"]\nb:I[7110,"])</script>
29<script>self.__next_f.push([1,"[\"459\",\"static/chunks/459-3343952df99202c2.js\",\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"371\",\"static/chunks/371-f6e78e78e3a20544.js\",\"468\",\"static/chunks/468-4edc99a1fcb3f5e1.js\",\"36\",\"static/chunks/36-7e56e85e44f3b80d.js\",\"790\",\"static/chunks/app/(home)/layout-f4e8b00021f70a27.js\"],\"NavbarMenuContent\"]\nc:I[7110,[\"459\",\"static/chunks/459-3343952df99202c2.js\",\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"371\",\"static/chunks/371-f6e78e78e3a20544.js\",\"468\",\"static/chunks/468-4edc99a1fcb3f5e1.js\",\"36\",\"static/chunks/36-7e56e85e44f3b80d.js\",\"790\",\"static/chunks/app/(home)/layout-f4e8b00021f70a27.js\"],\"NavbarMenuLink\"]\nd:I[7110,[\"459\",\"static/chunks/459-3343952df99202c2.js\",\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"371\",\"static/chunks/371-f6e78e78e3a20544.js\",\"468\",\"static/chunks/468-4edc99a1fcb3f5e1.js\",\"36\",\"static/chunks/36-7e56e85e44f3b80d.js\",\"790\",\"static/chunks/app/(home)/layout-f4e8b00021f70a27.js\"],\"NavbarLink\"]\ne:I[5403,[\"459\",\"static/chunks/459-3343952df99202c2.js\",\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"371\",\"static/chunks/371-f6e78e78e3a20544.js\",\"468\",\"static/chunks/468-4edc99a1fcb3f5e1.js\",\"36\",\"static/chunks/36-7e56e85e44f3b80d.js\",\"790\",\"static/chunks/app/(home)/layout-f4e8b00021f70a27.js\"],\"SearchToggle\"]\nf:I[5403,[\"459\",\"static/chunks/459-3343952df99202c2.js\",\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"371\",\"static/chunks/371-f6e78e78e3a20544.js\",\"468\",\"static/chunks/468-4edc99a1fcb3f5e1.js\",\"36\",\"static/chunks/36-7e56e85e44f3b80d.js\",\"790\",\"static/chunks/app/(home)/layout-f4e8b00021f70a27.js\"],\"LargeSearchToggle\"]\n10:I[1624,[\"459\",\"static/chunks/459-3343952df99202c2.js\",\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"371\",\"static/chunks/371-f6e78e78e3a20544.js\",\"468\",\"static/chunks/468-4edc99a1fcb3f5e1.js\",\"36\",\"static/chunks/36-7e56e85e44f3b80d.js\",\"790\",\"static/chunks/app/(home)/layout-f4e8b00021f70a27.js\"],\"ThemeToggle\"]\n11:I[5619,[\"459\",\"static/chunks/459-3343952df99202c2.js\",\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"371\",\"static/chunks/371-f6e78e78e3a20544.js\",\"468\",\"static/chunks/4"])</script>
29<script>self.__next_f.push([1,"68-4edc99a1fcb3f5e1.js\",\"36\",\"static/chunks/36-7e56e85e44f3b80d.js\",\"790\",\"static/chunks/app/(home)/layout-f4e8b00021f70a27.js\"],\"Menu\"]\n12:I[5619,[\"459\",\"static/chunks/459-3343952df99202c2.js\",\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"371\",\"static/chunks/371-f6e78e78e3a20544.js\",\"468\",\"static/chunks/468-4edc99a1fcb3f5e1.js\",\"36\",\"static/chunks/36-7e56e85e44f3b80d.js\",\"790\",\"static/chunks/app/(home)/layout-f4e8b00021f70a27.js\"],\"MenuTrigger\"]\n13:I[5619,[\"459\",\"static/chunks/459-3343952df99202c2.js\",\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"371\",\"static/chunks/371-f6e78e78e3a20544.js\",\"468\",\"static/chunks/468-4edc99a1fcb3f5e1.js\",\"36\",\"static/chunks/36-7e56e85e44f3b80d.js\",\"790\",\"static/chunks/app/(home)/layout-f4e8b00021f70a27.js\"],\"MenuContent\"]\n14:I[5619,[\"459\",\"static/chunks/459-3343952df99202c2.js\",\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"371\",\"static/chunks/371-f6e78e78e3a20544.js\",\"468\",\"static/chunks/468-4edc99a1fcb3f5e1.js\",\"36\",\"static/chunks/36-7e56e85e44f3b80d.js\",\"790\",\"static/chunks/app/(home)/layout-f4e8b00021f70a27.js\"],\"MenuLinkItem\"]\n15:I[6874,[\"459\",\"static/chunks/459-3343952df99202c2.js\",\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"493\",\"static/chunks/493-22e9dc7fbfdea194.js\",\"307\",\"static/chunks/307-39c937c789131bb9.js\",\"813\",\"static/chunks/app/(home)/page-ee5f7953070bfbb1.js\"],\"\"]\n17:I[1682,[\"459\",\"static/chunks/459-3343952df99202c2.js\",\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"493\",\"static/chunks/493-22e9dc7fbfdea194.js\",\"307\",\"static/chunks/307-39c937c789131bb9.js\",\"813\",\"static/chunks/app/(home)/page-ee5f7953070bfbb1.js\"],\"CreateMyAnimation\"]\n19:I[5064,[\"459\",\"static/chunks/459-3343952df99202c2.js\",\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"493\",\"static/chunks/493-22e9dc7fbfdea194.js\",\"307\",\"static/chunks/307-39c937c789131bb9.js\",\"813\",\"static/chunks/app/(home)/page-ee5f7953070bfbb1.js\"],\"Files\"]\n1a:I[5064,[\"459\",\"static/chunks/459-3343952df99202c2.js\",\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"493\",\"static/chunks/493-22e9dc7fbfdea194.js\",\"307\",\"static/chunks/307-39c937c78"])</script>
29<script>self.__next_f.push([1,"9131bb9.js\",\"813\",\"static/chunks/app/(home)/page-ee5f7953070bfbb1.js\"],\"Folder\"]\n1b:I[5064,[\"459\",\"static/chunks/459-3343952df99202c2.js\",\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"493\",\"static/chunks/493-22e9dc7fbfdea194.js\",\"307\",\"static/chunks/307-39c937c789131bb9.js\",\"813\",\"static/chunks/app/(home)/page-ee5f7953070bfbb1.js\"],\"File\"]\n1c:I[1682,[\"459\",\"static/chunks/459-3343952df99202c2.js\",\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"493\",\"static/chunks/493-22e9dc7fbfdea194.js\",\"307\",\"static/chunks/307-39c937c789131bb9.js\",\"813\",\"static/chunks/app/(home)/page-ee5f7953070bfbb1.js\"],\"SupportTable\"]\n1d:I[1682,[\"459\",\"static/chunks/459-3343952df99202c2.js\",\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"493\",\"static/chunks/493-22e9dc7fbfdea194.js\",\"307\",\"static/chunks/307-39c937c789131bb9.js\",\"813\",\"static/chunks/app/(home)/page-ee5f7953070bfbb1.js\"],\"Why\"]\n1e:I[9665,[],\"MetadataBoundary\"]\n20:I[9665,[],\"OutletBoundary\"]\n23:I[4911,[],\"AsyncMetadataOutlet\"]\n25:I[9665,[],\"ViewportBoundary\"]\n27:I[6614,[],\"\"]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/7a95a21c295627fa.css\",\"style\"]\n"])</script>
29<script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"ezN3Piz5_i47y-bUmNcAi\",\"p\":\"\",\"c\":[\"\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"(home)\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/7a95a21c295627fa.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"__className_e8ce0c\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"flex flex-col min-h-screen\",\"children\":[\"$\",\"$L2\",null,{\"search\":{\"options\":{\"type\":\"static\"}},\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}],{\"children\":[\"(home)\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"transparentMode\":\"$undefined\",\"children\":[\"$\",\"main\",null,{\"id\":\"nd-home-layout\",\"children\":[[\"$\",\"$L6\",null,{\"children\":[[\"$\",\"$L7\",null,{\"href\":\"/\",\"className\":\"inline-flex items-center gap-2.5 font-semibold\",\"children\":[[\"$\",\"$L8\",null,{\"src\":{\"src\":\"/_next/static/media/logo.60f7ead8.svg\",\"height\":512,\"width\":512,\"blurWidth\":0,\"blurHeight\":0},\"alt\":\"logo\",\"width\":\"24\",\"height\":\"24\"}],\"Neutrino\"]}],\"$undefined\",[\"$\",\"ul\",null,{\"className\":\"flex flex-row items-center gap-2 px-6 max-sm:hidden\",\"children\":[[\"$\",\"div\",\"0\",{\"className\":\"text-sm\",\"children\":[\"$\",\"$L9\",null,{\"children\":[[\"$\",\"$La\",null,{\"children\":\"Documentation\"}],[\"$\",\"$Lb\",null,{\"children\":[[\"$\",\"$Lc\",null,{\"href\":\"/docs\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-1 flex-col justify-center\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"mb-2 text-xl font-bold\",\"children\":\"Getting Started\"}],[\"$\",\"p\",null,{\"className\":\"text-fd-muted-foreground\",\"children\":\"Learn to use Neutrino on your hardware and software\"}]]}]}],[\"$\",\"$Lc\",null,{\"href\":\"/docs/write-probes\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-1 flex-col justify-center\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"mb-2 text-xl font-bold\",\"children\":\"Programming Probes\"}],[\"$\",\"p\",null,{\"className\":\"text-fd-muted-foreground\",\"children\":\"Learn to write your probe for your workload\"}]]}]}],[\"$\",\"$Lc\",null,{\"href\":\"/docs/system-workflow\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-1 flex-col justify-center\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"mb-2 text-xl font-bold\",\"children\":\"Reference and Internals\"}],[\"$\",\"p\",null,{\"className\":\"text-fd-muted-foreground\",\"children\":\"Learn how Neutrino works under the water\"}]]}]}]]}]]}]}],[\"$\",\"$Ld\",\"1\",{\"className\":\"text-sm\",\"item\":{\"text\":\"Blog\",\"url\":\"/blog\",\"secondary\":false},\"variant\":\"$undefined\",\"aria-label\":\"$undefined\",\"children\":\"Blog\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-row items-center justify-end gap-1.5 flex-1\",\"children\":[[[\"$\",\"$Le\",null,{\"className\":\"p-2 lg:hidden\",\"hideIfDisabled\":true}],[\"$\",\"$Lf\",null,{\"className\":\"w-full rounded-full ps-2.5 max-w-[240px] max-lg:hidden\",\"hideIfDisabled\":true}]],[\"$\",\"$L10\",null,{\"className\":\"max-lg:hidden\",\"mode\":\"$undefined\"}],null]}],[\"$\",\"ul\",null,{\"className\":\"flex flex-row items-center\",\"children\":[[[\"$\",\"$Ld\",\"0\",{\"className\":\"max-lg:hidden\",\"item\":{\"type\":\"icon\",\"url\":\"https://github.com/open-neutrino/neutrino\",\"text\":\"Github\",\"label\":\"GitHub\",\"icon\":[\"$\",\"svg\",null,{\"role\":\"img\",\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"d\":\"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"}]}],\"external\":true},\"variant\":\"icon\",\"aria-label\":\"GitHub\",\"children\":\"$0:f:0:1:2:children:1:props:children:1:props:children:props:children:0:props:children:4:props:children:0:0:props:item:icon\"}]],[\"$\",\"$L11\",null,{\"className\":\"lg:hidden\",\"children\":[[\"$\",\"$L12\",null,{\"aria-label\":\"Toggle Menu\",\"className\":\"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [\u0026_svg]:size-5 group -me-1.5\",\"enableHover\":\"$undefined\",\"children\":[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
29:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide !size-5.5 transition-transform duration-300 group-data-[state=open]:rotate-180\",\"children\":[[[\"$\",\"path\",\"qrunsl\",{\"d\":\"m6 9 6 6 6-6\"}]],\"$undefined\"]}]}],[\"$\",\"$L13\",null,{\"className\":\"sm:flex-row sm:items-center sm:justify-end\",\"children\":[[[\"$\",\"$L14\",\"0\",{\"item\":\"$0:f:0:1:2:children:1:props:children:1:props:children:props:children:0:props:children:2:props:children:1:props:item\",\"className\":\"sm:hidden\"}]],[\"$\",\"div\",null,{\"className\":\"-ms-1.5 flex flex-row items-center gap-1.5 max-sm:mt-2\",\"children\":[[[\"$\",\"$L14\",\"0\",{\"item\":\"$0:f:0:1:2:children:1:props:children:1:props:children:props:children:0:props:children:4:props:children:0:0:props:item\",\"className\":\"-me-1.5\"}]],[\"$\",\"div\",null,{\"role\":\"separator\",\"className\":\"flex-1\"}],null,[\"$\",\"$L10\",null,{\"mode\":\"$undefined\"}]]}]]}]]}]]}]]}],[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]],\"className\":\"flex flex-1 flex-col pt-14\"}]}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"main\",null,{\"className\":\"container relative max-w-[1100px] px-2 py-4 z-[2] lg:py-8\",\"children\":[\"$\",\"div\",null,{\"style\":{\"background\":\"repeating-linear-gradient(to bottom, transparent, color-mix(in oklab, var(--color-fd-primary) 1%, transparent) 500px, transparent 1000px)\"},\"children\":[[\"$\",\"div\",null,{\"className\":\"relative\",\"children\":[[\"$\",\"div\",null,{\"className\":\"relative z-[2] flex flex-col border-x border-t bg-fd-background/80 px-4 pt-12 max-md:text-center md:px-12 md:pt-16 [.uwu_\u0026]:hidden overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute inset-0 z-[-1] blur-2xl hidden dark:block\",\"style\":{\"maskImage\":\"linear-gradient(to bottom, transparent, white, transparent)\",\"background\":\"repeating-linear-gradient(65deg, var(--color-blue-500), var(--color-blue-500) 12px, color-mix(in oklab, var(--color-blue-600) 30%, transparent) 20px, transparent 200px)\"}}],[\"$\",\"div\",null,{\"className\":\"absolute inset-0 z-[-1] blur-2xl dark:hidden\",\"style\":{\"maskImage\":\"linear-gradient(to bottom, transparent, white, transparent)\",\"background\":\"repeating-linear-gradient(65deg, var(--color-purple-300), var(--color-purple-300) 12px, color-mix(in oklab, var(--color-blue-600) 30%, transparent) 20px, transparent 200px)\"}}],[\"$\",\"h1\",null,{\"className\":\"mb-8 max-w-[600px] text-4xl font-medium\",\"children\":\"Fine-grained GPU Kernel Profiling via Programmable Probing\"}],[\"$\",\"p\",null,{\"className\":\"mb-8 text-fd-muted-foreground md:max-w-[80%] md:text-xl\",\"children\":[\"Neutrino is a GPU Assembly Probing Framework for GPU Kernel Profiling, Fine-grained, Versatile, Programmable, with \",[\"$\",\"$L15\",null,{\"href\":\"https://ebpf.io\",\"className\":\"underline\",\"children\":\"eBPF\"}],\"-like User Interface.\"]}],[\"$\",\"a\",null,{\"href\":\"https://www.usenix.org/conference/osdi25/presentation/huang-songlin\",\"target\":\"_blank\",\"rel\":\"noreferrer noopener\",\"className\":\"mb-8 italic font-semibold md:max-w-[80%] md:text-xl underline\",\"children\":\"Accepted by OSDI 25, Artifact Evaluated.\"}],[\"$\",\"div\",null,{\"className\":\"inline-flex items-center gap-3 max-md:mx-auto\",\"children\":[[\"$\",\"$L15\",null,{\"href\":\"/Neutrino-Preprint.pdf\",\"className\":\"inline-flex items-center justify-center text-sm font-medium ring-offset-fd-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring disabled:pointer-events-none disabled:opacity-50 bg-gradient-to-b from-fd-primary to-fd-primary/60 text-fd-
29primary-foreground shadow-fd-background/20 hover:bg-fd-primary/90 h-11 px-6 rounded-full\",\"children\":\"Paper\"}],[\"$\",\"a\",null,{\"href\":\"https://github.com/open-neutrino/neutrino\",\"rel\":\"noreferrer noopener\",\"className\":\"inline-flex items-center justify-center text-sm font-medium ring-offset-fd-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring disabled:pointer-events-none disabled:opacity-50 border from-fd-primary/10 shadow-fd-primary/10 hover:bg-fd-accent/50 hover:text-fd-accent-foreground h-11 px-6 rounded-full bg-fd-background\",\"children\":\"Code\"}],[\"$\",\"$L15\",null,{\"href\":\"/docs\",\"className\":\"inline-flex items-center justify-center text-sm font-medium ring-offset-fd-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring disabled:pointer-events-none disabled:opacity-50 bg-gradient-to-b from-fd-primary to-fd-primary/60 text-fd-primary-foreground shadow-fd-background/20 hover:bg-fd-primary/90 h-11 px-6 rounded-full\",\"children\":\"Docs\"}],[\"$\",\"$L15\",null,{\"href\":\"/blog\",\"rel\":\"noreferrer noopener\",\"className\":\"inline-flex items-center justify-center text-sm font-medium ring-offset-fd-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring disabled:pointer-events-none disabled:opacity-50 border from-fd-primary/10 shadow-fd-primary/10 hover:bg-fd-accent/50 hover:text-fd-accent-foreground h-11 px-6 rounded-full bg-fd-background\",\"children\":\"Blog\"}]]}],[\"$\",\"div\",null,{\"className\":\"mt-12 min-w-[800px] overflow-hidden xl:-mx-12 dark:[mask-image:linear-gradient(to_top,transparent,white_40px)]\"}]]}],[\"$\",\"div\",null,{\"className\":\"z-[2] hidden flex-col items-center pb-8 text-center bg-fd-background border-x border-t [.uwu_\u0026]:flex\",\"children\":[[\"$\",\"$L8\",null,{\"alt\":\"logo\",\"src\":{\"src\":\"/_next/static/media/logo.2ad4f518.png\",\"height\":696,\"width\":1337,\"blurDataURL\":\"data:image/png;
29base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAECAMAAACEE47CAAAARVBMVEW9x+3F0vO5xee7w+2ww+uqt+ejzu60wPGKyu+PxOqqxe+twe+zzPOpt/CRyuugyfKe4vqNxeudz/Sr2/y/0e59tOTa5P9kLQYgAAAAEnRSTlOcwkLoDHNRiP77qNT9npHfNXMEQZanAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAK0lEQVR4nAXBCQIAEAgEwEVJbsL/n2oGccXZc/AYW1PSA/Crd5sxqElxEPoYkgFKmxol1AAAAABJRU5ErkJggg==\",\"blurWidth\":8,\"blurHeight\":4},\"className\":\"mb-6 w-full max-w-[400px] px-4\",\"priority\":true}],[\"$\",\"p\",null,{\"className\":\"mb-6 h-fit p-2 text-lg text-fd-muted-foreground md:max-w-[80%] md:text-xl\",\"children\":[\"Fumadocs is the framework for building documentation with\",\" \",[\"$\",\"b\",null,{\"className\":\"font-medium text-fd-foreground\",\"children\":\"anime and fuwa fuwa power\"}],\". Using the power of weebs and waifus.\"]}],[\"$\",\"div\",null,{\"className\":\"inline-flex items-center gap-3\",\"children\":[[\"$\",\"$L15\",null,{\"href\":\"/docs\",\"className\":\"inline-flex items-center justify-center text-sm font-medium ring-offset-fd-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring disabled:pointer-events-none disabled:opacity-50 bg-gradient-to-b from-fd-primary to-fd-primary/60 text-fd-primary-foreground shadow-fd-background/20 hover:bg-fd-primary/90 h-11 px-6 rounded-full\",\"children\":\"Getting Started\"}],[\"$\",\"a\",null,{\"href\":\"https://stackblitz.com/~/github.com/fuma-nama/fumadocs-ui-template\",\"className\":\"inline-flex items-center justify-center text-sm font-medium ring-offset-fd-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring disabled:pointer-events-none disabled:opacity-50 border from-fd-primary/10 shadow-fd-primary/10 hover:bg-fd-accent/50 hover:text-fd-accent-foreground h-11 px-6 rounded-full bg-fd-background\",\"children\":\"Open Demo\"}]]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 border-r md:grid-cols-2 lg:grid-cols-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"col-span-full flex flex-row items-start justify-center border-l border-t p-8 pb-2 text-center\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"bg-fd-primary text-fd-primary-foreground px-1 text-3xl font-semibold\",\"children\":\"Highlights\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-mouse-pointer -ml-1 mt-8\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"ea5xo7\",{\"d\":\"M12.586 12.586 19 19\"}],[\"$\",\"path\",\"277e5u\",{\"d\":\"M3.688 3.037a.497.497 0 0 0-.651.651l6.5 15.999a.501.501 0 0 0 .947-.062l1.569-6.083a2 2 0 0 1 1.448-1.479l6.124-1.579a.5.5 0 0 0 .063-.947z\"}],\"$undefined\"]}]]}],[\"$\",\"div\",null,{\"className\":\"border-l border-t px-6 py-12\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-4 flex flex-row items-center gap-2 text-fd-muted-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-pencil-line size-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"t2du7b\",{\"d\":\"M12 20h9\"}],[\"$\",\"path\",\"1ykcvy\",{\"d\":\"M16.376 3.622a1 1 0 0 1 3.002 3.002L7.368 18.635a2 2 0 0 1-.855.506l-2.872.838a.5.5 0 0 1-.62-.62l.838-2.872a2 2 0 0 1 .506-.854z\"}],[\"$\",\"path\",\"1w25hb\",{\"d\":\"m15 5 3 3\"}],\"$undefined\"]}],[\"$\",\"h2\",null,{\"className\":\"text-sm font-medium\",\"children\":\"Programmability\"}]]}],[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Easily customizes profiling via Pythonic DSL or Handcrafting Asms!\"}]]}],[\"$\",\"div\",null,{\"className\":\"border-l border-t px-6 py-12\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-4 flex flex-row items-center gap-2 text-fd-muted-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
29:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-locate-fixed size-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"line\",\"bvdh0s\",{\"x1\":\"2\",\"x2\":\"5\",\"y1\":\"12\",\"y2\":\"12\"}],[\"$\",\"line\",\"1tbv5k\",{\"x1\":\"19\",\"x2\":\"22\",\"y1\":\"12\",\"y2\":\"12\"}],[\"$\",\"line\",\"11lu5j\",{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"2\",\"y2\":\"5\"}],[\"$\",\"line\",\"x3vr5v\",{\"x1\":\"12\",\"x2\":\"12\",\"y1\":\"19\",\"y2\":\"22\"}],[\"$\",\"circle\",\"fim9np\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"7\"}],[\"$\",\"circle\",\"1v7zrd\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"}],\"$undefined\"]}],[\"$\",\"h2\",null,{\"className\":\"text-sm font-medium\",\"children\":\"Fine-Granularity\"}]]}],[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Operates on assemblies for finest instruction-level control!\"}]]}],[\"$\",\"div\",null,{\"className\":\"border-l border-t px-6 py-12\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-4 flex flex-row items-center gap-2 text-fd-muted-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-rocket size-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"m3kijz\",{\"d\":\"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z\"}],[\"$\",\"path\",\"1fmvmk\",{\"d\":\"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z\"}],[\"$\",\"path\",\"1f8sc4\",{\"d\":\"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0\"}],[\"$\",\"path\",\"qeys4\",{\"d\":\"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5\"}],\"$undefined\"]}],[\"$\",\"h2\",null,{\"className\":\"text-sm font-medium\",\"children\":\"Versatility\"}]]}],[\"$\",\"span\",null,{\"className\":\"font-medium\",\"children\":\"Covers both value- and time- profiling for complex and interesting profiling!\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"relative overflow-hidden border-x border-t px-6 py-8\",\"style\":{\"backgroundImage\":\"radial-gradient(circle at center, var(--color-fd-secondary), var(--color-fd-background) 40%)\"},\"children\":[\"$\",\"h2\",null,{\"className\":\"text-center text-2xl font-semibold sm:text-3xl\",\"children\":\"Easy-to-use for Performance Engineers.\"}]}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 border-r md:grid-cols-2\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-2 border-l border-t px-6 py-10 md:py-12\",\"children\":[[\"$\",\"div\",null,{\"className\":\"inline-flex size-7 items-center justify-center rounded-full bg-fd-primary font-medium text-fd-
29primary-foreground\",\"children\":\"1\"}],[\"$\",\"h3\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Write the probe.\"}],[\"$\",\"p\",null,{\"className\":\"text-fd-muted-foreground\",\"children\":\"Define contexted registers, Maps and Probes in Tracing DSL.\"}],[\"$\",\"div\",null,{\"className\":\"relative flex flex-col max-h-64 sm:max-h-80 overflow-y-auto\",\"children\":\"$L16\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-2 border-l border-t px-6 py-10 md:py-12\",\"children\":[[\"$\",\"div\",null,{\"className\":\"inline-flex size-7 items-center justify-center rounded-full bg-fd-primary font-medium text-fd-primary-foreground\",\"children\":\"2\"}],[\"$\",\"h3\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Run it.\"}],[\"$\",\"p\",null,{\"className\":\"mb-4 text-fd-muted-foreground\",\"children\":\"Apply probes to your workload with simple CLI.\"}],[\"$\",\"$L17\",null,{}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-2 border-l border-t px-6 py-10 md:py-12\",\"children\":[[\"$\",\"div\",null,{\"className\":\"inline-flex size-7 items-center justify-center rounded-full bg-fd-primary font-medium text-fd-
29primary-foreground\",\"children\":\"3\"}],[\"$\",\"h3\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Analyze the Trace.\"}],[\"$\",\"p\",null,{\"className\":\"text-fd-muted-foreground\",\"children\":\"Easily reading traces with auto-generated code for analysis.\"}],[\"$\",\"div\",null,{\"className\":\"relative flex flex-col max-h-64 sm:max-h-80 overflow-y-auto\",\"children\":[\"$L18\",[\"$\",\"$L19\",null,{\"className\":\"z-[2] mt-40 shadow-xl\",\"children\":[\"$\",\"$L1a\",null,{\"name\":\"trace\",\"defaultOpen\":true,\"children\":[[\"$\",\"$L1a\",null,{\"name\":\"kernel\",\"children\":[[\"$\",\"$L1b\",null,{\"name\":\"process.log\"}],[\"$\",\"$L1b\",null,{\"name\":\"original.bin\"}],[\"$\",\"$L1b\",null,{\"name\":\"original.asm\"}],[\"$\",\"$L1b\",null,{\"name\":\"pruned.asm\"}],[\"$\",\"$L1b\",null,{\"name\":\"probed.asm\"}],[\"$\",\"$L1b\",null,{\"name\":\"probed.bin\"}]]}],[\"$\",\"$L1a\",null,{\"name\":\"results\",\"children\":[\"$\",\"$L1b\",null,{\"name\":\"1.231891.bin\"}]}],[\"$\",\"$L1b\",null,{\"name\":\"event.log\"}]]}]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-2 border-l border-t px-6 py-10 md:py-12\",\"children\":[[\"$\",\"div\",null,{\"className\":\"inline-flex size-7 items-center justify-center rounded-full bg-fd-primary font-medium text-fd-
29primary-foreground\",\"children\":\"4\"}],[\"$\",\"h3\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Share it.\"}],[\"$\",\"p\",null,{\"className\":\"mb-4 text-fd-muted-foreground\",\"children\":\"Share your probes with community via Github Issues or Gists.\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"relative overflow-hidden border-x border-t px-6 py-8\",\"style\":{\"backgroundImage\":\"radial-gradient(circle at center, var(--color-fd-secondary), var(--color-fd-background) 40%)\"},\"children\":[\"$\",\"h2\",null,{\"className\":\"text-center text-2xl font-semibold sm:text-3xl\",\"children\":\"Compatible with Most Ecosystem.\"}]}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 border-r md:grid-cols-2\",\"children\":[[\"$\",\"div\",null,{\"className\":\"border-l border-t px-6 py-12 md:py-12 overflow-hidden\",\"style\":{\"backgroundImage\":\"radial-gradient(circle at 60% 50%,var(--color-fd-secondary),var(--color-fd-background) 80%)\"},\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-4 inline-flex items-center gap-2 text-sm font-medium text-fd-muted-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-gpu size-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1bzk4w\",{\"d\":\"M2 21V3\"}],[\"$\",\"path\",\"1d64pi\",{\"d\":\"M2 5h18a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2.26\"}],[\"$\",\"path\",\"5hbqbf\",{\"d\":\"M7 17v3a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1v-3\"}],[\"$\",\"circle\",\"qt15rb\",{\"cx\":\"16\",\"cy\":\"11\",\"r\":\"2\"}],[\"$\",\"circle\",\"ssideg\",{\"cx\":\"8\",\"cy\":\"11\",\"r\":\"2\"}],\"$undefined\"]}],[\"$\",\"p\",null,{\"children\":\"Hardware Compatibility\"}]]}],[\"$\",\"h2\",null,{\"className\":\"mb-2 text-lg font-semibold\",\"children\":\"Works fluently on commonly used hardwares.\"}],[\"$\",\"p\",null,{\"className\":\"text-fd-muted-foreground\",\"children\":\"$undefined\"}],[\"$\",\"$L1c\",null,{\"type\":{\"NVIDIA/CUDA\":\"✅ Fully Supported\",\"AMD/ROCm\":\"✅ Supported on CDNA\",\"Intel/oneAPI\":\"🚀 Planning\",\"More to Come!\":\"Raise Github Issue if you need!\"}}]]}],[\"$\",\"div\",null,{\"className\":\"border-l border-t px-6 py-12 md:py-12\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-4 inline-flex items-center gap-2 text-sm font-medium text-fd-muted-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-file-code2 lucide-file-code-2 size-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1pf5j1\",{\"d\":\"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4\"}],[\"$\",\"path\",\"tnqrlb\",{\"d\":\"M14 2v4a2 2 0 0 0 2 2h4\"}],[\"$\",\"path\",\"oke12k\",{\"d\":\"m5 12-3 3 3 3\"}],[\"$\",\"path\",\"112psh\",{\"d\":\"m9 18 3-3-3-3\"}],\"$undefined\"]}],[\"$\",\"p\",null,{\"children\":\"Software Compatibility\"}]]}],[\"$\",\"h2\",null,{\"className\":\"mb-2 text-lg font-semibold\",\"children\":\"Integrated seamlessly with ecosystems\"}],[\"$\",\"p\",null,{\"className\":\"text-fd-muted-foreground\",\"children\":\"\"}],[\"$\",\"$L1c\",null,{\"type\":{\"PyTorch (and everything on top)\":\"✅ Supported (with custom build)\",\"Triton\":\"✅ Supported\",\"JAX\":\"✅ Supported (with envariable)\",\"More to Come!\":\"Raise Github Issue if you need!\"}}]]}]]}],[\"$\",\"div\",null,{\"className\":\"relative overflow-hidden border-x border-t px-6 py-8\",\"style\":{\"backgroundImage\":\"radial-gradient(circle at center, var(--color-fd-secondary), var(--color-fd-background) 40%)\"},\"children\":[\"$\",\"h2\",null,{\"className\":\"text-center text-2xl font-semibold sm:text-3xl\",\"children\":\"Hackable for your need.\"}]}],[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-4 border-x border-t p-8 md:px-12 lg:flex-row\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-start items-center justify-center w-full\",\"children\":[[\"$\",\"p\",null,{\"className\":\"px-2 py-1 text-sm font-mono bg-fd-primary text-fd-
29primary-foreground font-bold w-fit mb-4\",\"children\":\"Designed with Extensibility\"}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-semibold mb-4\",\"children\":\"An approachable framework.\"}],[\"$\",\"p\",null,{\"className\":\"text-fd-muted-foreground mb-6\",\"children\":\"Neutrino consists of three components: Entry \u0026 Compiler, Hook Driver, and the Probe Engine. All can be easily extended.\"}]]}],[\"$\",\"$L8\",null,{\"src\":{\"src\":\"/_next/static/media/workflow.bae5511f.svg\",\"height\":146,\"width\":314,\"blurWidth\":0,\"blurHeight\":0},\"alt\":\"Architecture\",\"className\":\"justify-center items-center w-full max-w-[450px]\"}]]}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 border-r md:grid-cols-2\",\"children\":[[\"$\",\"div\",null,{\"className\":\"border-l border-t px-6 py-12 md:py-12 overflow-hidden\",\"style\":{\"backgroundImage\":\"radial-gradient(circle at 60% 50%,var(--color-fd-secondary),var(--color-fd-background) 80%)\"},\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-4 inline-flex items-center gap-2 text-sm font-medium text-fd-muted-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-shrimp size-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1lr4k6\",{\"d\":\"M11 12h.01\"}],[\"$\",\"path\",\"fatpdi\",{\"d\":\"M13 22c.5-.5 1.12-1 2.5-1-1.38 0-2-.5-2.5-1\"}],[\"$\",\"path\",\"kehrqe\",{\"d\":\"M14 2a3.28 3.28 0 0 1-3.227 1.798l-6.17-.561A2.387 2.387 0 1 0 4.387 8H15.5a1 1 0 0 1 0 13 1 1 0 0 0 0-5H12a7 7 0 0 1-7-7V8\"}],[\"$\",\"path\",\"1imjx2\",{\"d\":\"M14 8a8.5 8.5 0 0 1 0 8\"}],[\"$\",\"path\",\"z0nejz\",{\"d\":\"M16 16c2 0 4.5-4 4-6\"}],\"$undefined\"]}],[\"$\",\"p\",null,{\"children\":\"Hook Driver\"}]]}],[\"$\",\"h2\",null,{\"className\":\"mb-2 text-lg font-semibold\",\"children\":\"\"}],[\"$\",\"p\",null,{\"className\":\"text-fd-muted-foreground\",\"children\":[\"$\",\"span\",null,{\"className\":\"font-medium text-fd-foreground\",\"children\":\"Hook driver captures driver call (load \u0026 launch) to provide runtime support, such as caching code(assembly) loaded.\"}]}],[\"$\",\"div\",null,{\"className\":\"flex justify-center items-center py-8\",\"children\":[\"$\",\"$L8\",null,{\"src\":{\"src\":\"/_next/static/media/driver.8f41cf7b.svg\",\"height\":96,\"width\":212,\"blurWidth\":0,\"blurHeight\":0},\"alt\":\"probe engine\",\"className\":\"w-full max-w-[350px] md:max-w-[400px] lg:max-w-[450px] h-auto\"}]}]]}],[\"$\",\"div\",null,{\"className\":\"border-l border-t px-6 py-12 md:py-12\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-4 inline-flex items-center gap-2 text-sm font-medium text-fd-muted-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-picture-in-picture size-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"zwrco\",{\"d\":\"M2 10h6V4\"}],[\"$\",\"path\",\"ug085t\",{\"d\":\"m2 4 6 6\"}],[\"$\",\"path\",\"git5jr\",{\"d\":\"M21 10V7a2 2 0 0 0-2-2h-7\"}],[\"$\",\"path\",\"1f7fh3\",{\"d\":\"M3 14v2a2 2 0 0 0 2 2h3\"}],[\"$\",\"rect\",\"1wjs3o\",{\"x\":\"12\",\"y\":\"14\",\"width\":\"10\",\"height\":\"7\",\"rx\":\"1\"}],\"$undefined\"]}],[\"$\",\"p\",null,{\"children\":\"Probe Engine\"}]]}],[\"$\",\"h2\",null,{\"className\":\"mb-2 text-lg font-semibold\",\"children\":\"\"}],[\"$\",\"p\",null,{\"className\":\"text-fd-muted-foreground\",\"children\":[\"$\",\"span\",null,{\"className\":\"font-medium text-fd-foreground\",\"children\":\"Probe engine extracts, prunes, probes and reassembles the GPU assembly from hook driver with probes from entry.\"}]}],[\"$\",\"div\",null,{\"className\":\"flex justify-center items-center py-8\",\"children\":[\"$\",\"$L8\",null,{\"src\":{\"src\":\"/_next/static/media/engine.d683d56b.svg\",\"height\"
29:96,\"width\":212,\"blurWidth\":0,\"blurHeight\":0},\"alt\":\"probe engine\",\"className\":\"w-full max-w-[350px] md:max-w-[400px] lg:max-w-[450px] h-auto\"}]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"relative overflow-hidden border-x border-t px-6 py-12\",\"style\":{\"backgroundImage\":\"radial-gradient(circle at center, var(--color-fd-secondary), var(--color-fd-background) 40%)\"},\"children\":[\"$\",\"h2\",null,{\"className\":\"text-center text-2xl px-1 font-semibold\",\"children\":\"Demos Available at Simple Clicks.\"}]}],[\"$\",\"$L1d\",null,{}],[\"$\",\"div\",null,{\"className\":\"flex flex-col border-b border-r md:flex-row *:border-l *:border-t\",\"children\":[[\"$\",\"div\",null,{\"className\":\"group flex flex-col min-w-0 flex-1 pt-8 **:transition-colors\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-center font-extrabold font-mono uppercase mb-4 lg:text-4xl\",\"children\":\"Fully Open-Sourced and Evaluated\"}],[\"$\",\"p\",null,{\"className\":\"text-center font-mono text-xs text-fd-foreground/60 mb-8 group-hover:text-blue-500/80\"}],[\"$\",\"div\",null,{\"className\":\"group flex flex-row justify-center items-center gap-12\",\"children\":[[\"$\",\"$L8\",null,{\"src\":{\"src\":\"/_next/static/media/usenix_available.970778c7.svg\",\"height\":96,\"width\":96,\"blurWidth\":0,\"blurHeight\":0},\"alt\":\"artifact-available\"}],[\"$\",\"$L8\",null,{\"src\":{\"src\":\"/_next/static/media/usenix_functional.3639e9da.svg\",\"height\":96,\"width\":96,\"blurWidth\":0,\"blurHeight\":0},\"alt\":\"artifact-functional\"}],[\"$\",\"$L8\",null,{\"src\":{\"src\":\"/_next/static/media/usenix_reproduced.0d937d2f.svg\",\"height\":96,\"width\":96,\"blurWidth\":0,\"blurHeight\":0},\"alt\":\"artifact-reproduced\"}]]}],[\"$\",\"p\",null,{\"className\":\"text-center font-mono text-xs text-fd-foreground/60 mb-8 group-hover:text-blue-500/80\"}]]}],[\"$\",\"ul\",null,{\"className\":\"flex flex-col gap-4 p-6 pt-8\",\"children\":[[\"$\",\"li\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"flex flex-row items-center gap-2 font-medium\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-battery-charging size-5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"b4a64w\",{\"d\":\"m11 7-3 5h4l-3 5\"}],[\"$\",\"path\",\"lre1cr\",{\"d\":\"M14.856 6H16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.935\"}],[\"$\",\"path\",\"14q9d5\",{\"d\":\"M22 14v-4\"}],[\"$\",\"path\",\"13q5k0\",{\"d\":\"M5.14 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2.936\"}],\"$undefined\"]}],\"Battery guaranteed.\"]}],[\"$\",\"span\",null,{\"className\":\"mt-2 text-sm text-fd-muted-foreground\",\"children\":\"Actively maintained, open for contributions.\"}]]}],[\"$\",\"li\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"flex flex-row items-center gap-2 font-medium\",\"children\":[[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"className\":\"size-5\",\"fill\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"d\":\"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"}]}],\"Fully open-source.\"]}],[\"$\",\"span\",null,{\"className\":\"mt-2 text-sm text-fd-muted-foreground\",\"children\":\"Open source, available on Github.\"}]]}],[\"$\",\"li\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"flex flex-row items-center gap-2 font-medium\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
29:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-external-link size-5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1q9fwt\",{\"d\":\"M15 3h6v6\"}],[\"$\",\"path\",\"gplh6r\",{\"d\":\"M10 14 21 3\"}],[\"$\",\"path\",\"a6xqqp\",{\"d\":\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"}],\"$undefined\"]}],\"Truly Collaborative.\"]}],[\"$\",\"span\",null,{\"className\":\"mt-2 text-sm text-fd-muted-foreground\",\"children\":\"Share your probe via Issues or Gists.\"}]]}],[\"$\",\"li\",null,{\"className\":\"flex flex-row flex-wrap gap-2 mt-auto\",\"children\":[[\"$\",\"$L15\",null,{\"href\":\"/docs\",\"className\":\"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-fd-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring disabled:pointer-events-none disabled:opacity-50 bg-gradient-to-b from-fd-primary to-fd-primary/60 text-fd-primary-foreground shadow-fd-background/20 hover:bg-fd-primary/90 h-10 px-4 py-2\",\"children\":\"Read docs\"}],[\"$\",\"a\",null,{\"href\":\"https://github.com/open-neutrino/neutrino\",\"rel\":\"noreferrer noopener\",\"className\":\"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-fd-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring disabled:pointer-events-none disabled:opacity-50 border bg-gradient-to-t from-fd-primary/10 shadow-fd-primary/10 hover:bg-fd-accent/50 hover:text-fd-accent-foreground h-10 px-4 py-2\",\"children\":\"Check codes\"}]]}]]}]]}]]}]}],[\"$\",\"$L1e\",null,{\"children\":\"$L1f\"}],null,[\"$\",\"$L20\",null,{\"children\":[\"$L21\",\"$L22\",[\"$\",\"$L23\",null,{\"promise\":\"$@24\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$1\",\"GBLpL9L3Ms5-Avf9m_2b2\",{\"children\":[[\"$\",\"$L25\",null,{\"children\":\"$L26\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$27\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script>
29<script>self.__next_f.push([1,"28:\"$Sreact.suspense\"\n29:I[4911,[],\"AsyncMetadata\"]\n1f:[\"$\",\"$28\",null,{\"fallback\":null,\"children\":[\"$\",\"$L29\",null,{\"promise\":\"$@2a\"}]}]\n"])</script>
29<script>self.__next_f.push([1,"22:null\n"])</script>
29<script>self.__next_f.push([1,"26:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n21:null\n"])</script>
29<script>self.__next_f.push([1,"2a:{\"metadata\":[],\"error\":null,\"digest\":\"$undefined\"}\n24:{\"metadata\":\"$2a:metadata\",\"error\":null,\"digest\":\"$undefined\"}\n"])</script>
29<script>self.__next_f.push([1,"2b:I[7401,[\"459\",\"static/chunks/459-3343952df99202c2.js\",\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"493\",\"static/chunks/493-22e9dc7fbfdea194.js\",\"307\",\"static/chunks/307-39c937c789131bb9.js\",\"813\",\"static/chunks/app/(home)/page-ee5f7953070bfbb1.js\"],\"CodeBlock\"]\n2c:I[7401,[\"459\",\"static/chunks/459-3343952df99202c2.js\",\"35\",\"static/chunks/35-e6a2aa443a9969c6.js\",\"493\",\"static/chunks/493-22e9dc7fbfdea194.js\",\"307\",\"static/chunks/307-39c937c789131bb9.js\",\"813\",\"static/chunks/app/(home)/page-ee5f7953070bfbb1.js\"],\"Pre\"]\n"])</script>
29<script>self.__next_f.push([1,"16:[\"$\",\"$L2b\",null,{\"children\":[[\"$\",\"$L2c\",\"pre-0\",{\"className\":\"shiki shiki-themes github-light vesper\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#FFF\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#101010\"},\"tabIndex\":\"0\",\"children\":[\"$\",\"code\",\"code-0\",{\"children\":[[\"$\",\"span\",\"span-0\",{\"className\":\"line\",\"children\":[[\"$\",\"span\",\"span-0\",{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"from\"}],[\"$\",\"span\",\"span-1\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\" neutrino \"}],[\"$\",\"span\",\"span-2\",{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"import\"}],[\"$\",\"span\",\"span-3\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\" probe, Map\"}]]}],\"\\n\",[\"$\",\"span\",\"span-1\",{\"className\":\"line\",\"children\":[[\"$\",\"span\",\"span-0\",{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"import\"}],[\"$\",\"span\",\"span-1\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\" neutrino.language \"}],[\"$\",\"span\",\"span-2\",{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"as\"}],[\"$\",\"span\",\"span-3\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\" nl\"}]]}],\"\\n\",[\"$\",\"span\",\"span-2\",{\"className\":\"line\",\"children\":[\"$\",\"span\",\"span-0\",{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#8B8B8B94\"},\"children\":\"# declare maps via decorated class for persistence\"}]}],\"\\n\",[\"$\",\"span\",\"span-3\",{\"className\":\"line\",\"children\":[[\"$\",\"span\",\"span-0\",{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#FFC799\"},\"children\":\"@Map\"}],[\"$\",\"span\",\"span-1\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\"(\"}],[\"$\",\"span\",\"span-2\",{\"style\":{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFF\"},\"children\":\"level\"}],[\"$\",\"span\",\"span-3\",{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"=\"}],[\"$\",\"span\",\"span-4\",{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#99FFE4\"},\"children\":\"\\\"warp\\\"\"}],[\"$\",\"span\",\"span-5\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\", \"}],[\"$\",\"span\",\"span-6\",{\"style\":{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFF\"},\"children\":\"type\"}],[\"$\",\"span\",\"span-7\",{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"=\"}],[\"$\",\"span\",\"span-8\",{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#99FFE4\"},\"children\":\"\\\"array\\\"\"}],[\"$\",\"span\",\"span-9\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\", \"}],[\"$\",\"span\",\"span-10\",{\"style\":{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFF\"},\"children\":\"size\"}],[\"$\",\"span\",\"span-11\",{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"=\"}],[\"$\",\"span\",\"span-12\",{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#FFC799\"},\"children\":\"8\"}],[\"$\",\"span\",\"span-13\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\", \"}],[\"$\",\"span\",\"span-14\",{\"style\":{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFF\"},\"children\":\"cap\"}],[\"$\",\"span\",\"span-15\",{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"=\"}],[\"$\",\"span\",\"span-16\",{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#FFC799\"},\"children\":\"1\"}],[\"$\",\"span\",\"span-17\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\")\"}]]}],\"\\n\",[\"$\",\"span\",\"span-4\",{\"className\":\"line\",\"children\":[[\"$\",\"span\",\"span-0\",{\"style\":{\"--shiki-light\"
29:\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"class\"}],[\"$\",\"span\",\"span-1\",{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#FFC799\"},\"children\":\" block_sched\"}],[\"$\",\"span\",\"span-2\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\":\"}]]}],\"\\n\",[\"$\",\"span\",\"span-5\",{\"className\":\"line\",\"children\":[\"$\",\"span\",\"span-0\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\"  start: nl.u64\"}]}],\"\\n\",[\"$\",\"span\",\"span-6\",{\"className\":\"line\",\"children\":[\"$\",\"span\",\"span-0\",{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#8B8B8B94\"},\"children\":\"# declare probe registers shared across probes\"}]}],\"\\n\",[\"$\",\"span\",\"span-7\",{\"className\":\"line\",\"children\":[[\"$\",\"span\",\"span-0\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\"start: nl.u64 \"}],[\"$\",\"span\",\"span-1\",{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"=\"}],[\"$\",\"span\",\"span-2\",{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#FFC799\"},\"children\":\" 0\"}],[\"$\",\"span\",\"span-3\",{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#8B8B8B94\"},\"children\":\" # starting clock\"}]]}],\"\\n\",[\"$\",\"span\",\"span-8\",{\"className\":\"line\",\"children\":[\"$\",\"span\",\"span-0\",{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#8B8B8B94\"},\"children\":\"# declare probe via decorated function\"}]}],\"\\n\",[\"$\",\"span\",\"span-9\",{\"className\":\"line\",\"children\":[[\"$\",\"span\",\"span-0\",{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#FFC799\"},\"children\":\"@probe\"}],[\"$\",\"span\",\"span-1\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\"(\"}],[\"$\",\"span\",\"span-2\",{\"style\":{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFF\"},\"children\":\"pos\"}],[\"$\",\"span\",\"span-3\",{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"=\"}],[\"$\",\"span\",\"span-4\",{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#99FFE4\"},\"children\":\"\\\"kernel\\\"\"}],[\"$\",\"span\",\"span-5\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\", \"}],[\"$\",\"span\",\"span-6\",{\"style\":{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFF\"},\"children\":\"level\"}],[\"$\",\"span\",\"span-7\",{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"=\"}],[\"$\",\"span\",\"span-8\",{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#99FFE4\"},\"children\":\"\\\"warp\\\"\"}],[\"$\",\"span\",\"span-9\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\", \"}],[\"$\",\"span\",\"span-10\",{\"style\":{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFF\"},\"children\":\"before\"}],[\"$\",\"span\",\"span-11\",{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"=\"}],[\"$\",\"span\",\"span-12\",{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#FFF\"},\"children\":\"True\"}],[\"$\",\"span\",\"span-13\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\")\"}]]}],\"\\n\",[\"$\",\"span\",\"span-10\",{\"className\":\"line\",\"children\":[[\"$\",\"span\",\"span-0\",{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"def\"}],[\"$\",\"span\",\"span-1\",{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#FFC799\"},\"children\":\" thread_start\"}],[\"$\",\"span\",\"span-2\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\"():\"}]]}],\"\\n\",[\"$\",\"span\",\"span-11\",{\"className\":\"line\",\"children\":[[\"$\",\"span\",\"span-0\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\"  start \"}],[\"$\",\"span\",\"span-1\",{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"=\"}
29],[\"$\",\"span\",\"span-2\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\" nl.clock()\"}]]}]]}]}]]}]\n"])</script>
29<script>self.__next_f.push([1,"18:[\"$\",\"$L2b\",null,{\"className\":\"absolute inset-x-2 top-0 shadow-lg\",\"children\":[[\"$\",\"$L2c\",\"pre-0\",{\"className\":\"shiki shiki-themes github-light vesper\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#FFF\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#101010\"},\"tabIndex\":\"0\",\"children\":[\"$\",\"code\",\"code-0\",{\"children\":[[\"$\",\"span\",\"span-0\",{\"className\":\"line\",\"children\":[[\"$\",\"span\",\"span-0\",{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"import\"}],[\"$\",\"span\",\"span-1\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\" struct\"}]]}],\"\\n\",[\"$\",\"span\",\"span-1\",{\"className\":\"line\",\"children\":[[\"$\",\"span\",\"span-0\",{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"from\"}],[\"$\",\"span\",\"span-1\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\" neutrino \"}],[\"$\",\"span\",\"span-2\",{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"import\"}],[\"$\",\"span\",\"span-3\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\" TraceHeader, TraceSection\"}]]}],\"\\n\",[\"$\",\"span\",\"span-2\",{\"className\":\"line\",\"children\":[[\"$\",\"span\",\"span-0\",{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"class\"}],[\"$\",\"span\",\"span-1\",{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#FFC799\"},\"children\":\" block_sched\"}],[\"$\",\"span\",\"span-2\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\"(\"}],[\"$\",\"span\",\"span-3\",{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#FFF\"},\"children\":\"NamedTuple\"}],[\"$\",\"span\",\"span-4\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\"):\"}]]}],\"\\n\",[\"$\",\"span\",\"span-3\",{\"className\":\"line\",\"children\":[[\"$\",\"span\",\"span-0\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\"  start: \"}],[\"$\",\"span\",\"span-1\",{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#FFC799\"},\"children\":\"int\"}]]}],\"\\n\",[\"$\",\"span\",\"span-4\",{\"className\":\"line\",\"children\":[[\"$\",\"span\",\"span-0\",{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"def\"}],[\"$\",\"span\",\"span-1\",{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#FFC799\"},\"children\":\" parse\"}],[\"$\",\"span\",\"span-2\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\"(path: \"}],[\"$\",\"span\",\"span-3\",{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#FFC799\"},\"children\":\"str\"}],[\"$\",\"span\",\"span-4\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\"):\"}]]}],\"\\n\",[\"$\",\"span\",\"span-5\",{\"className\":\"line\",\"children\":[[\"$\",\"span\",\"span-0\",{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"  with\"}],[\"$\",\"span\",\"span-1\",{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#FFC799\"},\"children\":\" open\"}],[\"$\",\"span\",\"span-2\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\"(path, \"}],[\"$\",\"span\",\"span-3\",{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#99FFE4\"},\"children\":\"\\\"rb\\\"\"}],[\"$\",\"span\",\"span-4\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\") \"}],[\"$\",\"span\",\"span-5\",{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"as\"}],[\"$\",\"span\",\"span-6\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\" f:\"}]]}],\"\\n\",[\"$\",\"span\",\"span-6\",{\"className\":\"line\",\"children\":[[\"$\",\"span\",\"span-0\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\"  header: TraceHeader \"}
29],[\"$\",\"span\",\"span-1\",{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"=\"}],[\"$\",\"span\",\"span-2\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\" TraceHeader(struct.unpack(\"}],[\"$\",\"span\",\"span-3\",{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#99FFE4\"},\"children\":\"\\\"iiiiiiii\\\"\"}],[\"$\",\"span\",\"span-4\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\", f.read(\"}],[\"$\",\"span\",\"span-5\",{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#FFC799\"},\"children\":\"32\"}],[\"$\",\"span\",\"span-6\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\")))\"}]]}],\"\\n\",[\"$\",\"span\",\"span-7\",{\"className\":\"line\",\"children\":[[\"$\",\"span\",\"span-0\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\"  sections: List[TraceSection] \"}],[\"$\",\"span\",\"span-1\",{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"=\"}],[\"$\",\"span\",\"span-2\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\" []\"}]]}],\"\\n\",[\"$\",\"span\",\"span-8\",{\"className\":\"line\",\"children\":[[\"$\",\"span\",\"span-0\",{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"  for\"}],[\"$\",\"span\",\"span-1\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\" _ \"}],[\"$\",\"span\",\"span-2\",{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#A0A0A0\"},\"children\":\"in\"}],[\"$\",\"span\",\"span-3\",{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#FFC799\"},\"children\":\" range\"}],[\"$\",\"span\",\"span-4\",{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#FFF\"},\"children\":\"(header.numProbes):)\"}]]}]]}]}]]}]\n"])</script>
29</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.