Buckets:

HuggingFaceDocBuilder's picture
download
raw
12.4 kB
import{s as Te,n as je,o as ge}from"../chunks/scheduler.f3b1e791.js";import{S as ve,i as _e,e as r,s,c as o,h as $e,a as i,d as n,b as a,f as we,g as p,j as c,k as Je,l as Ie,m as t,n as m,t as d,o as h,p as u}from"../chunks/index.023a9934.js";import{C as Be}from"../chunks/CopyLLMTxtMenu.292a3705.js";import{C as ie}from"../chunks/CodeBlock.74d5d377.js";import{H as oe,E as Ze}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.cdd5f5b7.js";function Ue(pe){let f,H,W,X,k,F,M,R,y,L,b,ce='Here is how you would use the <a href="https://huggingface.co/kernels-community/activation" rel="nofollow">activation</a> kernels from the Hugging Face Hub:',Y,w,z,J,me=`This fetches version <code>1</code> of the kernel <code>kernels-community/activation</code>.
Kernels are versioned using a major version number. Using <code>version=1</code> will
get the latest kernel build from the <code>v1</code> branch.`,N,T,de=`Kernels within a version branch must never break the API or remove builds
for older PyTorch versions. This ensures that your code will continue to work.`,Q,j,he="Hub kernels must be loaded with either a <code>version</code> or an explicit <code>revision</code>.",S,g,q,v,ue=`You can check if a particular version of a kernel supports the environment
that the program is running on:`,A,_,K,$,fe=`When no compatible kernel is found, <a href="/docs/kernels/pr_637/en/api/kernels#kernels.has_kernel">has_kernel()</a> does not say <em>why</em>.
<a href="/docs/kernels/pr_637/en/api/kernels#kernels.get_kernel_variants">get_kernel_variants()</a> returns the full resolution trace instead: one
decision per build variant in the repository, with compatible variants listed
first. Each decision is a <code>VariantAccepted</code> or a <code>VariantRejected</code>, and rejected
variants carry a human-readable <code>reason</code>:`,P,I,D,B,O,Z,ke=`<a href="/docs/kernels/pr_637/en/api/kernels#kernels.get_loaded_kernels">get_loaded_kernels()</a> returns a snapshot of every kernel that has been loaded
into the current process. Each entry is a <a href="/docs/kernels/pr_637/en/api/kernels#kernels.LoadedKernel">LoadedKernel</a> with the kernel
<code>metadata</code>, the imported <code>module</code>, and a <code>repo_info</code> (<a href="/docs/kernels/pr_637/en/api/kernels#kernels.RepoInfo">RepoInfo</a> with the
<code>repo_id</code>, resolved <code>revision</code>, and a <code>local</code> flag).`,ee,U,le,C,Me=`<code>repo_info</code> is populated for kernels loaded from a known Hub repository, i.e. via
<a href="/docs/kernels/pr_637/en/api/kernels#kernels.get_kernel">get_kernel()</a>, <a href="/docs/kernels/pr_637/en/api/kernels#kernels.get_locked_kernel">get_locked_kernel()</a>, or <a href="/docs/kernels/pr_637/en/api/kernels#kernels.load_kernel">load_kernel()</a>.
Only <a href="/docs/kernels/pr_637/en/api/kernels#kernels.get_local_kernel">get_local_kernel()</a>, which loads from an arbitrary local path, leaves
<code>repo_info=None</code>. Its <code>local</code> flag distinguishes kernels downloaded from the Hub
(<code>local=False</code>) from pre-downloaded, locked kernels loaded from local files
(<code>local=True</code>).`,ne,x,ye='Browse through different kernels compatible with <code>kernels</code> from <a href="https://huggingface.co/kernels" rel="nofollow">here</a>.',te,E,be='A kernel can provide layers in addition to kernel functions. Refer to <a href="./layers">Layers</a> to know more.',se,V,ae,G,re;return k=new Be({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),M=new oe({props:{title:"Quickstart",local:"quickstart",headingTag:"h1"}}),y=new oe({props:{title:"Loading Kernels",local:"loading-kernels",headingTag:"h2"}}),w=new ie({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwa2VybmVscyUyMGltcG9ydCUyMGdldF9rZXJuZWwlMEElMEElMjMlMjBEb3dubG9hZCUyMG9wdGltaXplZCUyMGtlcm5lbHMlMjBmcm9tJTIwdGhlJTIwSHVnZ2luZyUyMEZhY2UlMjBodWIlMEFhY3RpdmF0aW9uJTIwJTNEJTIwZ2V0X2tlcm5lbCglMjJrZXJuZWxzLWNvbW11bml0eSUyRmFjdGl2YXRpb24lMjIlMkMlMjB2ZXJzaW9uJTNEMSklMEElMEElMjMlMjBDcmVhdGUlMjBhJTIwcmFuZG9tJTIwdGVuc29yJTBBeCUyMCUzRCUyMHRvcmNoLnJhbmRuKCgxMCUyQyUyMDEwKSUyQyUyMGR0eXBlJTNEdG9yY2guZmxvYXQxNiUyQyUyMGRldmljZSUzRCUyMmN1ZGElMjIpJTBBJTBBJTIzJTIwUnVuJTIwdGhlJTIwa2VybmVsJTBBeSUyMCUzRCUyMHRvcmNoLmVtcHR5X2xpa2UoeCklMEFhY3RpdmF0aW9uLmdlbHVfZmFzdCh5JTJDJTIweCklMEElMEFwcmludCh5KQ==",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> kernels <span class="hljs-keyword">import</span> get_kernel
<span class="hljs-comment"># Download optimized kernels from the Hugging Face hub</span>
activation = get_kernel(<span class="hljs-string">&quot;kernels-community/activation&quot;</span>, version=<span class="hljs-number">1</span>)
<span class="hljs-comment"># Create a random tensor</span>
x = torch.randn((<span class="hljs-number">10</span>, <span class="hljs-number">10</span>), dtype=torch.float16, device=<span class="hljs-string">&quot;cuda&quot;</span>)
<span class="hljs-comment"># Run the kernel</span>
y = torch.empty_like(x)
activation.gelu_fast(y, x)
<span class="hljs-built_in">print</span>(y)`,lang:"python",wrap:!1}}),g=new oe({props:{title:"Checking Kernel Availability",local:"checking-kernel-availability",headingTag:"h2"}}),_=new ie({props:{code:"ZnJvbSUyMGtlcm5lbHMlMjBpbXBvcnQlMjBoYXNfa2VybmVsJTBBJTBBJTIzJTIwQ2hlY2slMjBpZiUyMGtlcm5lbCUyMGlzJTIwYXZhaWxhYmxlJTIwZm9yJTIwY3VycmVudCUyMGVudmlyb25tZW50JTBBaXNfYXZhaWxhYmxlJTIwJTNEJTIwaGFzX2tlcm5lbCglMjJrZXJuZWxzLWNvbW11bml0eSUyRmFjdGl2YXRpb24lMjIlMkMlMjB2ZXJzaW9uJTNEMSklMEFwcmludChmJTIyS2VybmVsJTIwYXZhaWxhYmxlJTNBJTIwJTdCaXNfYXZhaWxhYmxlJTdEJTIyKQ==",highlighted:`<span class="hljs-keyword">from</span> kernels <span class="hljs-keyword">import</span> has_kernel
<span class="hljs-comment"># Check if kernel is available for current environment</span>
is_available = has_kernel(<span class="hljs-string">&quot;kernels-community/activation&quot;</span>, version=<span class="hljs-number">1</span>)
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Kernel available: <span class="hljs-subst">{is_available}</span>&quot;</span>)`,lang:"python",wrap:!1}}),I=new ie({props:{code:"ZnJvbSUyMGtlcm5lbHMlMjBpbXBvcnQlMjBnZXRfa2VybmVsX3ZhcmlhbnRzJTJDJTIwVmFyaWFudEFjY2VwdGVkJTBBJTBBZm9yJTIwZGVjaXNpb24lMjBpbiUyMGdldF9rZXJuZWxfdmFyaWFudHMoJTIya2VybmVscy1jb21tdW5pdHklMkZhY3RpdmF0aW9uJTIyJTJDJTIwdmVyc2lvbiUzRDEpJTNBJTBBJTIwJTIwJTIwJTIwbmFtZSUyMCUzRCUyMGRlY2lzaW9uLnZhcmlhbnQudmFyaWFudF9zdHIlMEElMjAlMjAlMjAlMjBpZiUyMGlzaW5zdGFuY2UoZGVjaXNpb24lMkMlMjBWYXJpYW50QWNjZXB0ZWQpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpbnQoZiUyMiU3Qm5hbWUlN0QlM0ElMjBjb21wYXRpYmxlJTIyKSUwQSUyMCUyMCUyMCUyMGVsc2UlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcmludChmJTIyJTdCbmFtZSU3RCUzQSUyMHJlamVjdGVkJTIwKCU3QmRlY2lzaW9uLnJlYXNvbiU3RCklMjIp",highlighted:`<span class="hljs-keyword">from</span> kernels <span class="hljs-keyword">import</span> get_kernel_variants, VariantAccepted
<span class="hljs-keyword">for</span> decision <span class="hljs-keyword">in</span> get_kernel_variants(<span class="hljs-string">&quot;kernels-community/activation&quot;</span>, version=<span class="hljs-number">1</span>):
name = decision.variant.variant_str
<span class="hljs-keyword">if</span> <span class="hljs-built_in">isinstance</span>(decision, VariantAccepted):
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;<span class="hljs-subst">{name}</span>: compatible&quot;</span>)
<span class="hljs-keyword">else</span>:
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;<span class="hljs-subst">{name}</span>: rejected (<span class="hljs-subst">{decision.reason}</span>)&quot;</span>)`,lang:"python",wrap:!1}}),B=new oe({props:{title:"Inspecting Loaded Kernels",local:"inspecting-loaded-kernels",headingTag:"h2"}}),U=new ie({props:{code:"ZnJvbSUyMGtlcm5lbHMlMjBpbXBvcnQlMjBnZXRfa2VybmVsJTJDJTIwZ2V0X2xvYWRlZF9rZXJuZWxzJTBBJTBBZ2V0X2tlcm5lbCglMjJrZXJuZWxzLWNvbW11bml0eSUyRmFjdGl2YXRpb24lMjIlMkMlMjB2ZXJzaW9uJTNEMSklMEElMEFmb3IlMjBsb2FkZWQlMjBpbiUyMGdldF9sb2FkZWRfa2VybmVscygpJTNBJTBBJTIwJTIwJTIwJTIwcHJpbnQobG9hZGVkLm1ldGFkYXRhLm5hbWUlMkMlMjBsb2FkZWQucmVwb19pbmZvKQ==",highlighted:`<span class="hljs-keyword">from</span> kernels <span class="hljs-keyword">import</span> get_kernel, get_loaded_kernels
get_kernel(<span class="hljs-string">&quot;kernels-community/activation&quot;</span>, version=<span class="hljs-number">1</span>)
<span class="hljs-keyword">for</span> loaded <span class="hljs-keyword">in</span> get_loaded_kernels():
<span class="hljs-built_in">print</span>(loaded.metadata.name, loaded.repo_info)`,lang:"python",wrap:!1}}),V=new Ze({props:{source:"https://github.com/huggingface/kernels/blob/main/docs/source/basic-usage.md"}}),{c(){f=r("meta"),H=s(),W=r("p"),X=s(),o(k.$$.fragment),F=s(),o(M.$$.fragment),R=s(),o(y.$$.fragment),L=s(),b=r("p"),b.innerHTML=ce,Y=s(),o(w.$$.fragment),z=s(),J=r("p"),J.innerHTML=me,N=s(),T=r("p"),T.textContent=de,Q=s(),j=r("p"),j.innerHTML=he,S=s(),o(g.$$.fragment),q=s(),v=r("p"),v.textContent=ue,A=s(),o(_.$$.fragment),K=s(),$=r("p"),$.innerHTML=fe,P=s(),o(I.$$.fragment),D=s(),o(B.$$.fragment),O=s(),Z=r("p"),Z.innerHTML=ke,ee=s(),o(U.$$.fragment),le=s(),C=r("p"),C.innerHTML=Me,ne=s(),x=r("p"),x.innerHTML=ye,te=s(),E=r("p"),E.innerHTML=be,se=s(),o(V.$$.fragment),ae=s(),G=r("p"),this.h()},l(e){const l=$e("svelte-u9bgzb",document.head);f=i(l,"META",{name:!0,content:!0}),l.forEach(n),H=a(e),W=i(e,"P",{}),we(W).forEach(n),X=a(e),p(k.$$.fragment,e),F=a(e),p(M.$$.fragment,e),R=a(e),p(y.$$.fragment,e),L=a(e),b=i(e,"P",{"data-svelte-h":!0}),c(b)!=="svelte-2utbko"&&(b.innerHTML=ce),Y=a(e),p(w.$$.fragment,e),z=a(e),J=i(e,"P",{"data-svelte-h":!0}),c(J)!=="svelte-1xtp1ii"&&(J.innerHTML=me),N=a(e),T=i(e,"P",{"data-svelte-h":!0}),c(T)!=="svelte-sotpzr"&&(T.textContent=de),Q=a(e),j=i(e,"P",{"data-svelte-h":!0}),c(j)!=="svelte-ac6a7l"&&(j.innerHTML=he),S=a(e),p(g.$$.fragment,e),q=a(e),v=i(e,"P",{"data-svelte-h":!0}),c(v)!=="svelte-vgk28x"&&(v.textContent=ue),A=a(e),p(_.$$.fragment,e),K=a(e),$=i(e,"P",{"data-svelte-h":!0}),c($)!=="svelte-bmljm6"&&($.innerHTML=fe),P=a(e),p(I.$$.fragment,e),D=a(e),p(B.$$.fragment,e),O=a(e),Z=i(e,"P",{"data-svelte-h":!0}),c(Z)!=="svelte-kynn07"&&(Z.innerHTML=ke),ee=a(e),p(U.$$.fragment,e),le=a(e),C=i(e,"P",{"data-svelte-h":!0}),c(C)!=="svelte-rrzoaf"&&(C.innerHTML=Me),ne=a(e),x=i(e,"P",{"data-svelte-h":!0}),c(x)!=="svelte-jwtqmg"&&(x.innerHTML=ye),te=a(e),E=i(e,"P",{"data-svelte-h":!0}),c(E)!=="svelte-1uhalfl"&&(E.innerHTML=be),se=a(e),p(V.$$.fragment,e),ae=a(e),G=i(e,"P",{}),we(G).forEach(n),this.h()},h(){Je(f,"name","hf:doc:metadata"),Je(f,"content",Ce)},m(e,l){Ie(document.head,f),t(e,H,l),t(e,W,l),t(e,X,l),m(k,e,l),t(e,F,l),m(M,e,l),t(e,R,l),m(y,e,l),t(e,L,l),t(e,b,l),t(e,Y,l),m(w,e,l),t(e,z,l),t(e,J,l),t(e,N,l),t(e,T,l),t(e,Q,l),t(e,j,l),t(e,S,l),m(g,e,l),t(e,q,l),t(e,v,l),t(e,A,l),m(_,e,l),t(e,K,l),t(e,$,l),t(e,P,l),m(I,e,l),t(e,D,l),m(B,e,l),t(e,O,l),t(e,Z,l),t(e,ee,l),m(U,e,l),t(e,le,l),t(e,C,l),t(e,ne,l),t(e,x,l),t(e,te,l),t(e,E,l),t(e,se,l),m(V,e,l),t(e,ae,l),t(e,G,l),re=!0},p:je,i(e){re||(d(k.$$.fragment,e),d(M.$$.fragment,e),d(y.$$.fragment,e),d(w.$$.fragment,e),d(g.$$.fragment,e),d(_.$$.fragment,e),d(I.$$.fragment,e),d(B.$$.fragment,e),d(U.$$.fragment,e),d(V.$$.fragment,e),re=!0)},o(e){h(k.$$.fragment,e),h(M.$$.fragment,e),h(y.$$.fragment,e),h(w.$$.fragment,e),h(g.$$.fragment,e),h(_.$$.fragment,e),h(I.$$.fragment,e),h(B.$$.fragment,e),h(U.$$.fragment,e),h(V.$$.fragment,e),re=!1},d(e){e&&(n(H),n(W),n(X),n(F),n(R),n(L),n(b),n(Y),n(z),n(J),n(N),n(T),n(Q),n(j),n(S),n(q),n(v),n(A),n(K),n($),n(P),n(D),n(O),n(Z),n(ee),n(le),n(C),n(ne),n(x),n(te),n(E),n(se),n(ae),n(G)),n(f),u(k,e),u(M,e),u(y,e),u(w,e),u(g,e),u(_,e),u(I,e),u(B,e),u(U,e),u(V,e)}}}const Ce='{"title":"Quickstart","local":"quickstart","sections":[{"title":"Loading Kernels","local":"loading-kernels","sections":[],"depth":2},{"title":"Checking Kernel Availability","local":"checking-kernel-availability","sections":[],"depth":2},{"title":"Inspecting Loaded Kernels","local":"inspecting-loaded-kernels","sections":[],"depth":2}],"depth":1}';function xe(pe){return ge(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Xe extends ve{constructor(f){super(),_e(this,f,xe,Ue,Te,{})}}export{Xe as component};

Xet Storage Details

Size:
12.4 kB
·
Xet hash:
16dc483ed81916ab39ab3ac537c09d52b00caf345aeb868d23d559eba3b7de9a

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