Buckets:
| import{s as ge,n as _e,o as $e}from"../chunks/scheduler.f3b1e791.js";import{S as Be,i as Ie,e as r,s,c as p,h as Ze,a as i,d as t,b as a,f as ve,g as m,j as o,k as ce,l as Ue,m as n,n as c,t as d,o as h,p as u}from"../chunks/index.023a9934.js";import{C as Ce,H as pe,E as xe}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.3d676eea.js";import{C as me}from"../chunks/CodeBlock.bc5a8d81.js";function Ee(de){let k,H,G,L,y,F,M,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,J,N,w,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,ke=`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,v,fe="Hub kernels must be loaded with either a <code>version</code> or an explicit <code>revision</code>.",S,f,ye=`<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,g,K,_,Me=`You can check if a particular version of a kernel supports the environment | |
| that the program is running on:`,P,$,D,B,be=`When no compatible kernel is found, <a href="/docs/kernels/pr_668/en/api/kernels#kernels.has_kernel">has_kernel()</a> does not say <em>why</em>. | |
| <a href="/docs/kernels/pr_668/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,I,ee,Z,le,U,Te=`<a href="/docs/kernels/pr_668/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_668/en/api/kernels#kernels.LoadedKernel">LoadedKernel</a> namedtuple with the | |
| imported <code>module</code>, the <code>package_name</code>, and <code>repo_infos</code> (repo id, resolved | |
| revision, and the backend argument that was passed).`,te,C,ne,x,Je=`<code>repo_infos</code> is populated only for kernels loaded with <a href="/docs/kernels/pr_668/en/api/kernels#kernels.get_kernel">get_kernel()</a>. Kernels | |
| loaded from a local path (<a href="/docs/kernels/pr_668/en/api/kernels#kernels.get_local_kernel">get_local_kernel()</a>) or via a lockfile | |
| (<a href="/docs/kernels/pr_668/en/api/kernels#kernels.get_locked_kernel">get_locked_kernel()</a>, <a href="/docs/kernels/pr_668/en/api/kernels#kernels.load_kernel">load_kernel()</a>) have <code>repo_infos=None</code>.`,se,E,we='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,X,oe;return y=new Ce({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),M=new pe({props:{title:"Quickstart",local:"quickstart",headingTag:"h1"}}),b=new pe({props:{title:"Loading Kernels",local:"loading-kernels",headingTag:"h2"}}),J=new me({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">"kernels-community/activation"</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">"cuda"</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 pe({props:{title:"Checking Kernel Availability",local:"checking-kernel-availability",headingTag:"h2"}}),$=new me({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">"kernels-community/activation"</span>, version=<span class="hljs-number">1</span>) | |
| <span class="hljs-built_in">print</span>(<span class="hljs-string">f"Kernel available: <span class="hljs-subst">{is_available}</span>"</span>)`,lang:"python",wrap:!1}}),I=new me({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">"kernels-community/activation"</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"<span class="hljs-subst">{name}</span>: compatible"</span>) | |
| <span class="hljs-keyword">else</span>: | |
| <span class="hljs-built_in">print</span>(<span class="hljs-string">f"<span class="hljs-subst">{name}</span>: rejected (<span class="hljs-subst">{decision.reason}</span>)"</span>)`,lang:"python",wrap:!1}}),Z=new pe({props:{title:"Inspecting Loaded Kernels",local:"inspecting-loaded-kernels",headingTag:"h2"}}),C=new me({props:{code:"ZnJvbSUyMGtlcm5lbHMlMjBpbXBvcnQlMjBnZXRfa2VybmVsJTJDJTIwZ2V0X2xvYWRlZF9rZXJuZWxzJTBBJTBBZ2V0X2tlcm5lbCglMjJrZXJuZWxzLWNvbW11bml0eSUyRmFjdGl2YXRpb24lMjIlMkMlMjB2ZXJzaW9uJTNEMSklMEElMEFmb3IlMjBsb2FkZWQlMjBpbiUyMGdldF9sb2FkZWRfa2VybmVscygpJTNBJTBBJTIwJTIwJTIwJTIwcHJpbnQobG9hZGVkLnBhY2thZ2VfbmFtZSUyQyUyMGxvYWRlZC5yZXBvX2luZm9zKQ==",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">"kernels-community/activation"</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.package_name, loaded.repo_infos)`,lang:"python",wrap:!1}}),W=new xe({props:{source:"https://github.com/huggingface/kernels/blob/main/docs/source/basic-usage.md"}}),{c(){k=r("meta"),H=s(),G=r("p"),L=s(),p(y.$$.fragment),F=s(),p(M.$$.fragment),R=s(),p(b.$$.fragment),Y=s(),T=r("p"),T.innerHTML=he,z=s(),p(J.$$.fragment),N=s(),w=r("p"),w.innerHTML=ue,Q=s(),j=r("p"),j.textContent=ke,q=s(),v=r("p"),v.innerHTML=fe,S=s(),f=r("blockquote"),f.innerHTML=ye,A=s(),p(g.$$.fragment),K=s(),_=r("p"),_.textContent=Me,P=s(),p($.$$.fragment),D=s(),B=r("p"),B.innerHTML=be,O=s(),p(I.$$.fragment),ee=s(),p(Z.$$.fragment),le=s(),U=r("p"),U.innerHTML=Te,te=s(),p(C.$$.fragment),ne=s(),x=r("p"),x.innerHTML=Je,se=s(),E=r("p"),E.innerHTML=we,ae=s(),V=r("p"),V.innerHTML=je,re=s(),p(W.$$.fragment),ie=s(),X=r("p"),this.h()},l(e){const l=Ze("svelte-u9bgzb",document.head);k=i(l,"META",{name:!0,content:!0}),l.forEach(t),H=a(e),G=i(e,"P",{}),ve(G).forEach(t),L=a(e),m(y.$$.fragment,e),F=a(e),m(M.$$.fragment,e),R=a(e),m(b.$$.fragment,e),Y=a(e),T=i(e,"P",{"data-svelte-h":!0}),o(T)!=="svelte-2utbko"&&(T.innerHTML=he),z=a(e),m(J.$$.fragment,e),N=a(e),w=i(e,"P",{"data-svelte-h":!0}),o(w)!=="svelte-1xtp1ii"&&(w.innerHTML=ue),Q=a(e),j=i(e,"P",{"data-svelte-h":!0}),o(j)!=="svelte-sotpzr"&&(j.textContent=ke),q=a(e),v=i(e,"P",{"data-svelte-h":!0}),o(v)!=="svelte-ac6a7l"&&(v.innerHTML=fe),S=a(e),f=i(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),o(f)!=="svelte-n51n6u"&&(f.innerHTML=ye),A=a(e),m(g.$$.fragment,e),K=a(e),_=i(e,"P",{"data-svelte-h":!0}),o(_)!=="svelte-vgk28x"&&(_.textContent=Me),P=a(e),m($.$$.fragment,e),D=a(e),B=i(e,"P",{"data-svelte-h":!0}),o(B)!=="svelte-nnis0e"&&(B.innerHTML=be),O=a(e),m(I.$$.fragment,e),ee=a(e),m(Z.$$.fragment,e),le=a(e),U=i(e,"P",{"data-svelte-h":!0}),o(U)!=="svelte-1xwdyf4"&&(U.innerHTML=Te),te=a(e),m(C.$$.fragment,e),ne=a(e),x=i(e,"P",{"data-svelte-h":!0}),o(x)!=="svelte-1y9pvk4"&&(x.innerHTML=Je),se=a(e),E=i(e,"P",{"data-svelte-h":!0}),o(E)!=="svelte-jwtqmg"&&(E.innerHTML=we),ae=a(e),V=i(e,"P",{"data-svelte-h":!0}),o(V)!=="svelte-1uhalfl"&&(V.innerHTML=je),re=a(e),m(W.$$.fragment,e),ie=a(e),X=i(e,"P",{}),ve(X).forEach(t),this.h()},h(){ce(k,"name","hf:doc:metadata"),ce(k,"content",Ve),ce(f,"class","note")},m(e,l){Ue(document.head,k),n(e,H,l),n(e,G,l),n(e,L,l),c(y,e,l),n(e,F,l),c(M,e,l),n(e,R,l),c(b,e,l),n(e,Y,l),n(e,T,l),n(e,z,l),c(J,e,l),n(e,N,l),n(e,w,l),n(e,Q,l),n(e,j,l),n(e,q,l),n(e,v,l),n(e,S,l),n(e,f,l),n(e,A,l),c(g,e,l),n(e,K,l),n(e,_,l),n(e,P,l),c($,e,l),n(e,D,l),n(e,B,l),n(e,O,l),c(I,e,l),n(e,ee,l),c(Z,e,l),n(e,le,l),n(e,U,l),n(e,te,l),c(C,e,l),n(e,ne,l),n(e,x,l),n(e,se,l),n(e,E,l),n(e,ae,l),n(e,V,l),n(e,re,l),c(W,e,l),n(e,ie,l),n(e,X,l),oe=!0},p:_e,i(e){oe||(d(y.$$.fragment,e),d(M.$$.fragment,e),d(b.$$.fragment,e),d(J.$$.fragment,e),d(g.$$.fragment,e),d($.$$.fragment,e),d(I.$$.fragment,e),d(Z.$$.fragment,e),d(C.$$.fragment,e),d(W.$$.fragment,e),oe=!0)},o(e){h(y.$$.fragment,e),h(M.$$.fragment,e),h(b.$$.fragment,e),h(J.$$.fragment,e),h(g.$$.fragment,e),h($.$$.fragment,e),h(I.$$.fragment,e),h(Z.$$.fragment,e),h(C.$$.fragment,e),h(W.$$.fragment,e),oe=!1},d(e){e&&(t(H),t(G),t(L),t(F),t(R),t(Y),t(T),t(z),t(N),t(w),t(Q),t(j),t(q),t(v),t(S),t(f),t(A),t(K),t(_),t(P),t(D),t(B),t(O),t(ee),t(le),t(U),t(te),t(ne),t(x),t(se),t(E),t(ae),t(V),t(re),t(ie),t(X)),t(k),u(y,e),u(M,e),u(b,e),u(J,e),u(g,e),u($,e),u(I,e),u(Z,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 Fe extends Be{constructor(k){super(),Ie(this,k,We,Ee,ge,{})}}export{Fe as component}; | |
Xet Storage Details
- Size:
- 12.4 kB
- Xet hash:
- acdf1675923eb66af3d771531a7f7151268fbab4e3d63c1f4f5171921ca04e57
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.