Buckets:

HuggingFaceDocBuilder's picture
download
raw
12.7 kB
import{s as ve,n as _e,o as $e}from"../chunks/scheduler.f3b1e791.js";import{S as Ie,i as Be,e as r,s,c as p,h as Ue,a as i,d as n,b as a,f as ge,g as c,j as o,k as me,l as Ze,m as t,n as m,t as d,o as h,p as u}from"../chunks/index.023a9934.js";import{C as Ce}from"../chunks/CopyLLMTxtMenu.37fd950c.js";import{C as pe}from"../chunks/CodeBlock.d572bf65.js";import{H as ce,E as xe}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.c5ad2475.js";function Ee(de){let f,X,H,L,M,F,y,R,b,Y,T,he='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:',z,w,N,J,ue=`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.`,Q,j,fe=`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,g,ke="Hub kernels must be loaded with either a <code>version</code> or an explicit <code>revision</code>.",S,k,Me=`<p>Version <code>0</code> kernels are excluded from the API compatibility requirement,
since it is used for alpha/beta-quality kernels that may still have
rapidly changing APIs.</p>`,A,v,P,_,ye=`You can check if a particular version of a kernel supports the environment
that the program is running on:`,K,$,D,I,be=`When no compatible kernel is found, <a href="/docs/kernels/pr_631/en/api/kernels#kernels.has_kernel">has_kernel()</a> does not say <em>why</em>.
<a href="/docs/kernels/pr_631/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>:`,O,B,ee,U,le,Z,Te=`<a href="/docs/kernels/pr_631/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_631/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_631/en/api/kernels#kernels.RepoInfo">RepoInfo</a> with the
<code>repo_id</code>, resolved <code>revision</code>, and a <code>local</code> flag).`,ne,C,te,x,we=`<code>repo_info</code> is populated for kernels loaded from a known Hub repository, i.e. via
<a href="/docs/kernels/pr_631/en/api/kernels#kernels.get_kernel">get_kernel()</a>, <a href="/docs/kernels/pr_631/en/api/kernels#kernels.get_locked_kernel">get_locked_kernel()</a>, or <a href="/docs/kernels/pr_631/en/api/kernels#kernels.load_kernel">load_kernel()</a>.
Only <a href="/docs/kernels/pr_631/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>).`,se,E,Je='Browse through different kernels compatible with <code>kernels</code> from <a href="https://huggingface.co/kernels" rel="nofollow">here</a>.',ae,V,je='A kernel can provide layers in addition to kernel functions. Refer to <a href="./layers">Layers</a> to know more.',re,W,ie,G,oe;return M=new Ce({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),y=new ce({props:{title:"Quickstart",local:"quickstart",headingTag:"h1"}}),b=new ce({props:{title:"Loading Kernels",local:"loading-kernels",headingTag:"h2"}}),w=new pe({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}}),v=new ce({props:{title:"Checking Kernel Availability",local:"checking-kernel-availability",headingTag:"h2"}}),$=new pe({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}}),B=new pe({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}}),U=new ce({props:{title:"Inspecting Loaded Kernels",local:"inspecting-loaded-kernels",headingTag:"h2"}}),C=new pe({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}}),W=new xe({props:{source:"https://github.com/huggingface/kernels/blob/main/docs/source/basic-usage.md"}}),{c(){f=r("meta"),X=s(),H=r("p"),L=s(),p(M.$$.fragment),F=s(),p(y.$$.fragment),R=s(),p(b.$$.fragment),Y=s(),T=r("p"),T.innerHTML=he,z=s(),p(w.$$.fragment),N=s(),J=r("p"),J.innerHTML=ue,Q=s(),j=r("p"),j.textContent=fe,q=s(),g=r("p"),g.innerHTML=ke,S=s(),k=r("blockquote"),k.innerHTML=Me,A=s(),p(v.$$.fragment),P=s(),_=r("p"),_.textContent=ye,K=s(),p($.$$.fragment),D=s(),I=r("p"),I.innerHTML=be,O=s(),p(B.$$.fragment),ee=s(),p(U.$$.fragment),le=s(),Z=r("p"),Z.innerHTML=Te,ne=s(),p(C.$$.fragment),te=s(),x=r("p"),x.innerHTML=we,se=s(),E=r("p"),E.innerHTML=Je,ae=s(),V=r("p"),V.innerHTML=je,re=s(),p(W.$$.fragment),ie=s(),G=r("p"),this.h()},l(e){const l=Ue("svelte-u9bgzb",document.head);f=i(l,"META",{name:!0,content:!0}),l.forEach(n),X=a(e),H=i(e,"P",{}),ge(H).forEach(n),L=a(e),c(M.$$.fragment,e),F=a(e),c(y.$$.fragment,e),R=a(e),c(b.$$.fragment,e),Y=a(e),T=i(e,"P",{"data-svelte-h":!0}),o(T)!=="svelte-2utbko"&&(T.innerHTML=he),z=a(e),c(w.$$.fragment,e),N=a(e),J=i(e,"P",{"data-svelte-h":!0}),o(J)!=="svelte-1xtp1ii"&&(J.innerHTML=ue),Q=a(e),j=i(e,"P",{"data-svelte-h":!0}),o(j)!=="svelte-sotpzr"&&(j.textContent=fe),q=a(e),g=i(e,"P",{"data-svelte-h":!0}),o(g)!=="svelte-ac6a7l"&&(g.innerHTML=ke),S=a(e),k=i(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),o(k)!=="svelte-n51n6u"&&(k.innerHTML=Me),A=a(e),c(v.$$.fragment,e),P=a(e),_=i(e,"P",{"data-svelte-h":!0}),o(_)!=="svelte-vgk28x"&&(_.textContent=ye),K=a(e),c($.$$.fragment,e),D=a(e),I=i(e,"P",{"data-svelte-h":!0}),o(I)!=="svelte-266oi2"&&(I.innerHTML=be),O=a(e),c(B.$$.fragment,e),ee=a(e),c(U.$$.fragment,e),le=a(e),Z=i(e,"P",{"data-svelte-h":!0}),o(Z)!=="svelte-pw611"&&(Z.innerHTML=Te),ne=a(e),c(C.$$.fragment,e),te=a(e),x=i(e,"P",{"data-svelte-h":!0}),o(x)!=="svelte-1fpejt7"&&(x.innerHTML=we),se=a(e),E=i(e,"P",{"data-svelte-h":!0}),o(E)!=="svelte-jwtqmg"&&(E.innerHTML=Je),ae=a(e),V=i(e,"P",{"data-svelte-h":!0}),o(V)!=="svelte-1uhalfl"&&(V.innerHTML=je),re=a(e),c(W.$$.fragment,e),ie=a(e),G=i(e,"P",{}),ge(G).forEach(n),this.h()},h(){me(f,"name","hf:doc:metadata"),me(f,"content",Ve),me(k,"class","note")},m(e,l){Ze(document.head,f),t(e,X,l),t(e,H,l),t(e,L,l),m(M,e,l),t(e,F,l),m(y,e,l),t(e,R,l),m(b,e,l),t(e,Y,l),t(e,T,l),t(e,z,l),m(w,e,l),t(e,N,l),t(e,J,l),t(e,Q,l),t(e,j,l),t(e,q,l),t(e,g,l),t(e,S,l),t(e,k,l),t(e,A,l),m(v,e,l),t(e,P,l),t(e,_,l),t(e,K,l),m($,e,l),t(e,D,l),t(e,I,l),t(e,O,l),m(B,e,l),t(e,ee,l),m(U,e,l),t(e,le,l),t(e,Z,l),t(e,ne,l),m(C,e,l),t(e,te,l),t(e,x,l),t(e,se,l),t(e,E,l),t(e,ae,l),t(e,V,l),t(e,re,l),m(W,e,l),t(e,ie,l),t(e,G,l),oe=!0},p:_e,i(e){oe||(d(M.$$.fragment,e),d(y.$$.fragment,e),d(b.$$.fragment,e),d(w.$$.fragment,e),d(v.$$.fragment,e),d($.$$.fragment,e),d(B.$$.fragment,e),d(U.$$.fragment,e),d(C.$$.fragment,e),d(W.$$.fragment,e),oe=!0)},o(e){h(M.$$.fragment,e),h(y.$$.fragment,e),h(b.$$.fragment,e),h(w.$$.fragment,e),h(v.$$.fragment,e),h($.$$.fragment,e),h(B.$$.fragment,e),h(U.$$.fragment,e),h(C.$$.fragment,e),h(W.$$.fragment,e),oe=!1},d(e){e&&(n(X),n(H),n(L),n(F),n(R),n(Y),n(T),n(z),n(N),n(J),n(Q),n(j),n(q),n(g),n(S),n(k),n(A),n(P),n(_),n(K),n(D),n(I),n(O),n(ee),n(le),n(Z),n(ne),n(te),n(x),n(se),n(E),n(ae),n(V),n(re),n(ie),n(G)),n(f),u(M,e),u(y,e),u(b,e),u(w,e),u(v,e),u($,e),u(B,e),u(U,e),u(C,e),u(W,e)}}}const Ve='{"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 We(de){return $e(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Re extends Ie{constructor(f){super(),Be(this,f,We,Ee,ve,{})}}export{Re as component};

Xet Storage Details

Size:
12.7 kB
·
Xet hash:
ef746cc217e383b3450c21afb75e06ac41ad76c76d879f21b76eee1a09d451e8

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