Buckets:

HuggingFaceDocBuilder's picture
download
raw
25.6 kB
import{s as AT,n as QT,o as wT}from"../chunks/scheduler.f3b1e791.js";import{S as mT,i as RT,e as O,s as t,c as M,h as DT,a as y,d as e,b as U,f as iT,g as I,j as A,k as aT,l as kT,m as J,n,t as s,o as i,p as a}from"../chunks/index.023a9934.js";import{C as rT}from"../chunks/CopyLLMTxtMenu.786904d8.js";import{C as Q}from"../chunks/CodeBlock.caaec8f6.js";import{H as m,E as pT}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.514326e9.js";function cT(Fl){let w,Ul,Jl,Ol,R,Ml,D,yl,k,Hl="Use <code>kernels benchmark</code> to run benchmark scripts shipped with a kernel repository.",Il,r,Ll="The command:",nl,p,zl="<li>Downloads the kernel repo at a specific <strong>branch</strong> or <strong>version</strong></li> <li>Runs all <code>benchmarks/benchmark*.py</code> scripts</li> <li>Times each <code>benchmark_*</code> workload and prints a results table</li> <li>Optionally saves results as JSON</li>",sl,c,il,g,Pl="<code>kernels benchmark</code> requires extra dependencies:",al,C,Al,o,Ql,u,wl,j,Kl="Example output:",ml,f,Rl,b,Dl,h,ql="You must specify which revision to benchmark, either via flags or with <code>@...</code> in the repo id:",kl,$,rl,d,pl,x,lT="Benchmark a tagged kernel version:",cl,N,gl,v,TT="Equivalent shorthand:",Cl,B,ol,W,eT="Benchmark a branch:",ul,V,jl,E,JT="Tune warmup and iteration count:",fl,Z,bl,G,tT="Save results to a file (JSON):",hl,Y,$l,X,UT="Benchmark a local kernel checkout (must contain <code>benchmarks/</code>):",dl,S,xl,_,Nl,F,OT="<li>By default, a table is printed (timings in ms).</li> <li><code>--output &lt;file&gt;.json</code> writes a JSON payload to disk.</li>",vl,H,Bl,L,MT=`Benchmark scripts must live under <code>benchmarks/</code> in the kernel repository and match <code>benchmark*.py</code>.
Each script should define one or more subclasses of <code>kernels.benchmark.Benchmark</code>.`,Wl,z,yT="Minimal example (<code>benchmarks/benchmark_activation.py</code>):",Vl,P,El,K,IT="The runner will:",Zl,q,nT="<li>Call <code>setup()</code> once per workload (or <code>setup_&lt;workload&gt;()</code> if present)</li> <li>Warm up (<code>--warmup</code>)</li> <li>Time <code>benchmark_&lt;workload&gt;()</code> for <code>--iterations</code></li> <li>If <code>verify_&lt;workload&gt;()</code> exists, check that outputs match (<code>torch.allclose(..., atol=1e-2)</code>) and show a speedup vs the reference computation</li>",Gl,ll,Yl,Tl,sT="<li>If the repo does not contain a <code>benchmarks/</code> directory (or no <code>benchmark*.py</code> files), the command exits with an error.</li> <li>If a benchmark script defines no <code>Benchmark</code> subclasses, the command exits with an error.</li> <li>If <code>verify_&lt;workload&gt;()</code> exists and the outputs do not match, the command exits with an error.</li>",Xl,el,Sl,tl,_l;return R=new rT({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),D=new m({props:{title:"kernels benchmark",local:"kernels-benchmark",headingTag:"h1"}}),c=new m({props:{title:"Installation",local:"installation",headingTag:"h2"}}),C=new Q({props:{code:"dXYlMjBwaXAlMjBpbnN0YWxsJTIwJ2tlcm5lbHMlNUJiZW5jaG1hcmslNUQnJTIwJTIzJTIwb3IlMjBwaXAlMjBpbnN0YWxsJTIwJ2tlcm5lbHMlNUJiZW5jaG1hcmslNUQn",highlighted:'uv pip install <span class="hljs-string">&#x27;kernels[benchmark]&#x27;</span> <span class="hljs-comment"># or pip install &#x27;kernels[benchmark]&#x27;</span>',wrap:!1}}),o=new m({props:{title:"Example",local:"example",headingTag:"h2"}}),u=new Q({props:{code:"a2VybmVscyUyMGJlbmNobWFyayUyMGtlcm5lbHMtY29tbXVuaXR5JTJGYWN0aXZhdGlvbiUyMC0tdmVyc2lvbiUyMDE=",highlighted:"kernels benchmark kernels-community/activation --version 1",wrap:!1}}),f=new Q({props:{code:"RG93bmxvYWRpbmclMjBrZXJuZWxzLWNvbW11bml0eSUyRmFjdGl2YXRpb24lNDB2MS4uLiUwQVJ1bm5pbmclMjBiZW5jaG1hcmsucHkuLi4lMEElMEElMjAlMjBHUFUlMjAlMjAlMjAlMjAlMjAlMjBBcHBsZSUyME0zJTIwTWF4JTIwKDMwJTIwY29yZXMpJTBBJTIwJTIwQ1BVJTIwJTIwJTIwJTIwJTIwJTIwQXBwbGUlMjBNMyUyME1heCUwQSUyMCUyME9TJTIwJTIwJTIwJTIwJTIwJTIwJTIwRGFyd2luJTIwMjUuMi4wJTBBJTIwJTIwUHlUb3JjaCUyMCUyMDIuMTAuMCUwQSUwQSUyMCUyMFJ1bm5pbmclMjBTaWx1V29ya2xvYWRzJTIwb24lMjBtcHMlMEElMEElRTIlOTQlOEMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQUMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQUMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQUMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQUMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQUMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQUMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQUMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQUMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQUMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQUMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQUMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlOTAlMEElRTIlOTQlODIlMjBCZW5jaG1hcmslMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjBXb3JrbG9hZCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyME4lMjAlRTIlOTQlODIlMjBTcGVlZHVwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwTWVhbihtcyklMjAlRTIlOTQlODIlMjAlMjAlMjBTdGQobXMpJTIwJUUyJTk0JTgyJTIwJTIwJTIwTWluKG1zKSUyMCVFMiU5NCU4MiUyMCUyMCUyME1heChtcyklMjAlRTIlOTQlODIlMjAlMjAlMjBJUVIobXMpJTIwJUUyJTk0JTgyJTIwJTIwJTIwT3V0bGllcnMlMjAlRTIlOTQlODIlMjAlMjAlMjBSZWYobXMpJTIwJUUyJTk0JTgyJTIwTWF0Y2glMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlOUMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQkMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQkMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQkMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQkMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQkMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQkMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQkMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQkMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQkMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQkMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQkMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQTQlMEElRTIlOTQlODIlMjBTaWx1V29ya2xvYWRzJTIwJUUyJTk0JTgyJTIwbGFyZ2UlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAxMDAlMjAlRTIlOTQlODIlMjAxLjcyeCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMDYuNTE1MyUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMDAuNDM0MyUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMDYuMjg4MyUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMDguNDY5OSUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMDAuMTcwMSUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMDglMjAlRTIlOTQlODIlMjAlMjAlMjAxMS4yMDQ4JTIwJUUyJTk0JTgyJTIwJUUyJTlDJTkzJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwU2lsdVdvcmtsb2FkcyUyMCVFMiU5NCU4MiUyMG1lZGl1bSUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMDEwMCUyMCVFMiU5NCU4MiUyMDIuNDh4JTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwMS4xODEzJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwMC4zOTc2JTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwMS4wNCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMDQuMjE0NiUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMDAuMDY5OCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMDUlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAyLjkzMzIlMjAlRTIlOTQlODIlMjAlRTIlOUMlOTMlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjBTaWx1V29ya2xvYWRzJTIwJUUyJTk0JTgyJTIwc21hbGwlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAxMDAlMjAlRTIlOTQlODIlMjAxLjk2eCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMDAuNDkwOSUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMDAuMjE3NSUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMDAuNDQwNyUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMDIuNjQzOCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMDAuMDA4NSUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMDE2JTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwMC45NjIyJTIwJUUyJTk0JTgyJTIwJUUyJTlDJTkzJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTk0JUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JUI0JUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JUI0JUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JUI0JUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JUI0JUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JUI0JUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JUI0JUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JUI0JUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JUI0JUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JUI0JUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JUI0JUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JUI0JUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTgwJUUyJTk0JTk4JTBBJTBBJTIwJTIwbGFyZ2UlM0ElMjAxLjcyeCUyMGZhc3RlciUyMCg5NSUyNSUyMENJJTNBJTIwNi40MzAyLTYuNjAwNG1zJTIwdnMlMjByZWYlMjAxMS4yMDQ4bXMpJTIwJUUyJTlDJTkzJTIwc2lnbmlmaWNhbnQlMEElMjAlMjBtZWRpdW0lM0ElMjAyLjQ4eCUyMGZhc3RlciUyMCg5NSUyNSUyMENJJTNBJTIwMS4xMDM0LTEuMjU5Mm1zJTIwdnMlMjByZWYlMjAyLjkzMzJtcyklMjAlRTIlOUMlOTMlMjBzaWduaWZpY2FudCUwQSUyMCUyMHNtYWxsJTNBJTIwMS45NnglMjBmYXN0ZXIlMjAoOTUlMjUlMjBDSSUzQSUyMDAuNDQ4My0wLjUzMzVtcyUyMHZzJTIwcmVmJTIwMC45NjIybXMpJTIwJUUyJTlDJTkzJTIwc2lnbmlmaWNhbnQlMEElMEFLZXJuZWwlM0ElMjAyMzg1ZTQ0JTIwJTIwQmVuY2htYXJrJTNBJTIwNWI1MzUxNg==",highlighted:`Downloading kernels-community/activation@v1...
Running benchmark.py...
GPU Apple M3 Max (30 cores)
CPU Apple M3 Max
OS Darwin 25.2.0
PyTorch 2.10.0
Running SiluWorkloads on mps
┌───────────────┬────────────┬─────┬───────────┬────────────┬───────────┬───────────┬───────────┬───────────┬────────────┬───────────┬─────────┐
│ Benchmark │ Workload │ N │ Speedup │ Mean(ms) │ Std(ms) │ Min(ms) │ Max(ms) │ IQR(ms) │ Outliers │ Ref(ms) │ Match │
├───────────────┼────────────┼─────┼───────────┼────────────┼───────────┼───────────┼───────────┼───────────┼────────────┼───────────┼─────────┤
│ SiluWorkloads │ large │ 100 │ 1.72x │ 6.5153 │ 0.4343 │ 6.2883 │ 8.4699 │ 0.1701 │ 8 │ 11.2048 │ ✓ │
│ SiluWorkloads │ medium │ 100 │ 2.48x │ 1.1813 │ 0.3976 │ 1.04 │ 4.2146 │ 0.0698 │ 5 │ 2.9332 │ ✓ │
│ SiluWorkloads │ small │ 100 │ 1.96x │ 0.4909 │ 0.2175 │ 0.4407 │ 2.6438 │ 0.0085 │ 16 │ 0.9622 │ ✓ │
└───────────────┴────────────┴─────┴───────────┴────────────┴───────────┴───────────┴───────────┴───────────┴────────────┴───────────┴─────────┘
large: 1.72x faster (95% CI: 6.4302-6.6004ms vs ref 11.2048ms) ✓ significant
medium: 2.48x faster (95% CI: 1.1034-1.2592ms vs ref 2.9332ms) ✓ significant
small: 1.96x faster (95% CI: 0.4483-0.5335ms vs ref 0.9622ms) ✓ significant
Kernel: 2385e44 Benchmark: 5b53516`,wrap:!1}}),b=new m({props:{title:"Usage",local:"usage",headingTag:"h2"}}),$=new Q({props:{code:"a2VybmVscyUyMGJlbmNobWFyayUyMCUzQ3JlcG9faWQlM0UlMjAtLXZlcnNpb24lMjAlM0NOJTNFJTBBa2VybmVscyUyMGJlbmNobWFyayUyMCUzQ3JlcG9faWQlM0UlMjAtLWJyYW5jaCUyMCUzQ25hbWUlM0UlMEFrZXJuZWxzJTIwYmVuY2htYXJrJTIwJTNDcmVwb19pZCUzRSU0MHYlM0NOJTNFJTBBa2VybmVscyUyMGJlbmNobWFyayUyMCUzQ3JlcG9faWQlM0UlNDAlM0NicmFuY2glM0U=",highlighted:`kernels benchmark &lt;repo_id&gt; --version &lt;N&gt;
kernels benchmark &lt;repo_id&gt; --branch &lt;name&gt;
kernels benchmark &lt;repo_id&gt;@v&lt;N&gt;
kernels benchmark &lt;repo_id&gt;@&lt;branch&gt;`,wrap:!1}}),d=new m({props:{title:"Examples",local:"examples",headingTag:"h2"}}),N=new Q({props:{code:"a2VybmVscyUyMGJlbmNobWFyayUyMGtlcm5lbHMtY29tbXVuaXR5JTJGYWN0aXZhdGlvbiUyMC0tdmVyc2lvbiUyMDE=",highlighted:"kernels benchmark kernels-community/activation --version 1",wrap:!1}}),B=new Q({props:{code:"a2VybmVscyUyMGJlbmNobWFyayUyMGtlcm5lbHMtY29tbXVuaXR5JTJGYWN0aXZhdGlvbiU0MHYx",highlighted:"kernels benchmark kernels-community/activation@v1",wrap:!1}}),V=new Q({props:{code:"a2VybmVscyUyMGJlbmNobWFyayUyMGtlcm5lbHMtY29tbXVuaXR5JTJGYWN0aXZhdGlvbiUyMC0tYnJhbmNoJTIwbWFpbg==",highlighted:"kernels benchmark kernels-community/activation --branch main",wrap:!1}}),Z=new Q({props:{code:"a2VybmVscyUyMGJlbmNobWFyayUyMGtlcm5lbHMtY29tbXVuaXR5JTJGYWN0aXZhdGlvbiU0MHYxJTIwLS13YXJtdXAlMjAyMCUyMC0taXRlcmF0aW9ucyUyMDIwMA==",highlighted:"kernels benchmark kernels-community/activation@v1 --warmup 20 --iterations 200",wrap:!1}}),Y=new Q({props:{code:"a2VybmVscyUyMGJlbmNobWFyayUyMGtlcm5lbHMtY29tbXVuaXR5JTJGYWN0aXZhdGlvbiU0MHYxJTIwLS1vdXRwdXQlMjByZXN1bHRzLmpzb24=",highlighted:"kernels benchmark kernels-community/activation@v1 --output results.json",wrap:!1}}),S=new Q({props:{code:"a2VybmVscyUyMGJlbmNobWFyayUyMC4lMkZteV9rZXJuZWw=",highlighted:"kernels benchmark ./my_kernel",wrap:!1}}),_=new m({props:{title:"Output",local:"output",headingTag:"h2"}}),H=new m({props:{title:"Writing Benchmark Scripts",local:"writing-benchmark-scripts",headingTag:"h2"}}),P=new Q({props:{code:"aW1wb3J0JTIwdG9yY2glMEElMEFmcm9tJTIwa2VybmVscy5iZW5jaG1hcmslMjBpbXBvcnQlMjBCZW5jaG1hcmslMEElMEElMEFjbGFzcyUyMEFjdGl2YXRpb25CZW5jaG1hcmsoQmVuY2htYXJrKSUzQSUwQSUyMCUyMCUyMCUyMHNlZWQlMjAlM0QlMjAwJTBBJTBBJTIwJTIwJTIwJTIwZGVmJTIwc2V0dXAoc2VsZiklM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzZWxmLnglMjAlM0QlMjB0b3JjaC5yYW5kbigxMjglMkMlMjAxMDI0JTJDJTIwZGV2aWNlJTNEc2VsZi5kZXZpY2UlMkMlMjBkdHlwZSUzRHRvcmNoLmZsb2F0MTYpJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc2VsZi5vdXQlMjAlM0QlMjB0b3JjaC5lbXB0eSgxMjglMkMlMjA1MTIlMkMlMjBkZXZpY2UlM0RzZWxmLmRldmljZSUyQyUyMGR0eXBlJTNEdG9yY2guZmxvYXQxNiklMEElMEElMjAlMjAlMjAlMjBkZWYlMjBiZW5jaG1hcmtfc2lsdV9hbmRfbXVsKHNlbGYpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc2VsZi5rZXJuZWwuc2lsdV9hbmRfbXVsKHNlbGYub3V0JTJDJTIwc2VsZi54KSUwQSUwQSUyMCUyMCUyMCUyMGRlZiUyMHZlcmlmeV9zaWx1X2FuZF9tdWwoc2VsZiklM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjMlMjBSZXR1cm4lMjByZWZlcmVuY2UlMjB0ZW5zb3IlM0IlMjBydW5uZXIlMjBjb21wYXJlcyUyMHdpdGglMjBzZWxmLm91dCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMHRvcmNoLm5uLmZ1bmN0aW9uYWwuc2lsdShzZWxmLnglNUIuLi4lMkMlMjAlM0E1MTIlNUQpJTIwKiUyMHNlbGYueCU1Qi4uLiUyQyUyMDUxMiUzQSU1RA==",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> kernels.benchmark <span class="hljs-keyword">import</span> Benchmark
<span class="hljs-keyword">class</span> <span class="hljs-title class_">ActivationBenchmark</span>(<span class="hljs-title class_ inherited__">Benchmark</span>):
seed = <span class="hljs-number">0</span>
<span class="hljs-keyword">def</span> <span class="hljs-title function_">setup</span>(<span class="hljs-params">self</span>):
self.x = torch.randn(<span class="hljs-number">128</span>, <span class="hljs-number">1024</span>, device=self.device, dtype=torch.float16)
self.out = torch.empty(<span class="hljs-number">128</span>, <span class="hljs-number">512</span>, device=self.device, dtype=torch.float16)
<span class="hljs-keyword">def</span> <span class="hljs-title function_">benchmark_silu_and_mul</span>(<span class="hljs-params">self</span>):
self.kernel.silu_and_mul(self.out, self.x)
<span class="hljs-keyword">def</span> <span class="hljs-title function_">verify_silu_and_mul</span>(<span class="hljs-params">self</span>):
<span class="hljs-comment"># Return reference tensor; runner compares with self.out</span>
<span class="hljs-keyword">return</span> torch.nn.functional.silu(self.x[..., :<span class="hljs-number">512</span>]) * self.x[..., <span class="hljs-number">512</span>:]`,wrap:!1}}),ll=new m({props:{title:"Troubleshooting",local:"troubleshooting",headingTag:"h2"}}),el=new pT({props:{source:"https://github.com/huggingface/kernels/blob/main/docs/source/cli-benchmark.md"}}),{c(){w=O("meta"),Ul=t(),Jl=O("p"),Ol=t(),M(R.$$.fragment),Ml=t(),M(D.$$.fragment),yl=t(),k=O("p"),k.innerHTML=Hl,Il=t(),r=O("p"),r.textContent=Ll,nl=t(),p=O("ul"),p.innerHTML=zl,sl=t(),M(c.$$.fragment),il=t(),g=O("p"),g.innerHTML=Pl,al=t(),M(C.$$.fragment),Al=t(),M(o.$$.fragment),Ql=t(),M(u.$$.fragment),wl=t(),j=O("p"),j.textContent=Kl,ml=t(),M(f.$$.fragment),Rl=t(),M(b.$$.fragment),Dl=t(),h=O("p"),h.innerHTML=ql,kl=t(),M($.$$.fragment),rl=t(),M(d.$$.fragment),pl=t(),x=O("p"),x.textContent=lT,cl=t(),M(N.$$.fragment),gl=t(),v=O("p"),v.textContent=TT,Cl=t(),M(B.$$.fragment),ol=t(),W=O("p"),W.textContent=eT,ul=t(),M(V.$$.fragment),jl=t(),E=O("p"),E.textContent=JT,fl=t(),M(Z.$$.fragment),bl=t(),G=O("p"),G.textContent=tT,hl=t(),M(Y.$$.fragment),$l=t(),X=O("p"),X.innerHTML=UT,dl=t(),M(S.$$.fragment),xl=t(),M(_.$$.fragment),Nl=t(),F=O("ul"),F.innerHTML=OT,vl=t(),M(H.$$.fragment),Bl=t(),L=O("p"),L.innerHTML=MT,Wl=t(),z=O("p"),z.innerHTML=yT,Vl=t(),M(P.$$.fragment),El=t(),K=O("p"),K.textContent=IT,Zl=t(),q=O("ul"),q.innerHTML=nT,Gl=t(),M(ll.$$.fragment),Yl=t(),Tl=O("ul"),Tl.innerHTML=sT,Xl=t(),M(el.$$.fragment),Sl=t(),tl=O("p"),this.h()},l(l){const T=DT("svelte-u9bgzb",document.head);w=y(T,"META",{name:!0,content:!0}),T.forEach(e),Ul=U(l),Jl=y(l,"P",{}),iT(Jl).forEach(e),Ol=U(l),I(R.$$.fragment,l),Ml=U(l),I(D.$$.fragment,l),yl=U(l),k=y(l,"P",{"data-svelte-h":!0}),A(k)!=="svelte-tmkzfx"&&(k.innerHTML=Hl),Il=U(l),r=y(l,"P",{"data-svelte-h":!0}),A(r)!=="svelte-eswi1c"&&(r.textContent=Ll),nl=U(l),p=y(l,"UL",{"data-svelte-h":!0}),A(p)!=="svelte-8q1zi3"&&(p.innerHTML=zl),sl=U(l),I(c.$$.fragment,l),il=U(l),g=y(l,"P",{"data-svelte-h":!0}),A(g)!=="svelte-1wula6j"&&(g.innerHTML=Pl),al=U(l),I(C.$$.fragment,l),Al=U(l),I(o.$$.fragment,l),Ql=U(l),I(u.$$.fragment,l),wl=U(l),j=y(l,"P",{"data-svelte-h":!0}),A(j)!=="svelte-c9hbnf"&&(j.textContent=Kl),ml=U(l),I(f.$$.fragment,l),Rl=U(l),I(b.$$.fragment,l),Dl=U(l),h=y(l,"P",{"data-svelte-h":!0}),A(h)!=="svelte-oweei4"&&(h.innerHTML=ql),kl=U(l),I($.$$.fragment,l),rl=U(l),I(d.$$.fragment,l),pl=U(l),x=y(l,"P",{"data-svelte-h":!0}),A(x)!=="svelte-1f2il53"&&(x.textContent=lT),cl=U(l),I(N.$$.fragment,l),gl=U(l),v=y(l,"P",{"data-svelte-h":!0}),A(v)!=="svelte-1ukeypf"&&(v.textContent=TT),Cl=U(l),I(B.$$.fragment,l),ol=U(l),W=y(l,"P",{"data-svelte-h":!0}),A(W)!=="svelte-6s9f7q"&&(W.textContent=eT),ul=U(l),I(V.$$.fragment,l),jl=U(l),E=y(l,"P",{"data-svelte-h":!0}),A(E)!=="svelte-x8chd1"&&(E.textContent=JT),fl=U(l),I(Z.$$.fragment,l),bl=U(l),G=y(l,"P",{"data-svelte-h":!0}),A(G)!=="svelte-1h8th2q"&&(G.textContent=tT),hl=U(l),I(Y.$$.fragment,l),$l=U(l),X=y(l,"P",{"data-svelte-h":!0}),A(X)!=="svelte-u34i7c"&&(X.innerHTML=UT),dl=U(l),I(S.$$.fragment,l),xl=U(l),I(_.$$.fragment,l),Nl=U(l),F=y(l,"UL",{"data-svelte-h":!0}),A(F)!=="svelte-8jeyme"&&(F.innerHTML=OT),vl=U(l),I(H.$$.fragment,l),Bl=U(l),L=y(l,"P",{"data-svelte-h":!0}),A(L)!=="svelte-1my1hq8"&&(L.innerHTML=MT),Wl=U(l),z=y(l,"P",{"data-svelte-h":!0}),A(z)!=="svelte-srb50p"&&(z.innerHTML=yT),Vl=U(l),I(P.$$.fragment,l),El=U(l),K=y(l,"P",{"data-svelte-h":!0}),A(K)!=="svelte-p66n03"&&(K.textContent=IT),Zl=U(l),q=y(l,"UL",{"data-svelte-h":!0}),A(q)!=="svelte-wm3411"&&(q.innerHTML=nT),Gl=U(l),I(ll.$$.fragment,l),Yl=U(l),Tl=y(l,"UL",{"data-svelte-h":!0}),A(Tl)!=="svelte-g5iyt5"&&(Tl.innerHTML=sT),Xl=U(l),I(el.$$.fragment,l),Sl=U(l),tl=y(l,"P",{}),iT(tl).forEach(e),this.h()},h(){aT(w,"name","hf:doc:metadata"),aT(w,"content",gT)},m(l,T){kT(document.head,w),J(l,Ul,T),J(l,Jl,T),J(l,Ol,T),n(R,l,T),J(l,Ml,T),n(D,l,T),J(l,yl,T),J(l,k,T),J(l,Il,T),J(l,r,T),J(l,nl,T),J(l,p,T),J(l,sl,T),n(c,l,T),J(l,il,T),J(l,g,T),J(l,al,T),n(C,l,T),J(l,Al,T),n(o,l,T),J(l,Ql,T),n(u,l,T),J(l,wl,T),J(l,j,T),J(l,ml,T),n(f,l,T),J(l,Rl,T),n(b,l,T),J(l,Dl,T),J(l,h,T),J(l,kl,T),n($,l,T),J(l,rl,T),n(d,l,T),J(l,pl,T),J(l,x,T),J(l,cl,T),n(N,l,T),J(l,gl,T),J(l,v,T),J(l,Cl,T),n(B,l,T),J(l,ol,T),J(l,W,T),J(l,ul,T),n(V,l,T),J(l,jl,T),J(l,E,T),J(l,fl,T),n(Z,l,T),J(l,bl,T),J(l,G,T),J(l,hl,T),n(Y,l,T),J(l,$l,T),J(l,X,T),J(l,dl,T),n(S,l,T),J(l,xl,T),n(_,l,T),J(l,Nl,T),J(l,F,T),J(l,vl,T),n(H,l,T),J(l,Bl,T),J(l,L,T),J(l,Wl,T),J(l,z,T),J(l,Vl,T),n(P,l,T),J(l,El,T),J(l,K,T),J(l,Zl,T),J(l,q,T),J(l,Gl,T),n(ll,l,T),J(l,Yl,T),J(l,Tl,T),J(l,Xl,T),n(el,l,T),J(l,Sl,T),J(l,tl,T),_l=!0},p:QT,i(l){_l||(s(R.$$.fragment,l),s(D.$$.fragment,l),s(c.$$.fragment,l),s(C.$$.fragment,l),s(o.$$.fragment,l),s(u.$$.fragment,l),s(f.$$.fragment,l),s(b.$$.fragment,l),s($.$$.fragment,l),s(d.$$.fragment,l),s(N.$$.fragment,l),s(B.$$.fragment,l),s(V.$$.fragment,l),s(Z.$$.fragment,l),s(Y.$$.fragment,l),s(S.$$.fragment,l),s(_.$$.fragment,l),s(H.$$.fragment,l),s(P.$$.fragment,l),s(ll.$$.fragment,l),s(el.$$.fragment,l),_l=!0)},o(l){i(R.$$.fragment,l),i(D.$$.fragment,l),i(c.$$.fragment,l),i(C.$$.fragment,l),i(o.$$.fragment,l),i(u.$$.fragment,l),i(f.$$.fragment,l),i(b.$$.fragment,l),i($.$$.fragment,l),i(d.$$.fragment,l),i(N.$$.fragment,l),i(B.$$.fragment,l),i(V.$$.fragment,l),i(Z.$$.fragment,l),i(Y.$$.fragment,l),i(S.$$.fragment,l),i(_.$$.fragment,l),i(H.$$.fragment,l),i(P.$$.fragment,l),i(ll.$$.fragment,l),i(el.$$.fragment,l),_l=!1},d(l){l&&(e(Ul),e(Jl),e(Ol),e(Ml),e(yl),e(k),e(Il),e(r),e(nl),e(p),e(sl),e(il),e(g),e(al),e(Al),e(Ql),e(wl),e(j),e(ml),e(Rl),e(Dl),e(h),e(kl),e(rl),e(pl),e(x),e(cl),e(gl),e(v),e(Cl),e(ol),e(W),e(ul),e(jl),e(E),e(fl),e(bl),e(G),e(hl),e($l),e(X),e(dl),e(xl),e(Nl),e(F),e(vl),e(Bl),e(L),e(Wl),e(z),e(Vl),e(El),e(K),e(Zl),e(q),e(Gl),e(Yl),e(Tl),e(Xl),e(Sl),e(tl)),e(w),a(R,l),a(D,l),a(c,l),a(C,l),a(o,l),a(u,l),a(f,l),a(b,l),a($,l),a(d,l),a(N,l),a(B,l),a(V,l),a(Z,l),a(Y,l),a(S,l),a(_,l),a(H,l),a(P,l),a(ll,l),a(el,l)}}}const gT='{"title":"kernels benchmark","local":"kernels-benchmark","sections":[{"title":"Installation","local":"installation","sections":[],"depth":2},{"title":"Example","local":"example","sections":[],"depth":2},{"title":"Usage","local":"usage","sections":[],"depth":2},{"title":"Examples","local":"examples","sections":[],"depth":2},{"title":"Output","local":"output","sections":[],"depth":2},{"title":"Writing Benchmark Scripts","local":"writing-benchmark-scripts","sections":[],"depth":2},{"title":"Troubleshooting","local":"troubleshooting","sections":[],"depth":2}],"depth":1}';function CT(Fl){return wT(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class hT extends mT{constructor(w){super(),RT(this,w,CT,cT,AT,{})}}export{hT as component};

Xet Storage Details

Size:
25.6 kB
·
Xet hash:
9dae0dc834e7ebe5a8d298266f5e0a5ca0c56f9e02603d1e1d9bb8b93adc1a96

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.