Buckets:

HuggingFaceDocBuilder's picture
download
raw
23.4 kB
import{s as Le,n as He,o as Re}from"../chunks/scheduler.f3b1e791.js";import{S as Se,i as Fe,e as r,s as t,c as p,h as ze,a as i,d as s,b as a,f as Ge,g as M,j as o,k as ke,l as qe,m as n,n as c,t as y,o as u,p as T}from"../chunks/index.023a9934.js";import{C as De,H,E as Ke}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.0a30a4c4.js";import{C as Ue}from"../chunks/CodeBlock.b5e4628d.js";function Oe(xe){let J,F,R,z,m,q,j,D,w,K,h,O,f,_e=`Before <code>kernels</code> 0.12, kernels could be pulled from a repository
without specifying a version. This is deprecated in kernels 0.12
and is an error in kernels 0.15. Instead, use of a kernel should
always specify a version or revision (except for local kernels).`,P,I,Ce=`Kernels only use a major version. The kernel maintainer is responsible
for never breaking a kernel within a major version and should bump up
the major version if the kernel API changes and/or when support for
older Torch versions is removed.`,ee,d,ge=`<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>`,le,b,Be=`You can find the versions that are supported by a kernel using the
<code>kernels versions command</code>. For example:`,se,U,ne,k,Ee=`The command lists all available versions (here only version 1) with
all the variants that are supported. A check mark is printed after
the variant that is compatible with your current environment.`,te,x,Ve="Code that uses a kernel can be updated as follows:",ae,_,re,C,ie,g,oe,B,Xe=`Kernels are now a first-class repository type on the Hugging Face Hub, and
<code>kernels</code> 0.14 loads kernels exclusively from <code>kernel</code>-type repositories.
<code>model</code>-type kernel repositories are no longer supported by the loader.`,pe,E,ve=`New uploads via <code>kernel-builder build-and-upload</code> default to
<code>--repo-type kernel</code>. To publish, the owning user or org must have
kernel-creation access. Request it from
<a href="https://huggingface.co/settings/account" rel="nofollow">huggingface.co/settings/account</a>
(“Request Kernels Creation”).`,Me,V,Ze="To migrate an existing <code>model</code>-type kernel repository:",ce,X,We=`<li>Make sure the publishing org has been granted kernel-creation access
(see above).</li> <li>Re-upload with <code>kernel-builder build-and-upload</code> to a <code>kernel</code>-type
repository. Either keep the same <code>repo-id</code> in <code>build.toml</code> if the
repository has been migrated to the new type, or point it at a newly
created <code>kernel</code>-type repository.</li> <li>Update consumers’ <a href="/docs/kernels/pr_679/en/api/kernels#kernels.get_kernel">get_kernel()</a> and <a href="/docs/kernels/pr_679/en/api/layers#kernels.LayerRepository">LayerRepository</a> calls
to reference the new repository if the <code>repo-id</code> changed.</li>`,ye,v,ue,Z,Te,W,$e=`<code>use_kernel_func_from_hub</code>, <code>FuncRepository</code>, <code>LocalFuncRepository</code>, and
<code>LockedFuncRepository</code> are now deprecated.`,Je,$,Ne=`To make a function extensible by a layer, use the same decorator as for
layers (<a href="/docs/kernels/pr_679/en/api/layers#kernels.use_kernel_forward_from_hub">use_kernel_forward_from_hub()</a>). This makes it clearer
that the function is actually replaced by a layer. You can also use the
<a href="/docs/kernels/pr_679/en/api/layers#kernels.use_kernelized_func">use_kernelized_func()</a> decorator to attach such a function to
the layer where it is used, making it discoverable by
<a href="/docs/kernels/pr_679/en/api/layers#kernels.kernelize">kernelize()</a>.`,de,N,Ae="For example:",me,A,je,Y,Ye=`<code>FuncRepository</code>, <code>LocalFuncRepository</code>, and <code>LockedFuncRepository</code> are
not replaced. They allowed using an arbitrary function from a kernel
as a layer, but this was easily misused and did not have a clean way
of marking such a function as supporting <code>torch.compile</code> or backward
passes. Going forward, kernel functions should be exposed as regular
kernel layers and used with <a href="/docs/kernels/pr_679/en/api/layers#kernels.LayerRepository">LayerRepository</a>,
<a href="/docs/kernels/pr_679/en/api/layers#kernels.LocalLayerRepository">LocalLayerRepository</a>, or <a href="/docs/kernels/pr_679/en/api/layers#kernels.LockedLayerRepository">LockedLayerRepository</a>.
For example:`,we,Q,he,G,Qe='For more information, see the <a href="layers">layer documentation</a>.',fe,L,Ie,S,be;return m=new De({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),j=new H({props:{title:"Migrate from older versions",local:"migrate-from-older-versions",headingTag:"h1"}}),w=new H({props:{title:"0.12",local:"012",headingTag:"h2"}}),h=new H({props:{title:"Adopting kernel versions",local:"adopting-kernel-versions",headingTag:"h3"}}),U=new Ue({props:{code:"JTI0JTIwa2VybmVscyUyMHZlcnNpb25zJTIwa2VybmVscy1jb21tdW5pdHklMkZhY3RpdmF0aW9uJTBBVmVyc2lvbiUyMDElM0ElMjB0b3JjaDIxMC1jeHgxMS1jdTEyNi14ODZfNjQtbGludXglMkMlMjB0b3JjaDIxMC1jeHgxMS1jdTEyOC14ODZfNjQtbGludXglMkMlMjB0b3JjaDIxMC1jeHgxMS1jdTEzMC14ODZfNjQtbGludXglMkMlMjB0b3JjaDI3LWN4eDExLWN1MTE4LXg4Nl82NC1saW51eCUyQyUyMHRvcmNoMjctY3h4MTEtY3UxMjYteDg2XzY0LWxpbnV4JTJDJTIwdG9yY2gyNy1jeHgxMS1jdTEyOC1hYXJjaDY0LWxpbnV4JTJDJTIwdG9yY2gyNy1jeHgxMS1jdTEyOC14ODZfNjQtbGludXglMjAlRTIlOUMlODUlMkMlMjB0b3JjaDI4LWN4eDExLWN1MTI2LWFhcmNoNjQtbGludXglMkMlMjB0b3JjaDI4LWN4eDExLWN1MTI2LXg4Nl82NC1saW51eCUyQyUyMHRvcmNoMjgtY3h4MTEtY3UxMjgtYWFyY2g2NC1saW51eCUyQyUyMHRvcmNoMjgtY3h4MTEtY3UxMjgteDg2XzY0LWxpbnV4JTJDJTIwdG9yY2gyOC1jeHgxMS1jdTEyOS1hYXJjaDY0LWxpbnV4JTJDJTIwdG9yY2gyOC1jeHgxMS1jdTEyOS14ODZfNjQtbGludXglMkMlMjB0b3JjaDI5LWN4eDExLWN1MTI2LWFhcmNoNjQtbGludXglMkMlMjB0b3JjaDI5LWN4eDExLWN1MTI2LXg4Nl82NC1saW51eCUyQyUyMHRvcmNoMjktY3h4MTEtY3UxMjgtYWFyY2g2NC1saW51eCUyQyUyMHRvcmNoMjktY3h4MTEtY3UxMjgteDg2XzY0LWxpbnV4JTJDJTIwdG9yY2gyOS1jeHgxMS1jdTEzMC1hYXJjaDY0LWxpbnV4JTJDJTIwdG9yY2gyOS1jeHgxMS1jdTEzMC14ODZfNjQtbGludXg=",highlighted:`$ kernels versions kernels-community/activation
Version 1: torch210-cxx11-cu126-x86_64-linux, torch210-cxx11-cu128-x86_64-linux, torch210-cxx11-cu130-x86_64-linux, torch27-cxx11-cu118-x86_64-linux, torch27-cxx11-cu126-x86_64-linux, torch27-cxx11-cu128-aarch64-linux, torch27-cxx11-cu128-x86_64-linux ✅, torch28-cxx11-cu126-aarch64-linux, torch28-cxx11-cu126-x86_64-linux, torch28-cxx11-cu128-aarch64-linux, torch28-cxx11-cu128-x86_64-linux, torch28-cxx11-cu129-aarch64-linux, torch28-cxx11-cu129-x86_64-linux, torch29-cxx11-cu126-aarch64-linux, torch29-cxx11-cu126-x86_64-linux, torch29-cxx11-cu128-aarch64-linux, torch29-cxx11-cu128-x86_64-linux, torch29-cxx11-cu130-aarch64-linux, torch29-cxx11-cu130-x86_64-linux`,lang:"bash",wrap:!1}}),_=new Ue({props:{code:"JTIzJTIwT2xkJTNBJTBBYWN0aXZhdGlvbiUyMCUzRCUyMGdldF9rZXJuZWwoJTIya2VybmVscy1jb21tdW5pdHklMkZhY3RpdmF0aW9uJTIyKSUwQWFjdGl2YXRpb24lMjAlM0QlMjBnZXRfa2VybmVsKCUyMmtlcm5lbHMtY29tbXVuaXR5JTJGYWN0aXZhdGlvbiUyMiUyQyUyMHZlcnNpb24lM0QlMjIlM0UlM0QwLjAuMiUyMCUyNiUyNiUyMCUzQzAuMS4wJTIyKSUwQSUwQSUyMyUyME5ldyUzQSUwQWFjdGl2YXRpb24lMjAlM0QlMjBnZXRfa2VybmVsKCUyMmtlcm5lbHMtY29tbXVuaXR5JTJGYWN0aXZhdGlvbiUyMiUyQyUyMHZlcnNpb24lM0QxKSUwQSUwQSUyMyUyME9sZCUzQSUwQWtlcm5lbF9sYXllcl9tYXBwaW5nJTIwJTNEJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIyU2lsdUFuZE11bCUyMiUzQSUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMmN1ZGElMjIlM0ElMjBMYXllclJlcG9zaXRvcnkoJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmVwb19pZCUzRCUyMmtlcm5lbHMtY29tbXVuaXR5JTJGYWN0aXZhdGlvbiUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGxheWVyX25hbWUlM0QlMjJTaWx1QW5kTXVsJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwKSUyQyUwQSUyMCUyMCUyMCUyMCU3RCUwQSU3RCUwQWtlcm5lbF9sYXllcl9tYXBwaW5nJTIwJTNEJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIyU2lsdUFuZE11bCUyMiUzQSUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMmN1ZGElMjIlM0ElMjBMYXllclJlcG9zaXRvcnkoJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmVwb19pZCUzRCUyMmtlcm5lbHMtY29tbXVuaXR5JTJGYWN0aXZhdGlvbiUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGxheWVyX25hbWUlM0QlMjJTaWx1QW5kTXVsJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdmVyc2lvbiUzRCUyMiUzRSUzRDAuMC4yJTIwJTI2JTI2JTIwJTNDMC4xLjAlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjApJTJDJTBBJTIwJTIwJTIwJTIwJTdEJTBBJTdEJTBBJTBBJTIzJTIwTmV3JTNBJTBBa2VybmVsX2xheWVyX21hcHBpbmclMjAlM0QlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjJTaWx1QW5kTXVsJTIyJTNBJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyY3VkYSUyMiUzQSUyMExheWVyUmVwb3NpdG9yeSglMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXBvX2lkJTNEJTIya2VybmVscy1jb21tdW5pdHklMkZhY3RpdmF0aW9uJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbGF5ZXJfbmFtZSUzRCUyMlNpbHVBbmRNdWwlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB2ZXJzaW9uJTNEMSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCklMkMlMEElMjAlMjAlMjAlMjAlN0QlMEElN0Q=",highlighted:`<span class="hljs-comment"># Old:</span>
activation = get_kernel(<span class="hljs-string">&quot;kernels-community/activation&quot;</span>)
activation = get_kernel(<span class="hljs-string">&quot;kernels-community/activation&quot;</span>, version=<span class="hljs-string">&quot;&gt;=0.0.2 &amp;&amp; &lt;0.1.0&quot;</span>)
<span class="hljs-comment"># New:</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"># Old:</span>
kernel_layer_mapping = {
<span class="hljs-string">&quot;SiluAndMul&quot;</span>: {
<span class="hljs-string">&quot;cuda&quot;</span>: LayerRepository(
repo_id=<span class="hljs-string">&quot;kernels-community/activation&quot;</span>,
layer_name=<span class="hljs-string">&quot;SiluAndMul&quot;</span>,
),
}
}
kernel_layer_mapping = {
<span class="hljs-string">&quot;SiluAndMul&quot;</span>: {
<span class="hljs-string">&quot;cuda&quot;</span>: LayerRepository(
repo_id=<span class="hljs-string">&quot;kernels-community/activation&quot;</span>,
layer_name=<span class="hljs-string">&quot;SiluAndMul&quot;</span>,
version=<span class="hljs-string">&quot;&gt;=0.0.2 &amp;&amp; &lt;0.1.0&quot;</span>,
),
}
}
<span class="hljs-comment"># New:</span>
kernel_layer_mapping = {
<span class="hljs-string">&quot;SiluAndMul&quot;</span>: {
<span class="hljs-string">&quot;cuda&quot;</span>: LayerRepository(
repo_id=<span class="hljs-string">&quot;kernels-community/activation&quot;</span>,
layer_name=<span class="hljs-string">&quot;SiluAndMul&quot;</span>,
version=<span class="hljs-number">1</span>,
),
}
}`,lang:"python",wrap:!1}}),C=new H({props:{title:"0.14",local:"014",headingTag:"h2"}}),g=new H({props:{title:"kernel repo type on the Hub",local:"kernel-repo-type-on-the-hub",headingTag:"h3"}}),v=new H({props:{title:"0.16",local:"016",headingTag:"h2"}}),Z=new H({props:{title:"Deprecation of kernel functions.",local:"deprecation-of-kernel-functions",headingTag:"h3"}}),A=new Ue({props:{code:"aW1wb3J0JTIwdG9yY2glMEFpbXBvcnQlMjB0b3JjaC5ubiUyMGFzJTIwbm4lMEFpbXBvcnQlMjB0b3JjaC5ubi5mdW5jdGlvbmFsJTIwYXMlMjBGJTBBJTBBZnJvbSUyMGtlcm5lbHMlMjBpbXBvcnQlMjB1c2Vfa2VybmVsX2Z1bmNfZnJvbV9odWIlMjAlMjAlMjMlMjBvbGQlMEFmcm9tJTIwa2VybmVscyUyMGltcG9ydCUyMHVzZV9rZXJuZWxfZm9yd2FyZF9mcm9tX2h1YiUyQyUyMHVzZV9rZXJuZWxpemVkX2Z1bmMlMEElMEElMjMlMjBPbGQlM0ElMEElNDB1c2Vfa2VybmVsX2Z1bmNfZnJvbV9odWIoJTIyc2lsdV9hbmRfbXVsJTIyKSUwQWRlZiUyMHNpbHVfYW5kX211bCh4JTNBJTIwdG9yY2guVGVuc29yKSUyMC0lM0UlMjB0b3JjaC5UZW5zb3IlM0ElMEElMjAlMjAlMjAlMjBkJTIwJTNEJTIweC5zaGFwZSU1Qi0xJTVEJTIwJTJGJTJGJTIwMiUwQSUyMCUyMCUyMCUyMHJldHVybiUyMEYuc2lsdSh4JTVCLi4uJTJDJTIwJTNBZCU1RCklMjAqJTIweCU1Qi4uLiUyQyUyMGQlM0ElNUQlMEElMEFjbGFzcyUyMEZlZWRGb3J3YXJkKG5uLk1vZHVsZSklM0ElMEElMjAlMjAlMjAlMjBkZWYlMjBfX2luaXRfXyhzZWxmJTJDJTIwaW5fZmVhdHVyZXMlM0ElMjBpbnQlMkMlMjBvdXRfZmVhdHVyZXMlM0ElMjBpbnQpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3VwZXIoKS5fX2luaXRfXygpJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc2VsZi5zaWx1X2FuZF9tdWwlMjAlM0QlMjBzaWx1X2FuZF9tdWwlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzZWxmLmxpbmVhciUyMCUzRCUyMG5uLkxpbmVhcihpbl9mZWF0dXJlcyUyQyUyMG91dF9mZWF0dXJlcyklMEElMEElMjAlMjAlMjAlMjBkZWYlMjBmb3J3YXJkKHNlbGYlMkMlMjB4JTNBJTIwdG9yY2guVGVuc29yKSUyMC0lM0UlMjB0b3JjaC5UZW5zb3IlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjBzZWxmLnNpbHVfYW5kX211bChzZWxmLmxpbmVhcih4KSklMEElMEElMjMlMjBOZXclM0ElMEElNDB1c2Vfa2VybmVsX2ZvcndhcmRfZnJvbV9odWIoJTIyc2lsdV9hbmRfbXVsJTIyKSUwQWRlZiUyMHNpbHVfYW5kX211bCh4JTNBJTIwdG9yY2guVGVuc29yKSUyMC0lM0UlMjB0b3JjaC5UZW5zb3IlM0ElMEElMjAlMjAlMjAlMjBkJTIwJTNEJTIweC5zaGFwZSU1Qi0xJTVEJTIwJTJGJTJGJTIwMiUwQSUyMCUyMCUyMCUyMHJldHVybiUyMEYuc2lsdSh4JTVCLi4uJTJDJTIwJTNBZCU1RCklMjAqJTIweCU1Qi4uLiUyQyUyMGQlM0ElNUQlMEElMEElNDB1c2Vfa2VybmVsaXplZF9mdW5jKHNpbHVfYW5kX211bCklMEFjbGFzcyUyMEZlZWRGb3J3YXJkKG5uLk1vZHVsZSklM0ElMEElMjAlMjAlMjAlMjBkZWYlMjBfX2luaXRfXyhzZWxmJTJDJTIwaW5fZmVhdHVyZXMlM0ElMjBpbnQlMkMlMjBvdXRfZmVhdHVyZXMlM0ElMjBpbnQpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3VwZXIoKS5fX2luaXRfXygpJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc2VsZi5saW5lYXIlMjAlM0QlMjBubi5MaW5lYXIoaW5fZmVhdHVyZXMlMkMlMjBvdXRfZmVhdHVyZXMpJTBBJTBBJTIwJTIwJTIwJTIwZGVmJTIwZm9yd2FyZChzZWxmJTJDJTIweCUzQSUyMHRvcmNoLlRlbnNvciklMjAtJTNFJTIwdG9yY2guVGVuc29yJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwc2lsdV9hbmRfbXVsKHNlbGYubGluZWFyKHgpKQ==",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">import</span> torch.nn <span class="hljs-keyword">as</span> nn
<span class="hljs-keyword">import</span> torch.nn.functional <span class="hljs-keyword">as</span> F
<span class="hljs-keyword">from</span> kernels <span class="hljs-keyword">import</span> use_kernel_func_from_hub <span class="hljs-comment"># old</span>
<span class="hljs-keyword">from</span> kernels <span class="hljs-keyword">import</span> use_kernel_forward_from_hub, use_kernelized_func
<span class="hljs-comment"># Old:</span>
<span class="hljs-meta">@use_kernel_func_from_hub(<span class="hljs-params"><span class="hljs-string">&quot;silu_and_mul&quot;</span></span>)</span>
<span class="hljs-keyword">def</span> <span class="hljs-title function_">silu_and_mul</span>(<span class="hljs-params">x: torch.Tensor</span>) -&gt; torch.Tensor:
d = x.shape[-<span class="hljs-number">1</span>] // <span class="hljs-number">2</span>
<span class="hljs-keyword">return</span> F.silu(x[..., :d]) * x[..., d:]
<span class="hljs-keyword">class</span> <span class="hljs-title class_">FeedForward</span>(nn.Module):
<span class="hljs-keyword">def</span> <span class="hljs-title function_">__init__</span>(<span class="hljs-params">self, in_features: <span class="hljs-built_in">int</span>, out_features: <span class="hljs-built_in">int</span></span>):
<span class="hljs-built_in">super</span>().__init__()
self.silu_and_mul = silu_and_mul
self.linear = nn.Linear(in_features, out_features)
<span class="hljs-keyword">def</span> <span class="hljs-title function_">forward</span>(<span class="hljs-params">self, x: torch.Tensor</span>) -&gt; torch.Tensor:
<span class="hljs-keyword">return</span> self.silu_and_mul(self.linear(x))
<span class="hljs-comment"># New:</span>
<span class="hljs-meta">@use_kernel_forward_from_hub(<span class="hljs-params"><span class="hljs-string">&quot;silu_and_mul&quot;</span></span>)</span>
<span class="hljs-keyword">def</span> <span class="hljs-title function_">silu_and_mul</span>(<span class="hljs-params">x: torch.Tensor</span>) -&gt; torch.Tensor:
d = x.shape[-<span class="hljs-number">1</span>] // <span class="hljs-number">2</span>
<span class="hljs-keyword">return</span> F.silu(x[..., :d]) * x[..., d:]
<span class="hljs-meta">@use_kernelized_func(<span class="hljs-params">silu_and_mul</span>)</span>
<span class="hljs-keyword">class</span> <span class="hljs-title class_">FeedForward</span>(nn.Module):
<span class="hljs-keyword">def</span> <span class="hljs-title function_">__init__</span>(<span class="hljs-params">self, in_features: <span class="hljs-built_in">int</span>, out_features: <span class="hljs-built_in">int</span></span>):
<span class="hljs-built_in">super</span>().__init__()
self.linear = nn.Linear(in_features, out_features)
<span class="hljs-keyword">def</span> <span class="hljs-title function_">forward</span>(<span class="hljs-params">self, x: torch.Tensor</span>) -&gt; torch.Tensor:
<span class="hljs-keyword">return</span> silu_and_mul(self.linear(x))`,lang:"python",wrap:!1}}),Q=new Ue({props:{code:"aW1wb3J0JTIwdG9yY2glMEFpbXBvcnQlMjB0b3JjaC5ubiUyMGFzJTIwbm4lMEElMEElMjMlMjBPbGQlM0ElMEFkZWYlMjBmYXN0X3NpbHVfYW5kX211bCh4JTNBJTIwdG9yY2guVGVuc29yKSUyMC0lM0UlMjB0b3JjaC5UZW5zb3IlM0ElMEElMjAlMjAuLi4lMEElMEElMjMlMjBOZXclM0ElMEFkZWYlMjBmYXN0X3NpbHVfYW5kX211bCh4JTNBJTIwdG9yY2guVGVuc29yKSUyMC0lM0UlMjB0b3JjaC5UZW5zb3IlM0ElMEElMjAlMjAuLi4lMEElMEElMjMlMjBLZXJuZWwlMjBsYXllciUyMHRoYXQlMjBleHBvc2VzJTIwdGhlJTIwZnVuY3Rpb24uJTBBY2xhc3MlMjBGYXN0U2lsdUFuZE11bChubi5Nb2R1bGUpJTNBJTBBJTIwJTIwJTIwJTIwZGVmJTIwZm9yd2FyZChzZWxmJTJDJTIweCUzQSUyMHRvcmNoLlRlbnNvciklMjAtJTNFJTIwdG9yY2guVGVuc29yJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwZmFzdF9zaWx1X2FuZF9tdWwoeCk=",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">import</span> torch.nn <span class="hljs-keyword">as</span> nn
<span class="hljs-comment"># Old:</span>
<span class="hljs-keyword">def</span> <span class="hljs-title function_">fast_silu_and_mul</span>(<span class="hljs-params">x: torch.Tensor</span>) -&gt; torch.Tensor:
...
<span class="hljs-comment"># New:</span>
<span class="hljs-keyword">def</span> <span class="hljs-title function_">fast_silu_and_mul</span>(<span class="hljs-params">x: torch.Tensor</span>) -&gt; torch.Tensor:
...
<span class="hljs-comment"># Kernel layer that exposes the function.</span>
<span class="hljs-keyword">class</span> <span class="hljs-title class_">FastSiluAndMul</span>(nn.Module):
<span class="hljs-keyword">def</span> <span class="hljs-title function_">forward</span>(<span class="hljs-params">self, x: torch.Tensor</span>) -&gt; torch.Tensor:
<span class="hljs-keyword">return</span> fast_silu_and_mul(x)`,lang:"python",wrap:!1}}),L=new Ke({props:{source:"https://github.com/huggingface/kernels/blob/main/docs/source/migration.md"}}),{c(){J=r("meta"),F=t(),R=r("p"),z=t(),p(m.$$.fragment),q=t(),p(j.$$.fragment),D=t(),p(w.$$.fragment),K=t(),p(h.$$.fragment),O=t(),f=r("p"),f.innerHTML=_e,P=t(),I=r("p"),I.textContent=Ce,ee=t(),d=r("blockquote"),d.innerHTML=ge,le=t(),b=r("p"),b.innerHTML=Be,se=t(),p(U.$$.fragment),ne=t(),k=r("p"),k.textContent=Ee,te=t(),x=r("p"),x.textContent=Ve,ae=t(),p(_.$$.fragment),re=t(),p(C.$$.fragment),ie=t(),p(g.$$.fragment),oe=t(),B=r("p"),B.innerHTML=Xe,pe=t(),E=r("p"),E.innerHTML=ve,Me=t(),V=r("p"),V.innerHTML=Ze,ce=t(),X=r("ol"),X.innerHTML=We,ye=t(),p(v.$$.fragment),ue=t(),p(Z.$$.fragment),Te=t(),W=r("p"),W.innerHTML=$e,Je=t(),$=r("p"),$.innerHTML=Ne,de=t(),N=r("p"),N.textContent=Ae,me=t(),p(A.$$.fragment),je=t(),Y=r("p"),Y.innerHTML=Ye,we=t(),p(Q.$$.fragment),he=t(),G=r("p"),G.innerHTML=Qe,fe=t(),p(L.$$.fragment),Ie=t(),S=r("p"),this.h()},l(e){const l=ze("svelte-u9bgzb",document.head);J=i(l,"META",{name:!0,content:!0}),l.forEach(s),F=a(e),R=i(e,"P",{}),Ge(R).forEach(s),z=a(e),M(m.$$.fragment,e),q=a(e),M(j.$$.fragment,e),D=a(e),M(w.$$.fragment,e),K=a(e),M(h.$$.fragment,e),O=a(e),f=i(e,"P",{"data-svelte-h":!0}),o(f)!=="svelte-1ypqadk"&&(f.innerHTML=_e),P=a(e),I=i(e,"P",{"data-svelte-h":!0}),o(I)!=="svelte-1cirsrj"&&(I.textContent=Ce),ee=a(e),d=i(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),o(d)!=="svelte-n51n6u"&&(d.innerHTML=ge),le=a(e),b=i(e,"P",{"data-svelte-h":!0}),o(b)!=="svelte-2bt5ad"&&(b.innerHTML=Be),se=a(e),M(U.$$.fragment,e),ne=a(e),k=i(e,"P",{"data-svelte-h":!0}),o(k)!=="svelte-eoylg7"&&(k.textContent=Ee),te=a(e),x=i(e,"P",{"data-svelte-h":!0}),o(x)!=="svelte-1y70x1q"&&(x.textContent=Ve),ae=a(e),M(_.$$.fragment,e),re=a(e),M(C.$$.fragment,e),ie=a(e),M(g.$$.fragment,e),oe=a(e),B=i(e,"P",{"data-svelte-h":!0}),o(B)!=="svelte-1b86c4m"&&(B.innerHTML=Xe),pe=a(e),E=i(e,"P",{"data-svelte-h":!0}),o(E)!=="svelte-4bp98y"&&(E.innerHTML=ve),Me=a(e),V=i(e,"P",{"data-svelte-h":!0}),o(V)!=="svelte-rwp3tm"&&(V.innerHTML=Ze),ce=a(e),X=i(e,"OL",{"data-svelte-h":!0}),o(X)!=="svelte-1r8ic26"&&(X.innerHTML=We),ye=a(e),M(v.$$.fragment,e),ue=a(e),M(Z.$$.fragment,e),Te=a(e),W=i(e,"P",{"data-svelte-h":!0}),o(W)!=="svelte-6tyhwu"&&(W.innerHTML=$e),Je=a(e),$=i(e,"P",{"data-svelte-h":!0}),o($)!=="svelte-nmayse"&&($.innerHTML=Ne),de=a(e),N=i(e,"P",{"data-svelte-h":!0}),o(N)!=="svelte-1gkqha7"&&(N.textContent=Ae),me=a(e),M(A.$$.fragment,e),je=a(e),Y=i(e,"P",{"data-svelte-h":!0}),o(Y)!=="svelte-ur8mqt"&&(Y.innerHTML=Ye),we=a(e),M(Q.$$.fragment,e),he=a(e),G=i(e,"P",{"data-svelte-h":!0}),o(G)!=="svelte-18oy2bq"&&(G.innerHTML=Qe),fe=a(e),M(L.$$.fragment,e),Ie=a(e),S=i(e,"P",{}),Ge(S).forEach(s),this.h()},h(){ke(J,"name","hf:doc:metadata"),ke(J,"content",Pe),ke(d,"class","note")},m(e,l){qe(document.head,J),n(e,F,l),n(e,R,l),n(e,z,l),c(m,e,l),n(e,q,l),c(j,e,l),n(e,D,l),c(w,e,l),n(e,K,l),c(h,e,l),n(e,O,l),n(e,f,l),n(e,P,l),n(e,I,l),n(e,ee,l),n(e,d,l),n(e,le,l),n(e,b,l),n(e,se,l),c(U,e,l),n(e,ne,l),n(e,k,l),n(e,te,l),n(e,x,l),n(e,ae,l),c(_,e,l),n(e,re,l),c(C,e,l),n(e,ie,l),c(g,e,l),n(e,oe,l),n(e,B,l),n(e,pe,l),n(e,E,l),n(e,Me,l),n(e,V,l),n(e,ce,l),n(e,X,l),n(e,ye,l),c(v,e,l),n(e,ue,l),c(Z,e,l),n(e,Te,l),n(e,W,l),n(e,Je,l),n(e,$,l),n(e,de,l),n(e,N,l),n(e,me,l),c(A,e,l),n(e,je,l),n(e,Y,l),n(e,we,l),c(Q,e,l),n(e,he,l),n(e,G,l),n(e,fe,l),c(L,e,l),n(e,Ie,l),n(e,S,l),be=!0},p:He,i(e){be||(y(m.$$.fragment,e),y(j.$$.fragment,e),y(w.$$.fragment,e),y(h.$$.fragment,e),y(U.$$.fragment,e),y(_.$$.fragment,e),y(C.$$.fragment,e),y(g.$$.fragment,e),y(v.$$.fragment,e),y(Z.$$.fragment,e),y(A.$$.fragment,e),y(Q.$$.fragment,e),y(L.$$.fragment,e),be=!0)},o(e){u(m.$$.fragment,e),u(j.$$.fragment,e),u(w.$$.fragment,e),u(h.$$.fragment,e),u(U.$$.fragment,e),u(_.$$.fragment,e),u(C.$$.fragment,e),u(g.$$.fragment,e),u(v.$$.fragment,e),u(Z.$$.fragment,e),u(A.$$.fragment,e),u(Q.$$.fragment,e),u(L.$$.fragment,e),be=!1},d(e){e&&(s(F),s(R),s(z),s(q),s(D),s(K),s(O),s(f),s(P),s(I),s(ee),s(d),s(le),s(b),s(se),s(ne),s(k),s(te),s(x),s(ae),s(re),s(ie),s(oe),s(B),s(pe),s(E),s(Me),s(V),s(ce),s(X),s(ye),s(ue),s(Te),s(W),s(Je),s($),s(de),s(N),s(me),s(je),s(Y),s(we),s(he),s(G),s(fe),s(Ie),s(S)),s(J),T(m,e),T(j,e),T(w,e),T(h,e),T(U,e),T(_,e),T(C,e),T(g,e),T(v,e),T(Z,e),T(A,e),T(Q,e),T(L,e)}}}const Pe='{"title":"Migrate from older versions","local":"migrate-from-older-versions","sections":[{"title":"0.12","local":"012","sections":[{"title":"Adopting kernel versions","local":"adopting-kernel-versions","sections":[],"depth":3}],"depth":2},{"title":"0.14","local":"014","sections":[{"title":"kernel repo type on the Hub","local":"kernel-repo-type-on-the-hub","sections":[],"depth":3}],"depth":2},{"title":"0.16","local":"016","sections":[{"title":"Deprecation of kernel functions.","local":"deprecation-of-kernel-functions","sections":[],"depth":3}],"depth":2}],"depth":1}';function el(xe){return Re(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class al extends Se{constructor(J){super(),Fe(this,J,el,Oe,Le,{})}}export{al as component};

Xet Storage Details

Size:
23.4 kB
·
Xet hash:
66d26161e84d0ef2b5fb08593443afd350386d885f41922ade0a32cb761f8cd0

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