Buckets:

download
raw
63.4 kB
import{s as Tn,o as Un,n as P}from"../chunks/scheduler.f3b1e791.js";import{S as Jn,i as kn,e as w,s as a,c as d,h as bn,a as g,d as s,b as o,f as $,g as y,j as U,k as j,l as i,m as p,n as M,t as u,o as f,p as h}from"../chunks/index.023a9934.js";import{C as $n}from"../chunks/CopyLLMTxtMenu.cc24d0e5.js";import{D as C,E as q}from"../chunks/ExampleCodeBlock.e146325a.js";import{C as K}from"../chunks/CodeBlock.53c436d3.js";import{H as b,E as jn}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.64b97ed6.js";function _n(k){let n,J="Example:",m,r,c;return r=new K({props:{code:"aW1wb3J0JTIwdG9yY2glMEFpbXBvcnQlMjB0b3JjaC5ubiUyMGFzJTIwbm4lMEElMEFmcm9tJTIwa2VybmVscyUyMGltcG9ydCUyMHVzZV9rZXJuZWxfZm9yd2FyZF9mcm9tX2h1YiUwQWZyb20lMjBrZXJuZWxzJTIwaW1wb3J0JTIwTW9kZSUyQyUyMGtlcm5lbGl6ZSUwQSUwQSU0MHVzZV9rZXJuZWxfZm9yd2FyZF9mcm9tX2h1YiglMjJNeUN1c3RvbUxheWVyJTIyKSUwQWNsYXNzJTIwTXlDdXN0b21MYXllcihubi5Nb2R1bGUpJTNBJTBBJTIwJTIwJTIwJTIwZGVmJTIwX19pbml0X18oc2VsZiUyQyUyMGhpZGRlbl9zaXplKSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHN1cGVyKCkuX19pbml0X18oKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHNlbGYuaGlkZGVuX3NpemUlMjAlM0QlMjBoaWRkZW5fc2l6ZSUwQSUwQSUyMCUyMCUyMCUyMGRlZiUyMGZvcndhcmQoc2VsZiUyQyUyMHglM0ElMjB0b3JjaC5UZW5zb3IpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwb3JpZ2luYWwlMjBpbXBsZW1lbnRhdGlvbiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMHglMEElMEFtb2RlbCUyMCUzRCUyME15Q3VzdG9tTGF5ZXIoNzY4KSUwQSUwQSUyMyUyMFRoZSUyMGxheWVyJTIwY2FuJTIwbm93JTIwYmUlMjBrZXJuZWxpemVkJTNBJTBBJTIzJTIwbW9kZWwlMjAlM0QlMjBrZXJuZWxpemUobW9kZWwlMkMlMjBtb2RlJTNETW9kZS5UUkFJTklORyUyMCU3QyUyME1vZGUuVE9SQ0hfQ09NUElMRSUyQyUyMGRldmljZSUzRCUyMmN1ZGElMjIp",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">from</span> kernels <span class="hljs-keyword">import</span> use_kernel_forward_from_hub
<span class="hljs-keyword">from</span> kernels <span class="hljs-keyword">import</span> Mode, kernelize
<span class="hljs-meta">@use_kernel_forward_from_hub(<span class="hljs-params"><span class="hljs-string">&quot;MyCustomLayer&quot;</span></span>)</span>
<span class="hljs-keyword">class</span> <span class="hljs-title class_">MyCustomLayer</span>(nn.Module):
<span class="hljs-keyword">def</span> <span class="hljs-title function_">__init__</span>(<span class="hljs-params">self, hidden_size</span>):
<span class="hljs-built_in">super</span>().__init__()
self.hidden_size = hidden_size
<span class="hljs-keyword">def</span> <span class="hljs-title function_">forward</span>(<span class="hljs-params">self, x: torch.Tensor</span>):
<span class="hljs-comment"># original implementation</span>
<span class="hljs-keyword">return</span> x
model = MyCustomLayer(<span class="hljs-number">768</span>)
<span class="hljs-comment"># The layer can now be kernelized:</span>
<span class="hljs-comment"># model = kernelize(model, mode=Mode.TRAINING | Mode.TORCH_COMPILE, device=&quot;cuda&quot;)</span>`,wrap:!1}}),{c(){n=w("p"),n.textContent=J,m=a(),d(r.$$.fragment)},l(t){n=g(t,"P",{"data-svelte-h":!0}),U(n)!=="svelte-11lpom8"&&(n.textContent=J),m=o(t),y(r.$$.fragment,t)},m(t,T){p(t,n,T),p(t,m,T),M(r,t,T),c=!0},p:P,i(t){c||(u(r.$$.fragment,t),c=!0)},o(t){f(r.$$.fragment,t),c=!1},d(t){t&&(s(n),s(m)),h(r,t)}}}function In(k){let n,J="Example:",m,r,c;return r=new K({props:{code:"aW1wb3J0JTIwdG9yY2glMEFpbXBvcnQlMjB0b3JjaC5ubiUyMGFzJTIwbm4lMEElMEFmcm9tJTIwa2VybmVscyUyMGltcG9ydCUyMHVzZV9rZXJuZWxfZnVuY19mcm9tX2h1YiUwQWZyb20lMjBrZXJuZWxzJTIwaW1wb3J0JTIwTW9kZSUyQyUyMGtlcm5lbGl6ZSUwQSUwQSU0MHVzZV9rZXJuZWxfZnVuY19mcm9tX2h1YiglMjJteV9jdXN0b21fZnVuYyUyMiklMEFkZWYlMjBteV9jdXN0b21fZnVuYyh4JTNBJTIwdG9yY2guVGVuc29yKSUzQSUwQSUyMCUyMCUyMCUyMCUyMyUyME9yaWdpbmFsJTIwaW1wbGVtZW50YXRpb24lMEElMjAlMjAlMjAlMjByZXR1cm4lMjB4JTBBJTBBY2xhc3MlMjBNeU1vZGVsKHRvcmNoLm5uLk1vZHVsZSklM0ElMEElMjAlMjAlMjAlMjBkZWYlMjBfX2luaXRfXyhzZWxmKSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHN1cGVyKCkuX19pbml0X18oKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHNlbGYuZm4lMjAlM0QlMjBteV9jdXN0b21fZnVuYyUwQSUwQSUyMCUyMCUyMCUyMGRlZiUyMGZvcndhcmQoc2VsZiUyQyUyMHgpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwc2VsZi5mbih4KSUwQSUwQW1vZGVsJTIwJTNEJTIwTXlNb2RlbCgpJTBBJTBBJTIzJTIwVGhlJTIwbGF5ZXIlMjBjYW4lMjBub3clMjBiZSUyMGtlcm5lbGl6ZWQlM0ElMEElMjMlMjBtb2RlbCUyMCUzRCUyMGtlcm5lbGl6ZShtb2RlbCUyQyUyMG1vZGUlM0RNb2RlLlRSQUlOSU5HJTIwJTdDJTIwTW9kZS5UT1JDSF9DT01QSUxFJTJDJTIwZGV2aWNlJTNEJTIyY3VkYSUyMik=",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">from</span> kernels <span class="hljs-keyword">import</span> use_kernel_func_from_hub
<span class="hljs-keyword">from</span> kernels <span class="hljs-keyword">import</span> Mode, kernelize
<span class="hljs-meta">@use_kernel_func_from_hub(<span class="hljs-params"><span class="hljs-string">&quot;my_custom_func&quot;</span></span>)</span>
<span class="hljs-keyword">def</span> <span class="hljs-title function_">my_custom_func</span>(<span class="hljs-params">x: torch.Tensor</span>):
<span class="hljs-comment"># Original implementation</span>
<span class="hljs-keyword">return</span> x
<span class="hljs-keyword">class</span> <span class="hljs-title class_">MyModel</span>(torch.nn.Module):
<span class="hljs-keyword">def</span> <span class="hljs-title function_">__init__</span>(<span class="hljs-params">self</span>):
<span class="hljs-built_in">super</span>().__init__()
self.fn = my_custom_func
<span class="hljs-keyword">def</span> <span class="hljs-title function_">forward</span>(<span class="hljs-params">self, x</span>):
<span class="hljs-keyword">return</span> self.fn(x)
model = MyModel()
<span class="hljs-comment"># The layer can now be kernelized:</span>
<span class="hljs-comment"># model = kernelize(model, mode=Mode.TRAINING | Mode.TORCH_COMPILE, device=&quot;cuda&quot;)</span>`,wrap:!1}}),{c(){n=w("p"),n.textContent=J,m=a(),d(r.$$.fragment)},l(t){n=g(t,"P",{"data-svelte-h":!0}),U(n)!=="svelte-11lpom8"&&(n.textContent=J),m=o(t),y(r.$$.fragment,t)},m(t,T){p(t,n,T),p(t,m,T),M(r,t,T),c=!0},p:P,i(t){c||(u(r.$$.fragment,t),c=!0)},o(t){f(r.$$.fragment,t),c=!1},d(t){t&&(s(n),s(m)),h(r,t)}}}function Cn(k){let n,J="Example:",m,r,c;return r=new K({props:{code:"ZnJvbSUyMGtlcm5lbHMlMjBpbXBvcnQlMjByZXBsYWNlX2tlcm5lbF9mb3J3YXJkX2Zyb21faHViJTBBaW1wb3J0JTIwdG9yY2gubm4lMjBhcyUyMG5uJTBBJTBBcmVwbGFjZV9rZXJuZWxfZm9yd2FyZF9mcm9tX2h1Yihubi5MYXllck5vcm0lMkMlMjAlMjJMYXllck5vcm0lMjIp",highlighted:`<span class="hljs-keyword">from</span> kernels <span class="hljs-keyword">import</span> replace_kernel_forward_from_hub
<span class="hljs-keyword">import</span> torch.nn <span class="hljs-keyword">as</span> nn
replace_kernel_forward_from_hub(nn.LayerNorm, <span class="hljs-string">&quot;LayerNorm&quot;</span>)`,wrap:!1}}),{c(){n=w("p"),n.textContent=J,m=a(),d(r.$$.fragment)},l(t){n=g(t,"P",{"data-svelte-h":!0}),U(n)!=="svelte-11lpom8"&&(n.textContent=J),m=o(t),y(r.$$.fragment,t)},m(t,T){p(t,n,T),p(t,m,T),M(r,t,T),c=!0},p:P,i(t){c||(u(r.$$.fragment,t),c=!0)},o(t){f(r.$$.fragment,t),c=!1},d(t){t&&(s(n),s(m)),h(r,t)}}}function vn(k){let n,J="Example:",m,r,c;return r=new K({props:{code:"aW1wb3J0JTIwdG9yY2glMEFpbXBvcnQlMjB0b3JjaC5ubiUyMGFzJTIwbm4lMEFmcm9tJTIwdG9yY2gubm4lMjBpbXBvcnQlMjBmdW5jdGlvbmFsJTIwYXMlMjBGJTBBJTBBZnJvbSUyMGtlcm5lbHMlMjBpbXBvcnQlMjB1c2Vfa2VybmVsX2ZvcndhcmRfZnJvbV9odWIlMEFmcm9tJTIwa2VybmVscyUyMGltcG9ydCUyMHVzZV9rZXJuZWxfbWFwcGluZyUyQyUyMExheWVyUmVwb3NpdG9yeSUyQyUyMERldmljZSUwQWZyb20lMjBrZXJuZWxzJTIwaW1wb3J0JTIwTW9kZSUyQyUyMGtlcm5lbGl6ZSUwQSUwQSUyMyUyMERlZmluZSUyMGElMjBtYXBwaW5nJTBBbWFwcGluZyUyMCUzRCUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMlNpbHVBbmRNdWwlMjIlM0ElMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJjdWRhJTIyJTNBJTIwTGF5ZXJSZXBvc2l0b3J5KCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJlcG9faWQlM0QlMjJrZXJuZWxzLWNvbW11bml0eSUyRmFjdGl2YXRpb24lMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBsYXllcl9uYW1lJTNEJTIyU2lsdUFuZE11bCUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHZlcnNpb24lM0QxJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwKSUwQSUyMCUyMCUyMCUyMCU3RCUwQSU3RCUwQSUwQSU0MHVzZV9rZXJuZWxfZm9yd2FyZF9mcm9tX2h1YiglMjJTaWx1QW5kTXVsJTIyKSUwQWNsYXNzJTIwU2lsdUFuZE11bChubi5Nb2R1bGUpJTNBJTBBJTIwJTIwJTIwJTIwZGVmJTIwZm9yd2FyZChzZWxmJTJDJTIweCUzQSUyMHRvcmNoLlRlbnNvciklMjAtJTNFJTIwdG9yY2guVGVuc29yJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZCUyMCUzRCUyMHguc2hhcGUlNUItMSU1RCUyMCUyRiUyRiUyMDIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjBGLnNpbHUoeCU1Qi4uLiUyQyUyMCUzQWQlNUQpJTIwKiUyMHglNUIuLi4lMkMlMjBkJTNBJTVEJTBBJTBBbW9kZWwlMjAlM0QlMjBTaWx1QW5kTXVsKCklMEElMEElMjMlMjBVc2UlMjB0aGUlMjBtYXBwaW5nJTIwZm9yJTIwdGhlJTIwZHVyYXRpb24lMjBvZiUyMHRoZSUyMGNvbnRleHQuJTBBd2l0aCUyMHVzZV9rZXJuZWxfbWFwcGluZyhtYXBwaW5nKSUzQSUwQSUyMCUyMCUyMCUyMCUyMyUyMGtlcm5lbGl6ZSUyMHVzZXMlMjB0aGUlMjB0ZW1wb3JhcnklMjBtYXBwaW5nJTBBJTIwJTIwJTIwJTIwbW9kZWwlMjAlM0QlMjBrZXJuZWxpemUobW9kZWwlMkMlMjBtb2RlJTNETW9kZS5UUkFJTklORyUyMCU3QyUyME1vZGUuVE9SQ0hfQ09NUElMRSUyQyUyMGRldmljZSUzRCUyMmN1ZGElMjIpJTBBJTBBJTIzJTIwT3V0c2lkZSUyMHRoZSUyMGNvbnRleHQlMkMlMjBvcmlnaW5hbCUyMG1hcHBpbmdzJTIwYXJlJTIwcmVzdG9yZWQ=",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">from</span> torch.nn <span class="hljs-keyword">import</span> functional <span class="hljs-keyword">as</span> F
<span class="hljs-keyword">from</span> kernels <span class="hljs-keyword">import</span> use_kernel_forward_from_hub
<span class="hljs-keyword">from</span> kernels <span class="hljs-keyword">import</span> use_kernel_mapping, LayerRepository, Device
<span class="hljs-keyword">from</span> kernels <span class="hljs-keyword">import</span> Mode, kernelize
<span class="hljs-comment"># Define a mapping</span>
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>
)
}
}
<span class="hljs-meta">@use_kernel_forward_from_hub(<span class="hljs-params"><span class="hljs-string">&quot;SiluAndMul&quot;</span></span>)</span>
<span class="hljs-keyword">class</span> <span class="hljs-title class_">SiluAndMul</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:
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:]
model = SiluAndMul()
<span class="hljs-comment"># Use the mapping for the duration of the context.</span>
<span class="hljs-keyword">with</span> use_kernel_mapping(mapping):
<span class="hljs-comment"># kernelize uses the temporary mapping</span>
model = kernelize(model, mode=Mode.TRAINING | Mode.TORCH_COMPILE, device=<span class="hljs-string">&quot;cuda&quot;</span>)
<span class="hljs-comment"># Outside the context, original mappings are restored</span>`,wrap:!1}}),{c(){n=w("p"),n.textContent=J,m=a(),d(r.$$.fragment)},l(t){n=g(t,"P",{"data-svelte-h":!0}),U(n)!=="svelte-11lpom8"&&(n.textContent=J),m=o(t),y(r.$$.fragment,t)},m(t,T){p(t,n,T),p(t,m,T),M(r,t,T),c=!0},p:P,i(t){c||(u(r.$$.fragment,t),c=!0)},o(t){f(r.$$.fragment,t),c=!1},d(t){t&&(s(n),s(m)),h(r,t)}}}function xn(k){let n,J="Example:",m,r,c;return r=new K({props:{code:"ZnJvbSUyMGtlcm5lbHMlMjBpbXBvcnQlMjBMYXllclJlcG9zaXRvcnklMkMlMjByZWdpc3Rlcl9rZXJuZWxfbWFwcGluZyUyQyUyME1vZGUlMEElMEElMjMlMjBTaW1wbGUlMjBtYXBwaW5nJTIwZm9yJTIwYSUyMHNpbmdsZSUyMGtlcm5lbCUyMHBlciUyMGRldmljZSUwQWtlcm5lbF9sYXllcl9tYXBwaW5nJTIwJTNEJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIyTGxhbWFSTVNOb3JtJTIyJTNBJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyY3VkYSUyMiUzQSUyMExheWVyUmVwb3NpdG9yeSglMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXBvX2lkJTNEJTIya2VybmVscy1jb21tdW5pdHklMkZsYXllcl9ub3JtJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbGF5ZXJfbmFtZSUzRCUyMkxsYW1hUk1TTm9ybSUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHZlcnNpb24lM0QxJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwKSUyQyUwQSUyMCUyMCUyMCUyMCU3RCUyQyUwQSU3RCUwQXJlZ2lzdGVyX2tlcm5lbF9tYXBwaW5nKGtlcm5lbF9sYXllcl9tYXBwaW5nKSUwQSUwQSUyMyUyMEFkdmFuY2VkJTIwbWFwcGluZyUyMHdpdGglMjBtb2RlLXNwZWNpZmljJTIwa2VybmVscyUwQWFkdmFuY2VkX21hcHBpbmclMjAlM0QlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjJNdWx0aUhlYWRBdHRlbnRpb24lMjIlM0ElMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJjdWRhJTIyJTNBJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwTW9kZS5UUkFJTklORyUzQSUyMExheWVyUmVwb3NpdG9yeSglMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXBvX2lkJTNEJTIya2VybmVscy1jb21tdW5pdHklMkZ0cmFpbmluZy1rZXJuZWxzJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbGF5ZXJfbmFtZSUzRCUyMlRyYWluaW5nQXR0ZW50aW9uJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdmVyc2lvbiUzRDElMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjApJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwTW9kZS5JTkZFUkVOQ0UlM0ElMjBMYXllclJlcG9zaXRvcnkoJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmVwb19pZCUzRCUyMmtlcm5lbHMtY29tbXVuaXR5JTJGaW5mZXJlbmNlLWtlcm5lbHMlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBsYXllcl9uYW1lJTNEJTIyRmFzdEF0dGVudGlvbiUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHZlcnNpb24lM0QxJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwKSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUwQSUyMCUyMCUyMCUyMCU3RCUwQSU3RCUwQXJlZ2lzdGVyX2tlcm5lbF9tYXBwaW5nKGFkdmFuY2VkX21hcHBpbmcp",highlighted:`<span class="hljs-keyword">from</span> kernels <span class="hljs-keyword">import</span> LayerRepository, register_kernel_mapping, Mode
<span class="hljs-comment"># Simple mapping for a single kernel per device</span>
kernel_layer_mapping = {
<span class="hljs-string">&quot;LlamaRMSNorm&quot;</span>: {
<span class="hljs-string">&quot;cuda&quot;</span>: LayerRepository(
repo_id=<span class="hljs-string">&quot;kernels-community/layer_norm&quot;</span>,
layer_name=<span class="hljs-string">&quot;LlamaRMSNorm&quot;</span>,
version=<span class="hljs-number">1</span>,
),
},
}
register_kernel_mapping(kernel_layer_mapping)
<span class="hljs-comment"># Advanced mapping with mode-specific kernels</span>
advanced_mapping = {
<span class="hljs-string">&quot;MultiHeadAttention&quot;</span>: {
<span class="hljs-string">&quot;cuda&quot;</span>: {
Mode.TRAINING: LayerRepository(
repo_id=<span class="hljs-string">&quot;kernels-community/training-kernels&quot;</span>,
layer_name=<span class="hljs-string">&quot;TrainingAttention&quot;</span>,
version=<span class="hljs-number">1</span>,
),
Mode.INFERENCE: LayerRepository(
repo_id=<span class="hljs-string">&quot;kernels-community/inference-kernels&quot;</span>,
layer_name=<span class="hljs-string">&quot;FastAttention&quot;</span>,
version=<span class="hljs-number">1</span>,
),
}
}
}
register_kernel_mapping(advanced_mapping)`,wrap:!1}}),{c(){n=w("p"),n.textContent=J,m=a(),d(r.$$.fragment)},l(t){n=g(t,"P",{"data-svelte-h":!0}),U(n)!=="svelte-11lpom8"&&(n.textContent=J),m=o(t),y(r.$$.fragment,t)},m(t,T){p(t,n,T),p(t,m,T),M(r,t,T),c=!0},p:P,i(t){c||(u(r.$$.fragment,t),c=!0)},o(t){f(r.$$.fragment,t),c=!1},d(t){t&&(s(n),s(m)),h(r,t)}}}function Bn(k){let n,J="Example:",m,r,c;return r=new K({props:{code:"aW1wb3J0JTIwdG9yY2glMEFpbXBvcnQlMjB0b3JjaC5ubiUyMGFzJTIwbm4lMEElMEFmcm9tJTIwa2VybmVscyUyMGltcG9ydCUyMGtlcm5lbGl6ZSUyQyUyME1vZGUlMkMlMjB1c2Vfa2VybmVsX21hcHBpbmclMkMlMjBMYXllclJlcG9zaXRvcnklMEFmcm9tJTIwa2VybmVscyUyMGltcG9ydCUyMHVzZV9rZXJuZWxfZm9yd2FyZF9mcm9tX2h1YiUwQSUwQSU0MHVzZV9rZXJuZWxfZm9yd2FyZF9mcm9tX2h1YiglMjJTaWx1QW5kTXVsJTIyKSUwQWNsYXNzJTIwU2lsdUFuZE11bChubi5Nb2R1bGUpJTNBJTBBJTIwJTIwJTIwJTIwZGVmJTIwZm9yd2FyZChzZWxmJTJDJTIweCUzQSUyMHRvcmNoLlRlbnNvciklMjAtJTNFJTIwdG9yY2guVGVuc29yJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZCUyMCUzRCUyMHguc2hhcGUlNUItMSU1RCUyMCUyRiUyRiUyMDIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjBGLnNpbHUoeCU1Qi4uLiUyQyUyMCUzQWQlNUQpJTIwKiUyMHglNUIuLi4lMkMlMjBkJTNBJTVEJTBBJTBBbWFwcGluZyUyMCUzRCUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMlNpbHVBbmRNdWwlMjIlM0ElMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJjdWRhJTIyJTNBJTIwTGF5ZXJSZXBvc2l0b3J5KCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJlcG9faWQlM0QlMjJrZXJuZWxzLWNvbW11bml0eSUyRmFjdGl2YXRpb24lMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBsYXllcl9uYW1lJTNEJTIyU2lsdUFuZE11bCUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHZlcnNpb24lM0QxJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwKSUwQSUyMCUyMCUyMCUyMCU3RCUwQSU3RCUwQSUwQSUyMyUyMENyZWF0ZSUyMGFuZCUyMGtlcm5lbGl6ZSUyMGElMjBtb2RlbCUwQW1vZGVsJTIwJTNEJTIwbm4uU2VxdWVudGlhbCglMEElMjAlMjAlMjAlMjBubi5MaW5lYXIoMTAyNCUyQyUyMDIwNDglMkMlMjBkZXZpY2UlM0QlMjJjdWRhJTIyKSUyQyUwQSUyMCUyMCUyMCUyMFNpbHVBbmRNdWwoKSUyQyUwQSklMEElMEElMjMlMjBLZXJuZWxpemUlMjBmb3IlMjBpbmZlcmVuY2UlMEF3aXRoJTIwdXNlX2tlcm5lbF9tYXBwaW5nKG1hcHBpbmcpJTNBJTBBJTIwJTIwJTIwJTIwa2VybmVsaXplZF9tb2RlbCUyMCUzRCUyMGtlcm5lbGl6ZShtb2RlbCUyQyUyMG1vZGUlM0RNb2RlLlRSQUlOSU5HJTIwJTdDJTIwTW9kZS5UT1JDSF9DT01QSUxFKQ==",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">from</span> kernels <span class="hljs-keyword">import</span> kernelize, Mode, use_kernel_mapping, LayerRepository
<span class="hljs-keyword">from</span> kernels <span class="hljs-keyword">import</span> use_kernel_forward_from_hub
<span class="hljs-meta">@use_kernel_forward_from_hub(<span class="hljs-params"><span class="hljs-string">&quot;SiluAndMul&quot;</span></span>)</span>
<span class="hljs-keyword">class</span> <span class="hljs-title class_">SiluAndMul</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:
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:]
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>,
)
}
}
<span class="hljs-comment"># Create and kernelize a model</span>
model = nn.Sequential(
nn.Linear(<span class="hljs-number">1024</span>, <span class="hljs-number">2048</span>, device=<span class="hljs-string">&quot;cuda&quot;</span>),
SiluAndMul(),
)
<span class="hljs-comment"># Kernelize for inference</span>
<span class="hljs-keyword">with</span> use_kernel_mapping(mapping):
kernelized_model = kernelize(model, mode=Mode.TRAINING | Mode.TORCH_COMPILE)`,wrap:!1}}),{c(){n=w("p"),n.textContent=J,m=a(),d(r.$$.fragment)},l(t){n=g(t,"P",{"data-svelte-h":!0}),U(n)!=="svelte-11lpom8"&&(n.textContent=J),m=o(t),y(r.$$.fragment,t)},m(t,T){p(t,n,T),p(t,m,T),M(r,t,T),c=!0},p:P,i(t){c||(u(r.$$.fragment,t),c=!0)},o(t){f(r.$$.fragment,t),c=!1},d(t){t&&(s(n),s(m)),h(r,t)}}}function Zn(k){let n,J="Example:",m,r,c;return r=new K({props:{code:"ZnJvbSUyMGtlcm5lbHMlMjBpbXBvcnQlMjBEZXZpY2UlMkMlMjBDVURBUHJvcGVydGllcyUwQSUwQSUyMyUyMEJhc2ljJTIwQ1VEQSUyMGRldmljZSUwQWN1ZGFfZGV2aWNlJTIwJTNEJTIwRGV2aWNlKHR5cGUlM0QlMjJjdWRhJTIyKSUwQSUwQSUyMyUyMENVREElMjBkZXZpY2UlMjB3aXRoJTIwc3BlY2lmaWMlMjBjYXBhYmlsaXR5JTIwcmVxdWlyZW1lbnRzJTBBY3VkYV9kZXZpY2Vfd2l0aF9wcm9wcyUyMCUzRCUyMERldmljZSglMEElMjAlMjAlMjAlMjB0eXBlJTNEJTIyY3VkYSUyMiUyQyUwQSUyMCUyMCUyMCUyMHByb3BlcnRpZXMlM0RDVURBUHJvcGVydGllcyhtaW5fY2FwYWJpbGl0eSUzRDc1JTJDJTIwbWF4X2NhcGFiaWxpdHklM0Q5MCklMEEpJTBBJTBBJTIzJTIwTVBTJTIwZGV2aWNlJTIwZm9yJTIwQXBwbGUlMjBTaWxpY29uJTBBbXBzX2RldmljZSUyMCUzRCUyMERldmljZSh0eXBlJTNEJTIybXBzJTIyKSUwQSUwQSUyMyUyMFhQVSUyMGRldmljZSUyMChlLmcuJTJDJTIwSW50ZWwoUiklMjBEYXRhJTIwQ2VudGVyJTIwR1BVJTIwTWF4JTIwMTU1MCklMEF4cHVfZGV2aWNlJTIwJTNEJTIwRGV2aWNlKHR5cGUlM0QlMjJ4cHUlMjIpJTBBJTBBJTIzJTIwTlBVJTIwZGV2aWNlJTIwKEh1YXdlaSUyMEFzY2VuZCklMEFucHVfZGV2aWNlJTIwJTNEJTIwRGV2aWNlKHR5cGUlM0QlMjJucHUlMjIp",highlighted:`<span class="hljs-keyword">from</span> kernels <span class="hljs-keyword">import</span> Device, CUDAProperties
<span class="hljs-comment"># Basic CUDA device</span>
cuda_device = Device(<span class="hljs-built_in">type</span>=<span class="hljs-string">&quot;cuda&quot;</span>)
<span class="hljs-comment"># CUDA device with specific capability requirements</span>
cuda_device_with_props = Device(
<span class="hljs-built_in">type</span>=<span class="hljs-string">&quot;cuda&quot;</span>,
properties=CUDAProperties(min_capability=<span class="hljs-number">75</span>, max_capability=<span class="hljs-number">90</span>)
)
<span class="hljs-comment"># MPS device for Apple Silicon</span>
mps_device = Device(<span class="hljs-built_in">type</span>=<span class="hljs-string">&quot;mps&quot;</span>)
<span class="hljs-comment"># XPU device (e.g., Intel(R) Data Center GPU Max 1550)</span>
xpu_device = Device(<span class="hljs-built_in">type</span>=<span class="hljs-string">&quot;xpu&quot;</span>)
<span class="hljs-comment"># NPU device (Huawei Ascend)</span>
npu_device = Device(<span class="hljs-built_in">type</span>=<span class="hljs-string">&quot;npu&quot;</span>)`,wrap:!1}}),{c(){n=w("p"),n.textContent=J,m=a(),d(r.$$.fragment)},l(t){n=g(t,"P",{"data-svelte-h":!0}),U(n)!=="svelte-11lpom8"&&(n.textContent=J),m=o(t),y(r.$$.fragment,t)},m(t,T){p(t,n,T),p(t,m,T),M(r,t,T),c=!0},p:P,i(t){c||(u(r.$$.fragment,t),c=!0)},o(t){f(r.$$.fragment,t),c=!1},d(t){t&&(s(n),s(m)),h(r,t)}}}function Rn(k){let n,J="Example:",m,r,c;return r=new K({props:{code:"ZnJvbSUyMGtlcm5lbHMlMjBpbXBvcnQlMjBGdW5jUmVwb3NpdG9yeSUwQSUwQSUyMyUyMFJlZmVyZW5jZSUyMGElMjBzcGVjaWZpYyUyMGxheWVyJTIwYnklMjByZXZpc2lvbiUwQWxheWVyX3JlcG8lMjAlM0QlMjBGdW5jUmVwb3NpdG9yeSglMEElMjAlMjAlMjAlMjByZXBvX2lkJTNEJTIya2VybmVscy1jb21tdW5pdHklMkZhY3RpdmF0aW9uJTIyJTJDJTBBJTIwJTIwJTIwJTIwZnVuY19uYW1lJTNEJTIyc2lsdV9hbmRfbXVsJTIyJTJDJTBBKSUwQSUwQSUyMyUyMFJlZmVyZW5jZSUyMGElMjBsYXllciUyMGJ5JTIwdmVyc2lvbiUwQWxheWVyX3JlcG9fdmVyc2lvbmVkJTIwJTNEJTIwRnVuY1JlcG9zaXRvcnkoJTBBJTIwJTIwJTIwJTIwcmVwb19pZCUzRCUyMmtlcm5lbHMtY29tbXVuaXR5JTJGcmVsdSUyMiUyQyUwQSUyMCUyMCUyMCUyMGZ1bmNfbmFtZSUzRCUyMnJlbHUlMjIlMkMlMEElMjAlMjAlMjAlMjB2ZXJzaW9uJTNEMSUwQSk=",highlighted:`<span class="hljs-keyword">from</span> kernels <span class="hljs-keyword">import</span> FuncRepository
<span class="hljs-comment"># Reference a specific layer by revision</span>
layer_repo = FuncRepository(
repo_id=<span class="hljs-string">&quot;kernels-community/activation&quot;</span>,
func_name=<span class="hljs-string">&quot;silu_and_mul&quot;</span>,
)
<span class="hljs-comment"># Reference a layer by version</span>
layer_repo_versioned = FuncRepository(
repo_id=<span class="hljs-string">&quot;kernels-community/relu&quot;</span>,
func_name=<span class="hljs-string">&quot;relu&quot;</span>,
version=<span class="hljs-number">1</span>
)`,wrap:!1}}),{c(){n=w("p"),n.textContent=J,m=a(),d(r.$$.fragment)},l(t){n=g(t,"P",{"data-svelte-h":!0}),U(n)!=="svelte-11lpom8"&&(n.textContent=J),m=o(t),y(r.$$.fragment,t)},m(t,T){p(t,n,T),p(t,m,T),M(r,t,T),c=!0},p:P,i(t){c||(u(r.$$.fragment,t),c=!0)},o(t){f(r.$$.fragment,t),c=!1},d(t){t&&(s(n),s(m)),h(r,t)}}}function En(k){let n,J="Example:",m,r,c;return r=new K({props:{code:"ZnJvbSUyMGtlcm5lbHMlMjBpbXBvcnQlMjBMYXllclJlcG9zaXRvcnklMEElMEElMjMlMjBSZWZlcmVuY2UlMjBhJTIwc3BlY2lmaWMlMjBsYXllciUyMGJ5JTIwcmV2aXNpb24lMEFsYXllcl9yZXBvJTIwJTNEJTIwTGF5ZXJSZXBvc2l0b3J5KCUwQSUyMCUyMCUyMCUyMHJlcG9faWQlM0QlMjJrZXJuZWxzLWNvbW11bml0eSUyRmFjdGl2YXRpb24lMjIlMkMlMEElMjAlMjAlMjAlMjBsYXllcl9uYW1lJTNEJTIyU2lsdUFuZE11bCUyMiUyQyUwQSUyMCUyMCUyMCUyMHZlcnNpb24lM0QxJTJDJTBBKQ==",highlighted:`<span class="hljs-keyword">from</span> kernels <span class="hljs-keyword">import</span> LayerRepository
<span class="hljs-comment"># Reference a specific layer by revision</span>
layer_repo = 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>,
)`,wrap:!1}}),{c(){n=w("p"),n.textContent=J,m=a(),d(r.$$.fragment)},l(t){n=g(t,"P",{"data-svelte-h":!0}),U(n)!=="svelte-11lpom8"&&(n.textContent=J),m=o(t),y(r.$$.fragment,t)},m(t,T){p(t,n,T),p(t,m,T),M(r,t,T),c=!0},p:P,i(t){c||(u(r.$$.fragment,t),c=!0)},o(t){f(r.$$.fragment,t),c=!1},d(t){t&&(s(n),s(m)),h(r,t)}}}function Gn(k){let n,J="Example:",m,r,c;return r=new K({props:{code:"ZnJvbSUyMHBhdGhsaWIlMjBpbXBvcnQlMjBQYXRoJTBBJTBBZnJvbSUyMGtlcm5lbHMlMjBpbXBvcnQlMjBMb2NhbEZ1bmNSZXBvc2l0b3J5JTBBJTBBJTIzJTIwUmVmZXJlbmNlJTIwYSUyMHNwZWNpZmljJTIwbGF5ZXIlMjBieSUyMHJldmlzaW9uJTBBbGF5ZXJfcmVwbyUyMCUzRCUyMExvY2FsRnVuY1JlcG9zaXRvcnkoJTBBJTIwJTIwJTIwJTIwcmVwb19wYXRoJTNEUGF0aCglMjIlMkZob21lJTJGZGFuaWVsJTJGa2VybmVscyUyRmFjdGl2YXRpb24lMjIpJTJDJTBBJTIwJTIwJTIwJTIwZnVuY19uYW1lJTNEJTIyc2lsdV9hbmRfbXVsJTIyJTJDJTBBKQ==",highlighted:`<span class="hljs-keyword">from</span> pathlib <span class="hljs-keyword">import</span> Path
<span class="hljs-keyword">from</span> kernels <span class="hljs-keyword">import</span> LocalFuncRepository
<span class="hljs-comment"># Reference a specific layer by revision</span>
layer_repo = LocalFuncRepository(
repo_path=Path(<span class="hljs-string">&quot;/home/daniel/kernels/activation&quot;</span>),
func_name=<span class="hljs-string">&quot;silu_and_mul&quot;</span>,
)`,wrap:!1}}),{c(){n=w("p"),n.textContent=J,m=a(),d(r.$$.fragment)},l(t){n=g(t,"P",{"data-svelte-h":!0}),U(n)!=="svelte-11lpom8"&&(n.textContent=J),m=o(t),y(r.$$.fragment,t)},m(t,T){p(t,n,T),p(t,m,T),M(r,t,T),c=!0},p:P,i(t){c||(u(r.$$.fragment,t),c=!0)},o(t){f(r.$$.fragment,t),c=!1},d(t){t&&(s(n),s(m)),h(r,t)}}}function Sn(k){let n,J="Example:",m,r,c;return r=new K({props:{code:"ZnJvbSUyMHBhdGhsaWIlMjBpbXBvcnQlMjBQYXRoJTBBJTBBZnJvbSUyMGtlcm5lbHMlMjBpbXBvcnQlMjBMb2NhbExheWVyUmVwb3NpdG9yeSUwQSUwQSUyMyUyMFJlZmVyZW5jZSUyMGElMjBzcGVjaWZpYyUyMGxheWVyJTIwYnklMjByZXZpc2lvbiUwQWxheWVyX3JlcG8lMjAlM0QlMjBMb2NhbExheWVyUmVwb3NpdG9yeSglMEElMjAlMjAlMjAlMjByZXBvX3BhdGglM0RQYXRoKCUyMiUyRmhvbWUlMkZkYW5pZWwlMkZrZXJuZWxzJTJGYWN0aXZhdGlvbiUyMiklMkMlMEElMjAlMjAlMjAlMjBsYXllcl9uYW1lJTNEJTIyU2lsdUFuZE11bCUyMiUyQyUwQSk=",highlighted:`<span class="hljs-keyword">from</span> pathlib <span class="hljs-keyword">import</span> Path
<span class="hljs-keyword">from</span> kernels <span class="hljs-keyword">import</span> LocalLayerRepository
<span class="hljs-comment"># Reference a specific layer by revision</span>
layer_repo = LocalLayerRepository(
repo_path=Path(<span class="hljs-string">&quot;/home/daniel/kernels/activation&quot;</span>),
layer_name=<span class="hljs-string">&quot;SiluAndMul&quot;</span>,
)`,wrap:!1}}),{c(){n=w("p"),n.textContent=J,m=a(),d(r.$$.fragment)},l(t){n=g(t,"P",{"data-svelte-h":!0}),U(n)!=="svelte-11lpom8"&&(n.textContent=J),m=o(t),y(r.$$.fragment,t)},m(t,T){p(t,n,T),p(t,m,T),M(r,t,T),c=!0},p:P,i(t){c||(u(r.$$.fragment,t),c=!0)},o(t){f(r.$$.fragment,t),c=!1},d(t){t&&(s(n),s(m)),h(r,t)}}}function Wn(k){let n,J,m,r,c,t,T,jt,ye,_t,Me,It,v,ue,ol,He,zl="Decorator factory that makes a layer extensible using the specified layer name.",pl,De,Yl=`This is a decorator factory that returns a decorator which prepares a layer class to use kernels from the
Hugging Face Hub.`,il,te,Ct,fe,vt,_,he,cl,qe,Hl="Decorator that makes a function extensible using the specified function name.",ml,Pe,Dl=`This is a decorator factory that returns a decorator which prepares a function to use kernels from the
Hugging Face Hub.`,dl,Ke,ql=`The function will be exposed as an instance of <code>torch.nn.Module</code> in which
the function is called in <code>forward</code>. For the function to be properly
kernelized, it <strong>must</strong> be a member of another <code>torch.nn.Module</code> that is
part of the model (see the example).`,yl,le,xt,we,Bt,x,ge,Ml,Oe,Pl="Function that prepares a layer class to use kernels from the Hugging Face Hub.",ul,et,Kl=`It is recommended to use <a href="/docs/kernels/pr_512/en/api/layers#kernels.use_kernel_forward_from_hub">use_kernel_forward_from_hub()</a> decorator instead.
This function should only be used as a last resort to extend third-party layers,
it is inherently fragile since the member variables and <code>forward</code> signature
of such a layer can change.`,fl,ne,Zt,Te,Rt,Ue,Et,B,Je,hl,tt,Ol="Context manager that sets a kernel mapping for the duration of the context.",wl,lt,en=`This function allows temporary kernel mappings to be applied within a specific context, enabling different
kernel configurations for different parts of your code.`,gl,se,Gt,ke,St,Z,be,Tl,nt,tn="Register a global mapping between layer names and their corresponding kernel implementations.",Ul,st,ln=`This function allows you to register a mapping between a layer name and the corresponding kernel(s) to use,
depending on the device and mode. This should be used in conjunction with <a href="/docs/kernels/pr_512/en/api/layers#kernels.kernelize">kernelize()</a>.`,Jl,re,Wt,$e,At,je,Vt,R,_e,kl,rt,nn="Replace layer forward methods with optimized kernel implementations.",bl,at,sn=`This function iterates over all modules in the model and replaces the <code>forward</code> method of extensible layers
for which kernels are registered using <a href="/docs/kernels/pr_512/en/api/layers#kernels.register_kernel_mapping">register_kernel_mapping()</a> or <a href="/docs/kernels/pr_512/en/api/layers#kernels.use_kernel_mapping">use_kernel_mapping()</a>.`,$l,ae,Qt,Ie,Nt,Ce,Xt,I,ve,jl,ot,rn="Represents a compute device with optional properties.",_l,pt,an=`This class encapsulates device information including device type and optional device-specific properties
like CUDA capabilities.`,Il,oe,Cl,pe,xe,vl,it,on="Run class validators on the instance.",Ft,Be,Lt,E,Ze,xl,ct,pn="Kernelize mode",Bl,mt,cn=`The <code>Mode</code> flag is used by <a href="/docs/kernels/pr_512/en/api/layers#kernels.kernelize">kernelize()</a> to select kernels for the given mode. Mappings can be registered for
specific modes.`,Zl,dt,mn=`Note:
Different modes can be combined. For instance, <code>INFERENCE | TORCH_COMPILE</code> should be used for layers that
are used for inference <em>with</em> <code>torch.compile</code>.`,zt,Re,Yt,W,Ee,Rl,yt,dn="Repository and name of a function for kernel mapping.",El,ie,Ht,Ge,Dt,A,Se,Gl,Mt,yn="Repository and name of a layer for kernel mapping.",Sl,ce,qt,We,Pt,V,Ae,Wl,ut,Mn="Repository and function name from a local directory for kernel mapping.",Al,me,Kt,Ve,Ot,Q,Qe,Vl,ft,un="Repository from a local directory for kernel mapping.",Ql,de,el,Ne,tl,N,Xe,Nl,ht,fn="Repository and name of a function.",Xl,wt,hn=`In contrast to <code>FuncRepository</code>, this class uses repositories that
are locked inside a project.`,ll,Fe,nl,X,Le,Fl,gt,wn="Repository and name of a layer.",Ll,Tt,gn=`In contrast to <code>LayerRepository</code>, this class uses repositories that
are locked inside a project.`,sl,ze,rl,$t,al;return c=new $n({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),T=new b({props:{title:"Layers API Reference",local:"layers-api-reference",headingTag:"h1"}}),ye=new b({props:{title:"Making layers kernel-aware",local:"making-layers-kernel-aware",headingTag:"h2"}}),Me=new b({props:{title:"use_kernel_forward_from_hub",local:"kernels.use_kernel_forward_from_hub",headingTag:"h3"}}),ue=new C({props:{name:"kernels.use_kernel_forward_from_hub",anchor:"kernels.use_kernel_forward_from_hub",parameters:[{name:"layer_name",val:": str"}],parametersDescription:[{anchor:"kernels.use_kernel_forward_from_hub.layer_name",description:`<strong>layer_name</strong> (<code>str</code>) &#x2014;
The name of the layer to use for kernel lookup in registered mappings.`,name:"layer_name"}],source:"https://github.com/huggingface/kernels/blob/vr_512/kernels/src/kernels/layer/layer.py#L252",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>
<p>A decorator function that can be applied to layer classes.</p>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>
<p><code>Callable</code></p>
`}}),te=new q({props:{anchor:"kernels.use_kernel_forward_from_hub.example",$$slots:{default:[_n]},$$scope:{ctx:k}}}),fe=new b({props:{title:"use_kernel_func_from_hub",local:"kernels.use_kernel_func_from_hub",headingTag:"h3"}}),he=new C({props:{name:"kernels.use_kernel_func_from_hub",anchor:"kernels.use_kernel_func_from_hub",parameters:[{name:"func_name",val:": str"}],parametersDescription:[{anchor:"kernels.use_kernel_func_from_hub.func_name",description:`<strong>func_name</strong> (<code>str</code>) &#x2014;
The name of the function name to use for kernel lookup in registered mappings.`,name:"func_name"}],source:"https://github.com/huggingface/kernels/blob/vr_512/kernels/src/kernels/layer/func.py#L163",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>
<p>A decorator function that can be applied to layer classes.</p>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>
<p><code>Callable</code></p>
`}}),le=new q({props:{anchor:"kernels.use_kernel_func_from_hub.example",$$slots:{default:[In]},$$scope:{ctx:k}}}),we=new b({props:{title:"replace_kernel_forward_from_hub",local:"kernels.replace_kernel_forward_from_hub",headingTag:"h3"}}),ge=new C({props:{name:"kernels.replace_kernel_forward_from_hub",anchor:"kernels.replace_kernel_forward_from_hub",parameters:[{name:"layer_name",val:": str"}],source:"https://github.com/huggingface/kernels/blob/vr_512/kernels/src/kernels/layer/layer.py#L229"}}),ne=new q({props:{anchor:"kernels.replace_kernel_forward_from_hub.example",$$slots:{default:[Cn]},$$scope:{ctx:k}}}),Te=new b({props:{title:"Registering kernel mappings",local:"registering-kernel-mappings",headingTag:"h2"}}),Ue=new b({props:{title:"use_kernel_mapping",local:"kernels.use_kernel_mapping",headingTag:"h3"}}),Je=new C({props:{name:"kernels.use_kernel_mapping",anchor:"kernels.use_kernel_mapping",parameters:[{name:"mapping",val:": dict[str, dict[Device | str, RepositoryProtocol | dict[Mode, RepositoryProtocol]]]"},{name:"inherit_mapping",val:": bool = True"}],parametersDescription:[{anchor:"kernels.use_kernel_mapping.mapping",description:`<strong>mapping</strong> (<code>dict[str, dict[Union[Device, str], Union[LayerRepositoryProtocol, dict[Mode, LayerRepositoryProtocol]]]]</code>) &#x2014;
The kernel mapping to apply. Maps layer names to device-specific kernel configurations.`,name:"mapping"},{anchor:"kernels.use_kernel_mapping.inherit_mapping",description:`<strong>inherit_mapping</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
When <code>True</code>, the current mapping will be extended by <code>mapping</code> inside the context. When <code>False</code>,
only <code>mapping</code> is used inside the context.`,name:"inherit_mapping"}],source:"https://github.com/huggingface/kernels/blob/vr_512/kernels/src/kernels/layer/kernelize.py#L17",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>
<p>Context manager that handles the temporary kernel mapping.</p>
`}}),se=new q({props:{anchor:"kernels.use_kernel_mapping.example",$$slots:{default:[vn]},$$scope:{ctx:k}}}),ke=new b({props:{title:"register_kernel_mapping",local:"kernels.register_kernel_mapping",headingTag:"h3"}}),be=new C({props:{name:"kernels.register_kernel_mapping",anchor:"kernels.register_kernel_mapping",parameters:[{name:"mapping",val:": dict[str, dict[Device | str, RepositoryProtocol | dict[Mode, RepositoryProtocol]]]"},{name:"inherit_mapping",val:": bool = True"}],parametersDescription:[{anchor:"kernels.register_kernel_mapping.mapping",description:`<strong>mapping</strong> (<code>dict[str, dict[Union[Device, str], Union[RepositoryProtocol, dict[Mode, RepositoryProtocol]]]]</code>) &#x2014;
The kernel mapping to register globally. Maps layer names to device-specific kernels.
The mapping can specify different kernels for different modes (training, inference, etc.).`,name:"mapping"},{anchor:"kernels.register_kernel_mapping.inherit_mapping",description:`<strong>inherit_mapping</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
When <code>True</code>, the current mapping will be extended by <code>mapping</code>. When <code>False</code>, the existing mappings
are erased before adding <code>mapping</code>.`,name:"inherit_mapping"}],source:"https://github.com/huggingface/kernels/blob/vr_512/kernels/src/kernels/layer/kernelize.py#L97"}}),re=new q({props:{anchor:"kernels.register_kernel_mapping.example",$$slots:{default:[xn]},$$scope:{ctx:k}}}),$e=new b({props:{title:"Kernelizing a model",local:"kernelizing-a-model",headingTag:"h2"}}),je=new b({props:{title:"kernelize",local:"kernels.kernelize",headingTag:"h3"}}),_e=new C({props:{name:"kernels.kernelize",anchor:"kernels.kernelize",parameters:[{name:"model",val:": 'nn.Module'"},{name:"mode",val:": Mode"},{name:"device",val:": str | 'torch.device' | None = None"},{name:"use_fallback",val:": bool = True"}],parametersDescription:[{anchor:"kernels.kernelize.model",description:`<strong>model</strong> (<code>nn.Module</code>) &#x2014;
The PyTorch model to kernelize.`,name:"model"},{anchor:"kernels.kernelize.mode",description:`<strong>mode</strong> (<a href="/docs/kernels/pr_512/en/api/layers#kernels.Mode">Mode</a>) &#x2014; The mode that the kernel is going to be used in. For example,
<code>Mode.TRAINING | Mode.TORCH_COMPILE</code> kernelizes the model for training with
<code>torch.compile</code>.`,name:"mode"},{anchor:"kernels.kernelize.device",description:`<strong>device</strong> (<code>Union[str, torch.device]</code>, <em>optional</em>) &#x2014;
The device type to load kernels for. Supported device types are: &#x201C;cuda&#x201D;, &#x201C;mps&#x201D;, &#x201C;npu&#x201D;, &#x201C;rocm&#x201D;, &#x201C;xpu&#x201D;.
The device type will be inferred from the model parameters when not provided.`,name:"device"},{anchor:"kernels.kernelize.use_fallback",description:`<strong>use_fallback</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether to use the original forward method of modules when no compatible kernel could be found.
If set to <code>False</code>, an exception will be raised in such cases.`,name:"use_fallback"}],source:"https://github.com/huggingface/kernels/blob/vr_512/kernels/src/kernels/layer/kernelize.py#L175",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>
<p>The kernelized model with optimized kernel implementations.</p>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>
<p><code>nn.Module</code></p>
`}}),ae=new q({props:{anchor:"kernels.kernelize.example",$$slots:{default:[Bn]},$$scope:{ctx:k}}}),Ie=new b({props:{title:"Classes",local:"classes",headingTag:"h2"}}),Ce=new b({props:{title:"Device",local:"kernels.Device",headingTag:"h3"}}),ve=new C({props:{name:"class kernels.Device",anchor:"kernels.Device",parameters:[{name:"type",val:": str"},{name:"properties",val:": kernels.layer.device.CUDAProperties | None = None"}],parametersDescription:[{anchor:"kernels.Device.type",description:`<strong>type</strong> (<code>str</code>) &#x2014;
The device type (e.g., &#x201C;cuda&#x201D;, &#x201C;mps&#x201D;, &#x201C;npu&#x201D;, &#x201C;rocm&#x201D;, &#x201C;xpu&#x201D;).`,name:"type"},{anchor:"kernels.Device.properties",description:`<strong>properties</strong> (<code>CUDAProperties</code>, <em>optional</em>) &#x2014;
Device-specific properties. Currently only <code>CUDAProperties</code> is supported for CUDA devices.`,name:"properties"}],source:"https://github.com/huggingface/kernels/blob/vr_512/kernels/src/kernels/layer/device.py#L106"}}),oe=new q({props:{anchor:"kernels.Device.example",$$slots:{default:[Zn]},$$scope:{ctx:k}}}),xe=new C({props:{name:"validate",anchor:"kernels.Device.validate",parameters:[],source:"https://github.com/huggingface/kernels/blob/vr_512/kernels/src/huggingface_hub/dataclasses.py#L247"}}),Be=new b({props:{title:"Mode",local:"kernels.Mode",headingTag:"h3"}}),Ze=new C({props:{name:"class kernels.Mode",anchor:"kernels.Mode",parameters:[{name:"value",val:""},{name:"names",val:" = None"},{name:"module",val:" = None"},{name:"qualname",val:" = None"},{name:"type",val:" = None"},{name:"start",val:" = 1"}],parametersDescription:[{anchor:"kernels.Mode.INFERENCE",description:"<strong>INFERENCE</strong> &#x2014; The kernel is used for inference.",name:"INFERENCE"},{anchor:"kernels.Mode.TRAINING",description:"<strong>TRAINING</strong> &#x2014; The kernel is used for training.",name:"TRAINING"},{anchor:"kernels.Mode.TORCH_COMPILE",description:"<strong>TORCH_COMPILE</strong> &#x2014; The kernel is used with <code>torch.compile</code>.",name:"TORCH_COMPILE"},{anchor:"kernels.Mode.FALLBACK",description:"<strong>FALLBACK</strong> &#x2014; In a kernel mapping, this kernel is used when no other mode matches.",name:"FALLBACK"}],source:"https://github.com/huggingface/kernels/blob/vr_512/kernels/src/kernels/layer/mode.py#L4"}}),Re=new b({props:{title:"FuncRepository",local:"kernels.FuncRepository",headingTag:"h3"}}),Ee=new C({props:{name:"class kernels.FuncRepository",anchor:"kernels.FuncRepository",parameters:[{name:"repo_id",val:": str"},{name:"func_name",val:": str"},{name:"revision",val:": str | None = None"},{name:"version",val:": int | None = None"},{name:"trust_remote_code",val:": bool | list[str] = False"}],parametersDescription:[{anchor:"kernels.FuncRepository.repo_id",description:`<strong>repo_id</strong> (<code>str</code>) &#x2014;
The Hub repository containing the layer.`,name:"repo_id"},{anchor:"kernels.FuncRepository.func_name",description:`<strong>func_name</strong> (<code>str</code>) &#x2014;
The name of the function within the kernel repository.`,name:"func_name"},{anchor:"kernels.FuncRepository.revision",description:`<strong>revision</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;main&quot;</code>) &#x2014;
The specific revision (branch, tag, or commit) to download. Cannot be used together with <code>version</code>.`,name:"revision"},{anchor:"kernels.FuncRepository.version",description:`<strong>version</strong> (<code>int</code>, <em>optional</em>) &#x2014;
The kernel version to download. Cannot be used together with <code>revision</code>.`,name:"version"}],source:"https://github.com/huggingface/kernels/blob/vr_512/kernels/src/kernels/layer/func.py#L27"}}),ie=new q({props:{anchor:"kernels.FuncRepository.example",$$slots:{default:[Rn]},$$scope:{ctx:k}}}),Ge=new b({props:{title:"LayerRepository",local:"kernels.LayerRepository",headingTag:"h3"}}),Se=new C({props:{name:"class kernels.LayerRepository",anchor:"kernels.LayerRepository",parameters:[{name:"repo_id",val:": str"},{name:"layer_name",val:": str"},{name:"revision",val:": str | None = None"},{name:"version",val:": int | None = None"},{name:"trust_remote_code",val:": bool | list[str] = False"}],parametersDescription:[{anchor:"kernels.LayerRepository.repo_id",description:`<strong>repo_id</strong> (<code>str</code>) &#x2014;
The Hub repository containing the layer.`,name:"repo_id"},{anchor:"kernels.LayerRepository.layer_name",description:`<strong>layer_name</strong> (<code>str</code>) &#x2014;
The name of the layer within the kernel repository.`,name:"layer_name"},{anchor:"kernels.LayerRepository.revision",description:`<strong>revision</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;main&quot;</code>) &#x2014;
The specific revision (branch, tag, or commit) to download. Cannot be used together with <code>version</code>.`,name:"revision"},{anchor:"kernels.LayerRepository.version",description:`<strong>version</strong> (<code>int</code>, <em>optional</em>) &#x2014;
The kernel version to download. Cannot be used together with <code>revision</code>.`,name:"version"},{anchor:"kernels.LayerRepository.trust_remote_code",description:`<strong>trust_remote_code</strong> (<code>bool | list[str]</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether to allow loading kernels from untrusted organisations. A list
of signing identities can be provided for future verification support;
until then it warns and falls back to the default trust check.`,name:"trust_remote_code"}],source:"https://github.com/huggingface/kernels/blob/vr_512/kernels/src/kernels/layer/layer.py#L32"}}),ce=new q({props:{anchor:"kernels.LayerRepository.example",$$slots:{default:[En]},$$scope:{ctx:k}}}),We=new b({props:{title:"LocalFuncRepository",local:"kernels.LocalFuncRepository",headingTag:"h3"}}),Ae=new C({props:{name:"class kernels.LocalFuncRepository",anchor:"kernels.LocalFuncRepository",parameters:[{name:"repo_path",val:": Path"},{name:"func_name",val:": str"}],parametersDescription:[{anchor:"kernels.LocalFuncRepository.repo_path",description:`<strong>repo_path</strong> (<code>Path</code>) &#x2014;
The local repository containing the layer.`,name:"repo_path"},{anchor:"kernels.LocalFuncRepository.func_name",description:`<strong>func_name</strong> (<code>str</code>) &#x2014;
The name of the function within the kernel repository.`,name:"func_name"}],source:"https://github.com/huggingface/kernels/blob/vr_512/kernels/src/kernels/layer/func.py#L112"}}),me=new q({props:{anchor:"kernels.LocalFuncRepository.example",$$slots:{default:[Gn]},$$scope:{ctx:k}}}),Ve=new b({props:{title:"LocalLayerRepository",local:"kernels.LocalLayerRepository",headingTag:"h3"}}),Qe=new C({props:{name:"class kernels.LocalLayerRepository",anchor:"kernels.LocalLayerRepository",parameters:[{name:"repo_path",val:": Path"},{name:"layer_name",val:": str"}],parametersDescription:[{anchor:"kernels.LocalLayerRepository.repo_path",description:`<strong>repo_path</strong> (<code>Path</code>) &#x2014;
The local repository containing the layer.`,name:"repo_path"},{anchor:"kernels.LocalLayerRepository.layer_name",description:`<strong>layer_name</strong> (<code>str</code>) &#x2014;
The name of the layer within the kernel repository.`,name:"layer_name"}],source:"https://github.com/huggingface/kernels/blob/vr_512/kernels/src/kernels/layer/layer.py#L115"}}),de=new q({props:{anchor:"kernels.LocalLayerRepository.example",$$slots:{default:[Sn]},$$scope:{ctx:k}}}),Ne=new b({props:{title:"LockedFuncRepository",local:"kernels.LockedFuncRepository",headingTag:"h3"}}),Xe=new C({props:{name:"class kernels.LockedFuncRepository",anchor:"kernels.LockedFuncRepository",parameters:[{name:"repo_id",val:": str"},{name:"lockfile",val:": pathlib.Path | None = None"},{name:"func_name",val:": str"},{name:"trust_remote_code",val:": bool | list[str] = False"}],source:"https://github.com/huggingface/kernels/blob/vr_512/kernels/src/kernels/layer/func.py#L218"}}),Fe=new b({props:{title:"LockedLayerRepository",local:"kernels.LockedLayerRepository",headingTag:"h3"}}),Le=new C({props:{name:"class kernels.LockedLayerRepository",anchor:"kernels.LockedLayerRepository",parameters:[{name:"repo_id",val:": str"},{name:"lockfile",val:": Path | None = None"},{name:"layer_name",val:": str"},{name:"trust_remote_code",val:": bool | list[str] = False"}],source:"https://github.com/huggingface/kernels/blob/vr_512/kernels/src/kernels/layer/layer.py#L166"}}),ze=new jn({props:{source:"https://github.com/huggingface/kernels/blob/main/docs/source/api/layers.md"}}),{c(){n=w("meta"),J=a(),m=w("p"),r=a(),d(c.$$.fragment),t=a(),d(T.$$.fragment),jt=a(),d(ye.$$.fragment),_t=a(),d(Me.$$.fragment),It=a(),v=w("div"),d(ue.$$.fragment),ol=a(),He=w("p"),He.textContent=zl,pl=a(),De=w("p"),De.textContent=Yl,il=a(),d(te.$$.fragment),Ct=a(),d(fe.$$.fragment),vt=a(),_=w("div"),d(he.$$.fragment),cl=a(),qe=w("p"),qe.textContent=Hl,ml=a(),Pe=w("p"),Pe.textContent=Dl,dl=a(),Ke=w("p"),Ke.innerHTML=ql,yl=a(),d(le.$$.fragment),xt=a(),d(we.$$.fragment),Bt=a(),x=w("div"),d(ge.$$.fragment),Ml=a(),Oe=w("p"),Oe.textContent=Pl,ul=a(),et=w("p"),et.innerHTML=Kl,fl=a(),d(ne.$$.fragment),Zt=a(),d(Te.$$.fragment),Rt=a(),d(Ue.$$.fragment),Et=a(),B=w("div"),d(Je.$$.fragment),hl=a(),tt=w("p"),tt.textContent=Ol,wl=a(),lt=w("p"),lt.textContent=en,gl=a(),d(se.$$.fragment),Gt=a(),d(ke.$$.fragment),St=a(),Z=w("div"),d(be.$$.fragment),Tl=a(),nt=w("p"),nt.textContent=tn,Ul=a(),st=w("p"),st.innerHTML=ln,Jl=a(),d(re.$$.fragment),Wt=a(),d($e.$$.fragment),At=a(),d(je.$$.fragment),Vt=a(),R=w("div"),d(_e.$$.fragment),kl=a(),rt=w("p"),rt.textContent=nn,bl=a(),at=w("p"),at.innerHTML=sn,$l=a(),d(ae.$$.fragment),Qt=a(),d(Ie.$$.fragment),Nt=a(),d(Ce.$$.fragment),Xt=a(),I=w("div"),d(ve.$$.fragment),jl=a(),ot=w("p"),ot.textContent=rn,_l=a(),pt=w("p"),pt.textContent=an,Il=a(),d(oe.$$.fragment),Cl=a(),pe=w("div"),d(xe.$$.fragment),vl=a(),it=w("p"),it.textContent=on,Ft=a(),d(Be.$$.fragment),Lt=a(),E=w("div"),d(Ze.$$.fragment),xl=a(),ct=w("p"),ct.textContent=pn,Bl=a(),mt=w("p"),mt.innerHTML=cn,Zl=a(),dt=w("p"),dt.innerHTML=mn,zt=a(),d(Re.$$.fragment),Yt=a(),W=w("div"),d(Ee.$$.fragment),Rl=a(),yt=w("p"),yt.textContent=dn,El=a(),d(ie.$$.fragment),Ht=a(),d(Ge.$$.fragment),Dt=a(),A=w("div"),d(Se.$$.fragment),Gl=a(),Mt=w("p"),Mt.textContent=yn,Sl=a(),d(ce.$$.fragment),qt=a(),d(We.$$.fragment),Pt=a(),V=w("div"),d(Ae.$$.fragment),Wl=a(),ut=w("p"),ut.textContent=Mn,Al=a(),d(me.$$.fragment),Kt=a(),d(Ve.$$.fragment),Ot=a(),Q=w("div"),d(Qe.$$.fragment),Vl=a(),ft=w("p"),ft.textContent=un,Ql=a(),d(de.$$.fragment),el=a(),d(Ne.$$.fragment),tl=a(),N=w("div"),d(Xe.$$.fragment),Nl=a(),ht=w("p"),ht.textContent=fn,Xl=a(),wt=w("p"),wt.innerHTML=hn,ll=a(),d(Fe.$$.fragment),nl=a(),X=w("div"),d(Le.$$.fragment),Fl=a(),gt=w("p"),gt.textContent=wn,Ll=a(),Tt=w("p"),Tt.innerHTML=gn,sl=a(),d(ze.$$.fragment),rl=a(),$t=w("p"),this.h()},l(e){const l=bn("svelte-u9bgzb",document.head);n=g(l,"META",{name:!0,content:!0}),l.forEach(s),J=o(e),m=g(e,"P",{}),$(m).forEach(s),r=o(e),y(c.$$.fragment,e),t=o(e),y(T.$$.fragment,e),jt=o(e),y(ye.$$.fragment,e),_t=o(e),y(Me.$$.fragment,e),It=o(e),v=g(e,"DIV",{class:!0});var F=$(v);y(ue.$$.fragment,F),ol=o(F),He=g(F,"P",{"data-svelte-h":!0}),U(He)!=="svelte-17ebw3h"&&(He.textContent=zl),pl=o(F),De=g(F,"P",{"data-svelte-h":!0}),U(De)!=="svelte-wgdatn"&&(De.textContent=Yl),il=o(F),y(te.$$.fragment,F),F.forEach(s),Ct=o(e),y(fe.$$.fragment,e),vt=o(e),_=g(e,"DIV",{class:!0});var G=$(_);y(he.$$.fragment,G),cl=o(G),qe=g(G,"P",{"data-svelte-h":!0}),U(qe)!=="svelte-1gabpyp"&&(qe.textContent=Hl),ml=o(G),Pe=g(G,"P",{"data-svelte-h":!0}),U(Pe)!=="svelte-nc81mu"&&(Pe.textContent=Dl),dl=o(G),Ke=g(G,"P",{"data-svelte-h":!0}),U(Ke)!=="svelte-1fgrp05"&&(Ke.innerHTML=ql),yl=o(G),y(le.$$.fragment,G),G.forEach(s),xt=o(e),y(we.$$.fragment,e),Bt=o(e),x=g(e,"DIV",{class:!0});var L=$(x);y(ge.$$.fragment,L),Ml=o(L),Oe=g(L,"P",{"data-svelte-h":!0}),U(Oe)!=="svelte-17bjf1v"&&(Oe.textContent=Pl),ul=o(L),et=g(L,"P",{"data-svelte-h":!0}),U(et)!=="svelte-16cpztl"&&(et.innerHTML=Kl),fl=o(L),y(ne.$$.fragment,L),L.forEach(s),Zt=o(e),y(Te.$$.fragment,e),Rt=o(e),y(Ue.$$.fragment,e),Et=o(e),B=g(e,"DIV",{class:!0});var z=$(B);y(Je.$$.fragment,z),hl=o(z),tt=g(z,"P",{"data-svelte-h":!0}),U(tt)!=="svelte-4v5vcp"&&(tt.textContent=Ol),wl=o(z),lt=g(z,"P",{"data-svelte-h":!0}),U(lt)!=="svelte-124m5et"&&(lt.textContent=en),gl=o(z),y(se.$$.fragment,z),z.forEach(s),Gt=o(e),y(ke.$$.fragment,e),St=o(e),Z=g(e,"DIV",{class:!0});var Y=$(Z);y(be.$$.fragment,Y),Tl=o(Y),nt=g(Y,"P",{"data-svelte-h":!0}),U(nt)!=="svelte-h5yso0"&&(nt.textContent=tn),Ul=o(Y),st=g(Y,"P",{"data-svelte-h":!0}),U(st)!=="svelte-614rtn"&&(st.innerHTML=ln),Jl=o(Y),y(re.$$.fragment,Y),Y.forEach(s),Wt=o(e),y($e.$$.fragment,e),At=o(e),y(je.$$.fragment,e),Vt=o(e),R=g(e,"DIV",{class:!0});var H=$(R);y(_e.$$.fragment,H),kl=o(H),rt=g(H,"P",{"data-svelte-h":!0}),U(rt)!=="svelte-11gfrdt"&&(rt.textContent=nn),bl=o(H),at=g(H,"P",{"data-svelte-h":!0}),U(at)!=="svelte-1fe1r4n"&&(at.innerHTML=sn),$l=o(H),y(ae.$$.fragment,H),H.forEach(s),Qt=o(e),y(Ie.$$.fragment,e),Nt=o(e),y(Ce.$$.fragment,e),Xt=o(e),I=g(e,"DIV",{class:!0});var S=$(I);y(ve.$$.fragment,S),jl=o(S),ot=g(S,"P",{"data-svelte-h":!0}),U(ot)!=="svelte-19eu2wi"&&(ot.textContent=rn),_l=o(S),pt=g(S,"P",{"data-svelte-h":!0}),U(pt)!=="svelte-9t0i4c"&&(pt.textContent=an),Il=o(S),y(oe.$$.fragment,S),Cl=o(S),pe=g(S,"DIV",{class:!0});var Ye=$(pe);y(xe.$$.fragment,Ye),vl=o(Ye),it=g(Ye,"P",{"data-svelte-h":!0}),U(it)!=="svelte-3wcl39"&&(it.textContent=on),Ye.forEach(s),S.forEach(s),Ft=o(e),y(Be.$$.fragment,e),Lt=o(e),E=g(e,"DIV",{class:!0});var D=$(E);y(Ze.$$.fragment,D),xl=o(D),ct=g(D,"P",{"data-svelte-h":!0}),U(ct)!=="svelte-wlnf64"&&(ct.textContent=pn),Bl=o(D),mt=g(D,"P",{"data-svelte-h":!0}),U(mt)!=="svelte-qpap0f"&&(mt.innerHTML=cn),Zl=o(D),dt=g(D,"P",{"data-svelte-h":!0}),U(dt)!=="svelte-x58jtu"&&(dt.innerHTML=mn),D.forEach(s),zt=o(e),y(Re.$$.fragment,e),Yt=o(e),W=g(e,"DIV",{class:!0});var O=$(W);y(Ee.$$.fragment,O),Rl=o(O),yt=g(O,"P",{"data-svelte-h":!0}),U(yt)!=="svelte-1fbxeta"&&(yt.textContent=dn),El=o(O),y(ie.$$.fragment,O),O.forEach(s),Ht=o(e),y(Ge.$$.fragment,e),Dt=o(e),A=g(e,"DIV",{class:!0});var ee=$(A);y(Se.$$.fragment,ee),Gl=o(ee),Mt=g(ee,"P",{"data-svelte-h":!0}),U(Mt)!=="svelte-1foq575"&&(Mt.textContent=yn),Sl=o(ee),y(ce.$$.fragment,ee),ee.forEach(s),qt=o(e),y(We.$$.fragment,e),Pt=o(e),V=g(e,"DIV",{class:!0});var Ut=$(V);y(Ae.$$.fragment,Ut),Wl=o(Ut),ut=g(Ut,"P",{"data-svelte-h":!0}),U(ut)!=="svelte-1nb80ft"&&(ut.textContent=Mn),Al=o(Ut),y(me.$$.fragment,Ut),Ut.forEach(s),Kt=o(e),y(Ve.$$.fragment,e),Ot=o(e),Q=g(e,"DIV",{class:!0});var Jt=$(Q);y(Qe.$$.fragment,Jt),Vl=o(Jt),ft=g(Jt,"P",{"data-svelte-h":!0}),U(ft)!=="svelte-17opoc3"&&(ft.textContent=un),Ql=o(Jt),y(de.$$.fragment,Jt),Jt.forEach(s),el=o(e),y(Ne.$$.fragment,e),tl=o(e),N=g(e,"DIV",{class:!0});var kt=$(N);y(Xe.$$.fragment,kt),Nl=o(kt),ht=g(kt,"P",{"data-svelte-h":!0}),U(ht)!=="svelte-10rrvzk"&&(ht.textContent=fn),Xl=o(kt),wt=g(kt,"P",{"data-svelte-h":!0}),U(wt)!=="svelte-1m7rt2a"&&(wt.innerHTML=hn),kt.forEach(s),ll=o(e),y(Fe.$$.fragment,e),nl=o(e),X=g(e,"DIV",{class:!0});var bt=$(X);y(Le.$$.fragment,bt),Fl=o(bt),gt=g(bt,"P",{"data-svelte-h":!0}),U(gt)!=="svelte-10njn0v"&&(gt.textContent=wn),Ll=o(bt),Tt=g(bt,"P",{"data-svelte-h":!0}),U(Tt)!=="svelte-1u9ojx1"&&(Tt.innerHTML=gn),bt.forEach(s),sl=o(e),y(ze.$$.fragment,e),rl=o(e),$t=g(e,"P",{}),$($t).forEach(s),this.h()},h(){j(n,"name","hf:doc:metadata"),j(n,"content",An),j(v,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),j(_,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),j(x,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),j(B,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),j(Z,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),j(R,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),j(pe,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),j(I,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),j(E,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),j(W,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),j(A,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),j(V,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),j(Q,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),j(N,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),j(X,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8")},m(e,l){i(document.head,n),p(e,J,l),p(e,m,l),p(e,r,l),M(c,e,l),p(e,t,l),M(T,e,l),p(e,jt,l),M(ye,e,l),p(e,_t,l),M(Me,e,l),p(e,It,l),p(e,v,l),M(ue,v,null),i(v,ol),i(v,He),i(v,pl),i(v,De),i(v,il),M(te,v,null),p(e,Ct,l),M(fe,e,l),p(e,vt,l),p(e,_,l),M(he,_,null),i(_,cl),i(_,qe),i(_,ml),i(_,Pe),i(_,dl),i(_,Ke),i(_,yl),M(le,_,null),p(e,xt,l),M(we,e,l),p(e,Bt,l),p(e,x,l),M(ge,x,null),i(x,Ml),i(x,Oe),i(x,ul),i(x,et),i(x,fl),M(ne,x,null),p(e,Zt,l),M(Te,e,l),p(e,Rt,l),M(Ue,e,l),p(e,Et,l),p(e,B,l),M(Je,B,null),i(B,hl),i(B,tt),i(B,wl),i(B,lt),i(B,gl),M(se,B,null),p(e,Gt,l),M(ke,e,l),p(e,St,l),p(e,Z,l),M(be,Z,null),i(Z,Tl),i(Z,nt),i(Z,Ul),i(Z,st),i(Z,Jl),M(re,Z,null),p(e,Wt,l),M($e,e,l),p(e,At,l),M(je,e,l),p(e,Vt,l),p(e,R,l),M(_e,R,null),i(R,kl),i(R,rt),i(R,bl),i(R,at),i(R,$l),M(ae,R,null),p(e,Qt,l),M(Ie,e,l),p(e,Nt,l),M(Ce,e,l),p(e,Xt,l),p(e,I,l),M(ve,I,null),i(I,jl),i(I,ot),i(I,_l),i(I,pt),i(I,Il),M(oe,I,null),i(I,Cl),i(I,pe),M(xe,pe,null),i(pe,vl),i(pe,it),p(e,Ft,l),M(Be,e,l),p(e,Lt,l),p(e,E,l),M(Ze,E,null),i(E,xl),i(E,ct),i(E,Bl),i(E,mt),i(E,Zl),i(E,dt),p(e,zt,l),M(Re,e,l),p(e,Yt,l),p(e,W,l),M(Ee,W,null),i(W,Rl),i(W,yt),i(W,El),M(ie,W,null),p(e,Ht,l),M(Ge,e,l),p(e,Dt,l),p(e,A,l),M(Se,A,null),i(A,Gl),i(A,Mt),i(A,Sl),M(ce,A,null),p(e,qt,l),M(We,e,l),p(e,Pt,l),p(e,V,l),M(Ae,V,null),i(V,Wl),i(V,ut),i(V,Al),M(me,V,null),p(e,Kt,l),M(Ve,e,l),p(e,Ot,l),p(e,Q,l),M(Qe,Q,null),i(Q,Vl),i(Q,ft),i(Q,Ql),M(de,Q,null),p(e,el,l),M(Ne,e,l),p(e,tl,l),p(e,N,l),M(Xe,N,null),i(N,Nl),i(N,ht),i(N,Xl),i(N,wt),p(e,ll,l),M(Fe,e,l),p(e,nl,l),p(e,X,l),M(Le,X,null),i(X,Fl),i(X,gt),i(X,Ll),i(X,Tt),p(e,sl,l),M(ze,e,l),p(e,rl,l),p(e,$t,l),al=!0},p(e,[l]){const F={};l&2&&(F.$$scope={dirty:l,ctx:e}),te.$set(F);const G={};l&2&&(G.$$scope={dirty:l,ctx:e}),le.$set(G);const L={};l&2&&(L.$$scope={dirty:l,ctx:e}),ne.$set(L);const z={};l&2&&(z.$$scope={dirty:l,ctx:e}),se.$set(z);const Y={};l&2&&(Y.$$scope={dirty:l,ctx:e}),re.$set(Y);const H={};l&2&&(H.$$scope={dirty:l,ctx:e}),ae.$set(H);const S={};l&2&&(S.$$scope={dirty:l,ctx:e}),oe.$set(S);const Ye={};l&2&&(Ye.$$scope={dirty:l,ctx:e}),ie.$set(Ye);const D={};l&2&&(D.$$scope={dirty:l,ctx:e}),ce.$set(D);const O={};l&2&&(O.$$scope={dirty:l,ctx:e}),me.$set(O);const ee={};l&2&&(ee.$$scope={dirty:l,ctx:e}),de.$set(ee)},i(e){al||(u(c.$$.fragment,e),u(T.$$.fragment,e),u(ye.$$.fragment,e),u(Me.$$.fragment,e),u(ue.$$.fragment,e),u(te.$$.fragment,e),u(fe.$$.fragment,e),u(he.$$.fragment,e),u(le.$$.fragment,e),u(we.$$.fragment,e),u(ge.$$.fragment,e),u(ne.$$.fragment,e),u(Te.$$.fragment,e),u(Ue.$$.fragment,e),u(Je.$$.fragment,e),u(se.$$.fragment,e),u(ke.$$.fragment,e),u(be.$$.fragment,e),u(re.$$.fragment,e),u($e.$$.fragment,e),u(je.$$.fragment,e),u(_e.$$.fragment,e),u(ae.$$.fragment,e),u(Ie.$$.fragment,e),u(Ce.$$.fragment,e),u(ve.$$.fragment,e),u(oe.$$.fragment,e),u(xe.$$.fragment,e),u(Be.$$.fragment,e),u(Ze.$$.fragment,e),u(Re.$$.fragment,e),u(Ee.$$.fragment,e),u(ie.$$.fragment,e),u(Ge.$$.fragment,e),u(Se.$$.fragment,e),u(ce.$$.fragment,e),u(We.$$.fragment,e),u(Ae.$$.fragment,e),u(me.$$.fragment,e),u(Ve.$$.fragment,e),u(Qe.$$.fragment,e),u(de.$$.fragment,e),u(Ne.$$.fragment,e),u(Xe.$$.fragment,e),u(Fe.$$.fragment,e),u(Le.$$.fragment,e),u(ze.$$.fragment,e),al=!0)},o(e){f(c.$$.fragment,e),f(T.$$.fragment,e),f(ye.$$.fragment,e),f(Me.$$.fragment,e),f(ue.$$.fragment,e),f(te.$$.fragment,e),f(fe.$$.fragment,e),f(he.$$.fragment,e),f(le.$$.fragment,e),f(we.$$.fragment,e),f(ge.$$.fragment,e),f(ne.$$.fragment,e),f(Te.$$.fragment,e),f(Ue.$$.fragment,e),f(Je.$$.fragment,e),f(se.$$.fragment,e),f(ke.$$.fragment,e),f(be.$$.fragment,e),f(re.$$.fragment,e),f($e.$$.fragment,e),f(je.$$.fragment,e),f(_e.$$.fragment,e),f(ae.$$.fragment,e),f(Ie.$$.fragment,e),f(Ce.$$.fragment,e),f(ve.$$.fragment,e),f(oe.$$.fragment,e),f(xe.$$.fragment,e),f(Be.$$.fragment,e),f(Ze.$$.fragment,e),f(Re.$$.fragment,e),f(Ee.$$.fragment,e),f(ie.$$.fragment,e),f(Ge.$$.fragment,e),f(Se.$$.fragment,e),f(ce.$$.fragment,e),f(We.$$.fragment,e),f(Ae.$$.fragment,e),f(me.$$.fragment,e),f(Ve.$$.fragment,e),f(Qe.$$.fragment,e),f(de.$$.fragment,e),f(Ne.$$.fragment,e),f(Xe.$$.fragment,e),f(Fe.$$.fragment,e),f(Le.$$.fragment,e),f(ze.$$.fragment,e),al=!1},d(e){e&&(s(J),s(m),s(r),s(t),s(jt),s(_t),s(It),s(v),s(Ct),s(vt),s(_),s(xt),s(Bt),s(x),s(Zt),s(Rt),s(Et),s(B),s(Gt),s(St),s(Z),s(Wt),s(At),s(Vt),s(R),s(Qt),s(Nt),s(Xt),s(I),s(Ft),s(Lt),s(E),s(zt),s(Yt),s(W),s(Ht),s(Dt),s(A),s(qt),s(Pt),s(V),s(Kt),s(Ot),s(Q),s(el),s(tl),s(N),s(ll),s(nl),s(X),s(sl),s(rl),s($t)),s(n),h(c,e),h(T,e),h(ye,e),h(Me,e),h(ue),h(te),h(fe,e),h(he),h(le),h(we,e),h(ge),h(ne),h(Te,e),h(Ue,e),h(Je),h(se),h(ke,e),h(be),h(re),h($e,e),h(je,e),h(_e),h(ae),h(Ie,e),h(Ce,e),h(ve),h(oe),h(xe),h(Be,e),h(Ze),h(Re,e),h(Ee),h(ie),h(Ge,e),h(Se),h(ce),h(We,e),h(Ae),h(me),h(Ve,e),h(Qe),h(de),h(Ne,e),h(Xe),h(Fe,e),h(Le),h(ze,e)}}}const An='{"title":"Layers API Reference","local":"layers-api-reference","sections":[{"title":"Making layers kernel-aware","local":"making-layers-kernel-aware","sections":[{"title":"use_kernel_forward_from_hub","local":"kernels.use_kernel_forward_from_hub","sections":[],"depth":3},{"title":"use_kernel_func_from_hub","local":"kernels.use_kernel_func_from_hub","sections":[],"depth":3},{"title":"replace_kernel_forward_from_hub","local":"kernels.replace_kernel_forward_from_hub","sections":[],"depth":3}],"depth":2},{"title":"Registering kernel mappings","local":"registering-kernel-mappings","sections":[{"title":"use_kernel_mapping","local":"kernels.use_kernel_mapping","sections":[],"depth":3},{"title":"register_kernel_mapping","local":"kernels.register_kernel_mapping","sections":[],"depth":3}],"depth":2},{"title":"Kernelizing a model","local":"kernelizing-a-model","sections":[{"title":"kernelize","local":"kernels.kernelize","sections":[],"depth":3}],"depth":2},{"title":"Classes","local":"classes","sections":[{"title":"Device","local":"kernels.Device","sections":[],"depth":3},{"title":"Mode","local":"kernels.Mode","sections":[],"depth":3},{"title":"FuncRepository","local":"kernels.FuncRepository","sections":[],"depth":3},{"title":"LayerRepository","local":"kernels.LayerRepository","sections":[],"depth":3},{"title":"LocalFuncRepository","local":"kernels.LocalFuncRepository","sections":[],"depth":3},{"title":"LocalLayerRepository","local":"kernels.LocalLayerRepository","sections":[],"depth":3},{"title":"LockedFuncRepository","local":"kernels.LockedFuncRepository","sections":[],"depth":3},{"title":"LockedLayerRepository","local":"kernels.LockedLayerRepository","sections":[],"depth":3}],"depth":2}],"depth":1}';function Vn(k){return Un(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Yn extends Jn{constructor(n){super(),kn(this,n,Vn,Wn,Tn,{})}}export{Yn as component};

Xet Storage Details

Size:
63.4 kB
·
Xet hash:
ecb1b72b4e8cf52569d1479614c89c1412f20e7a16ca3c321a2c1b5eb8e23bdb

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