Buckets:

HuggingFaceDocBuilder's picture
download
raw
23.1 kB
import{s as Qe,n as Le,o as Ge}from"../chunks/scheduler.f3b1e791.js";import{S as He,i as Re,e as r,s as a,c as p,h as Se,a as o,d as s,b as t,f as Ye,g as M,j as i,k as Ie,l as Fe,m as n,n as c,t as y,o as u,p as T}from"../chunks/index.023a9934.js";import{C as ze,H as G,E as qe}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.76705b3b.js";import{C as be}from"../chunks/CodeBlock.368f51b1.js";function De(Ue){let J,S,H,F,j,z,w,q,h,D,f,K,I,ke=`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).`,O,b,xe=`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.`,P,d,_e=`<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>`,ee,U,Ce=`You can find the versions that are supported by a kernel using the
<code>kernels versions command</code>. For example:`,le,k,se,x,ge=`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.`,ne,_,Be="Code that uses a kernel can be updated as follows:",ae,C,te,g,re,B,oe,E,Ee=`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.`,ie,V,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”).`,pe,X,Xe="To migrate an existing <code>model</code>-type kernel repository:",Me,v,ve=`<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_676/en/api/kernels#kernels.get_kernel">get_kernel()</a> and <a href="/docs/kernels/pr_676/en/api/layers#kernels.LayerRepository">LayerRepository</a> calls
to reference the new repository if the <code>repo-id</code> changed.</li>`,ce,Z,ye,m,Ze=`<p><strong>Deprecation of kernel functions.</strong> <code>use_kernel_func_from_hub</code>, <code>FuncRepository</code>, <code>LocalFuncRepository</code>, and
<code>LockedFuncRepository</code> are now deprecated.</p>`,ue,W,We=`To make a function extensible by a layer, use the same decorator as for
layers (<a href="/docs/kernels/pr_676/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_676/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_676/en/api/layers#kernels.kernelize">kernelize()</a>.`,Te,N,Ne="For example:",Je,A,de,$,Ae=`<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_676/en/api/layers#kernels.LayerRepository">LayerRepository</a>,
<a href="/docs/kernels/pr_676/en/api/layers#kernels.LocalLayerRepository">LocalLayerRepository</a>, or <a href="/docs/kernels/pr_676/en/api/layers#kernels.LockedLayerRepository">LockedLayerRepository</a>.
For example:`,me,Y,je,Q,$e='For more information, see the <a href="layers">layer documentation</a>.',we,L,he,R,fe;return j=new ze({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),w=new G({props:{title:"Migrate from older versions",local:"migrate-from-older-versions",headingTag:"h1"}}),h=new G({props:{title:"0.12",local:"012",headingTag:"h2"}}),f=new G({props:{title:"Adopting kernel versions",local:"adopting-kernel-versions",headingTag:"h3"}}),k=new be({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}}),C=new be({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}}),g=new G({props:{title:"0.14",local:"014",headingTag:"h2"}}),B=new G({props:{title:"kernel repo type on the Hub",local:"kernel-repo-type-on-the-hub",headingTag:"h3"}}),Z=new G({props:{title:"0.16",local:"016",headingTag:"h2"}}),A=new be({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}}),Y=new be({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 qe({props:{source:"https://github.com/huggingface/kernels/blob/main/docs/source/migration.md"}}),{c(){J=r("meta"),S=a(),H=r("p"),F=a(),p(j.$$.fragment),z=a(),p(w.$$.fragment),q=a(),p(h.$$.fragment),D=a(),p(f.$$.fragment),K=a(),I=r("p"),I.innerHTML=ke,O=a(),b=r("p"),b.textContent=xe,P=a(),d=r("blockquote"),d.innerHTML=_e,ee=a(),U=r("p"),U.innerHTML=Ce,le=a(),p(k.$$.fragment),se=a(),x=r("p"),x.textContent=ge,ne=a(),_=r("p"),_.textContent=Be,ae=a(),p(C.$$.fragment),te=a(),p(g.$$.fragment),re=a(),p(B.$$.fragment),oe=a(),E=r("p"),E.innerHTML=Ee,ie=a(),V=r("p"),V.innerHTML=Ve,pe=a(),X=r("p"),X.innerHTML=Xe,Me=a(),v=r("ol"),v.innerHTML=ve,ce=a(),p(Z.$$.fragment),ye=a(),m=r("blockquote"),m.innerHTML=Ze,ue=a(),W=r("p"),W.innerHTML=We,Te=a(),N=r("p"),N.textContent=Ne,Je=a(),p(A.$$.fragment),de=a(),$=r("p"),$.innerHTML=Ae,me=a(),p(Y.$$.fragment),je=a(),Q=r("p"),Q.innerHTML=$e,we=a(),p(L.$$.fragment),he=a(),R=r("p"),this.h()},l(e){const l=Se("svelte-u9bgzb",document.head);J=o(l,"META",{name:!0,content:!0}),l.forEach(s),S=t(e),H=o(e,"P",{}),Ye(H).forEach(s),F=t(e),M(j.$$.fragment,e),z=t(e),M(w.$$.fragment,e),q=t(e),M(h.$$.fragment,e),D=t(e),M(f.$$.fragment,e),K=t(e),I=o(e,"P",{"data-svelte-h":!0}),i(I)!=="svelte-1ypqadk"&&(I.innerHTML=ke),O=t(e),b=o(e,"P",{"data-svelte-h":!0}),i(b)!=="svelte-1cirsrj"&&(b.textContent=xe),P=t(e),d=o(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),i(d)!=="svelte-n51n6u"&&(d.innerHTML=_e),ee=t(e),U=o(e,"P",{"data-svelte-h":!0}),i(U)!=="svelte-2bt5ad"&&(U.innerHTML=Ce),le=t(e),M(k.$$.fragment,e),se=t(e),x=o(e,"P",{"data-svelte-h":!0}),i(x)!=="svelte-eoylg7"&&(x.textContent=ge),ne=t(e),_=o(e,"P",{"data-svelte-h":!0}),i(_)!=="svelte-1y70x1q"&&(_.textContent=Be),ae=t(e),M(C.$$.fragment,e),te=t(e),M(g.$$.fragment,e),re=t(e),M(B.$$.fragment,e),oe=t(e),E=o(e,"P",{"data-svelte-h":!0}),i(E)!=="svelte-1b86c4m"&&(E.innerHTML=Ee),ie=t(e),V=o(e,"P",{"data-svelte-h":!0}),i(V)!=="svelte-4bp98y"&&(V.innerHTML=Ve),pe=t(e),X=o(e,"P",{"data-svelte-h":!0}),i(X)!=="svelte-rwp3tm"&&(X.innerHTML=Xe),Me=t(e),v=o(e,"OL",{"data-svelte-h":!0}),i(v)!=="svelte-nyowqc"&&(v.innerHTML=ve),ce=t(e),M(Z.$$.fragment,e),ye=t(e),m=o(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),i(m)!=="svelte-6s6pue"&&(m.innerHTML=Ze),ue=t(e),W=o(e,"P",{"data-svelte-h":!0}),i(W)!=="svelte-s6bddh"&&(W.innerHTML=We),Te=t(e),N=o(e,"P",{"data-svelte-h":!0}),i(N)!=="svelte-1gkqha7"&&(N.textContent=Ne),Je=t(e),M(A.$$.fragment,e),de=t(e),$=o(e,"P",{"data-svelte-h":!0}),i($)!=="svelte-wlksf0"&&($.innerHTML=Ae),me=t(e),M(Y.$$.fragment,e),je=t(e),Q=o(e,"P",{"data-svelte-h":!0}),i(Q)!=="svelte-18oy2bq"&&(Q.innerHTML=$e),we=t(e),M(L.$$.fragment,e),he=t(e),R=o(e,"P",{}),Ye(R).forEach(s),this.h()},h(){Ie(J,"name","hf:doc:metadata"),Ie(J,"content",Ke),Ie(d,"class","note"),Ie(m,"class","warning")},m(e,l){Fe(document.head,J),n(e,S,l),n(e,H,l),n(e,F,l),c(j,e,l),n(e,z,l),c(w,e,l),n(e,q,l),c(h,e,l),n(e,D,l),c(f,e,l),n(e,K,l),n(e,I,l),n(e,O,l),n(e,b,l),n(e,P,l),n(e,d,l),n(e,ee,l),n(e,U,l),n(e,le,l),c(k,e,l),n(e,se,l),n(e,x,l),n(e,ne,l),n(e,_,l),n(e,ae,l),c(C,e,l),n(e,te,l),c(g,e,l),n(e,re,l),c(B,e,l),n(e,oe,l),n(e,E,l),n(e,ie,l),n(e,V,l),n(e,pe,l),n(e,X,l),n(e,Me,l),n(e,v,l),n(e,ce,l),c(Z,e,l),n(e,ye,l),n(e,m,l),n(e,ue,l),n(e,W,l),n(e,Te,l),n(e,N,l),n(e,Je,l),c(A,e,l),n(e,de,l),n(e,$,l),n(e,me,l),c(Y,e,l),n(e,je,l),n(e,Q,l),n(e,we,l),c(L,e,l),n(e,he,l),n(e,R,l),fe=!0},p:Le,i(e){fe||(y(j.$$.fragment,e),y(w.$$.fragment,e),y(h.$$.fragment,e),y(f.$$.fragment,e),y(k.$$.fragment,e),y(C.$$.fragment,e),y(g.$$.fragment,e),y(B.$$.fragment,e),y(Z.$$.fragment,e),y(A.$$.fragment,e),y(Y.$$.fragment,e),y(L.$$.fragment,e),fe=!0)},o(e){u(j.$$.fragment,e),u(w.$$.fragment,e),u(h.$$.fragment,e),u(f.$$.fragment,e),u(k.$$.fragment,e),u(C.$$.fragment,e),u(g.$$.fragment,e),u(B.$$.fragment,e),u(Z.$$.fragment,e),u(A.$$.fragment,e),u(Y.$$.fragment,e),u(L.$$.fragment,e),fe=!1},d(e){e&&(s(S),s(H),s(F),s(z),s(q),s(D),s(K),s(I),s(O),s(b),s(P),s(d),s(ee),s(U),s(le),s(se),s(x),s(ne),s(_),s(ae),s(te),s(re),s(oe),s(E),s(ie),s(V),s(pe),s(X),s(Me),s(v),s(ce),s(ye),s(m),s(ue),s(W),s(Te),s(N),s(Je),s(de),s($),s(me),s(je),s(Q),s(we),s(he),s(R)),s(J),T(j,e),T(w,e),T(h,e),T(f,e),T(k,e),T(C,e),T(g,e),T(B,e),T(Z,e),T(A,e),T(Y,e),T(L,e)}}}const Ke='{"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":[],"depth":2}],"depth":1}';function Oe(Ue){return Ge(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class nl extends He{constructor(J){super(),Re(this,J,Oe,De,Qe,{})}}export{nl as component};

Xet Storage Details

Size:
23.1 kB
·
Xet hash:
be5cc8c1f829e093040964c8d8f987b51810bb68a659528a1a757a3e7ca4320e

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