Buckets:
| import{s as Ms,o as us,n as N}from"../chunks/scheduler.f3b1e791.js";import{S as fs,i as hs,e as d,s as a,c as M,h as ws,a as y,d as r,b as o,f as k,g as u,j as b,k as $,l as p,m as i,n as f,t as h,o as w,p as g}from"../chunks/index.023a9934.js";import{C as gs}from"../chunks/CopyLLMTxtMenu.a1b0882e.js";import{D as _,E as X}from"../chunks/ExampleCodeBlock.50164384.js";import{C as F}from"../chunks/CodeBlock.bc671b5b.js";import{H as j,E as Us}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.fdc6aa4c.js";function bs(T){let n,J="Example:",m,s,c;return s=new F({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">"MyCustomLayer"</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="cuda")</span>`,lang:"python",wrap:!1}}),{c(){n=d("p"),n.textContent=J,m=a(),M(s.$$.fragment)},l(t){n=y(t,"P",{"data-svelte-h":!0}),b(n)!=="svelte-11lpom8"&&(n.textContent=J),m=o(t),u(s.$$.fragment,t)},m(t,U){i(t,n,U),i(t,m,U),f(s,t,U),c=!0},p:N,i(t){c||(h(s.$$.fragment,t),c=!0)},o(t){w(s.$$.fragment,t),c=!1},d(t){t&&(r(n),r(m)),g(s,t)}}}function Js(T){let n,J="Example:",m,s,c;return s=new F({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">"my_custom_func"</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="cuda")</span>`,lang:"python",wrap:!1}}),{c(){n=d("p"),n.textContent=J,m=a(),M(s.$$.fragment)},l(t){n=y(t,"P",{"data-svelte-h":!0}),b(n)!=="svelte-11lpom8"&&(n.textContent=J),m=o(t),u(s.$$.fragment,t)},m(t,U){i(t,n,U),i(t,m,U),f(s,t,U),c=!0},p:N,i(t){c||(h(s.$$.fragment,t),c=!0)},o(t){w(s.$$.fragment,t),c=!1},d(t){t&&(r(n),r(m)),g(s,t)}}}function Ts(T){let n,J="Example:",m,s,c;return s=new F({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">"LayerNorm"</span>)`,lang:"python",wrap:!1}}),{c(){n=d("p"),n.textContent=J,m=a(),M(s.$$.fragment)},l(t){n=y(t,"P",{"data-svelte-h":!0}),b(n)!=="svelte-11lpom8"&&(n.textContent=J),m=o(t),u(s.$$.fragment,t)},m(t,U){i(t,n,U),i(t,m,U),f(s,t,U),c=!0},p:N,i(t){c||(h(s.$$.fragment,t),c=!0)},o(t){w(s.$$.fragment,t),c=!1},d(t){t&&(r(n),r(m)),g(s,t)}}}function ks(T){let n,J="Example:",m,s,c;return s=new F({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">"SiluAndMul"</span>: { | |
| <span class="hljs-string">"cuda"</span>: LayerRepository( | |
| repo_id=<span class="hljs-string">"kernels-community/activation"</span>, | |
| layer_name=<span class="hljs-string">"SiluAndMul"</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">"SiluAndMul"</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>) -> 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">"cuda"</span>) | |
| <span class="hljs-comment"># Outside the context, original mappings are restored</span>`,lang:"python",wrap:!1}}),{c(){n=d("p"),n.textContent=J,m=a(),M(s.$$.fragment)},l(t){n=y(t,"P",{"data-svelte-h":!0}),b(n)!=="svelte-11lpom8"&&(n.textContent=J),m=o(t),u(s.$$.fragment,t)},m(t,U){i(t,n,U),i(t,m,U),f(s,t,U),c=!0},p:N,i(t){c||(h(s.$$.fragment,t),c=!0)},o(t){w(s.$$.fragment,t),c=!1},d(t){t&&(r(n),r(m)),g(s,t)}}}function $s(T){let n,J="Example:",m,s,c;return s=new F({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">"LlamaRMSNorm"</span>: { | |
| <span class="hljs-string">"cuda"</span>: LayerRepository( | |
| repo_id=<span class="hljs-string">"kernels-community/layer_norm"</span>, | |
| layer_name=<span class="hljs-string">"LlamaRMSNorm"</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">"MultiHeadAttention"</span>: { | |
| <span class="hljs-string">"cuda"</span>: { | |
| Mode.TRAINING: LayerRepository( | |
| repo_id=<span class="hljs-string">"kernels-community/training-kernels"</span>, | |
| layer_name=<span class="hljs-string">"TrainingAttention"</span>, | |
| version=<span class="hljs-number">1</span>, | |
| ), | |
| Mode.INFERENCE: LayerRepository( | |
| repo_id=<span class="hljs-string">"kernels-community/inference-kernels"</span>, | |
| layer_name=<span class="hljs-string">"FastAttention"</span>, | |
| version=<span class="hljs-number">1</span>, | |
| ), | |
| } | |
| } | |
| } | |
| register_kernel_mapping(advanced_mapping)`,lang:"python",wrap:!1}}),{c(){n=d("p"),n.textContent=J,m=a(),M(s.$$.fragment)},l(t){n=y(t,"P",{"data-svelte-h":!0}),b(n)!=="svelte-11lpom8"&&(n.textContent=J),m=o(t),u(s.$$.fragment,t)},m(t,U){i(t,n,U),i(t,m,U),f(s,t,U),c=!0},p:N,i(t){c||(h(s.$$.fragment,t),c=!0)},o(t){w(s.$$.fragment,t),c=!1},d(t){t&&(r(n),r(m)),g(s,t)}}}function js(T){let n,J="Example:",m,s,c;return s=new F({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">"SiluAndMul"</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>) -> 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">"SiluAndMul"</span>: { | |
| <span class="hljs-string">"cuda"</span>: LayerRepository( | |
| repo_id=<span class="hljs-string">"kernels-community/activation"</span>, | |
| layer_name=<span class="hljs-string">"SiluAndMul"</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">"cuda"</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)`,lang:"python",wrap:!1}}),{c(){n=d("p"),n.textContent=J,m=a(),M(s.$$.fragment)},l(t){n=y(t,"P",{"data-svelte-h":!0}),b(n)!=="svelte-11lpom8"&&(n.textContent=J),m=o(t),u(s.$$.fragment,t)},m(t,U){i(t,n,U),i(t,m,U),f(s,t,U),c=!0},p:N,i(t){c||(h(s.$$.fragment,t),c=!0)},o(t){w(s.$$.fragment,t),c=!1},d(t){t&&(r(n),r(m)),g(s,t)}}}function _s(T){let n,J="Example:",m,s,c;return s=new F({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">"cuda"</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">"cuda"</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">"mps"</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">"xpu"</span>) | |
| <span class="hljs-comment"># NPU device (Huawei Ascend)</span> | |
| npu_device = Device(<span class="hljs-built_in">type</span>=<span class="hljs-string">"npu"</span>)`,lang:"python",wrap:!1}}),{c(){n=d("p"),n.textContent=J,m=a(),M(s.$$.fragment)},l(t){n=y(t,"P",{"data-svelte-h":!0}),b(n)!=="svelte-11lpom8"&&(n.textContent=J),m=o(t),u(s.$$.fragment,t)},m(t,U){i(t,n,U),i(t,m,U),f(s,t,U),c=!0},p:N,i(t){c||(h(s.$$.fragment,t),c=!0)},o(t){w(s.$$.fragment,t),c=!1},d(t){t&&(r(n),r(m)),g(s,t)}}}function Cs(T){let n,J="Example:",m,s,c;return s=new F({props:{code:"ZnJvbSUyMGtlcm5lbHMlMjBpbXBvcnQlMjBDVURBUHJvcGVydGllcyUyQyUyMERldmljZSUwQSUwQSUyMyUyMERlZmluZSUyMENVREElMjBwcm9wZXJ0aWVzJTIwZm9yJTIwbW9kZXJuJTIwR1BVcyUyMChjb21wdXRlJTIwY2FwYWJpbGl0eSUyMDcuNSUyMHRvJTIwOS4wKSUwQWN1ZGFfcHJvcHMlMjAlM0QlMjBDVURBUHJvcGVydGllcyhtaW5fY2FwYWJpbGl0eSUzRDc1JTJDJTIwbWF4X2NhcGFiaWxpdHklM0Q5MCklMEElMEElMjMlMjBDcmVhdGUlMjBhJTIwZGV2aWNlJTIwd2l0aCUyMHRoZXNlJTIwcHJvcGVydGllcyUwQWRldmljZSUyMCUzRCUyMERldmljZSh0eXBlJTNEJTIyY3VkYSUyMiUyQyUyMHByb3BlcnRpZXMlM0RjdWRhX3Byb3BzKQ==",highlighted:`<span class="hljs-keyword">from</span> kernels <span class="hljs-keyword">import</span> CUDAProperties, Device | |
| <span class="hljs-comment"># Define CUDA properties for modern GPUs (compute capability 7.5 to 9.0)</span> | |
| cuda_props = CUDAProperties(min_capability=<span class="hljs-number">75</span>, max_capability=<span class="hljs-number">90</span>) | |
| <span class="hljs-comment"># Create a device with these properties</span> | |
| device = Device(<span class="hljs-built_in">type</span>=<span class="hljs-string">"cuda"</span>, properties=cuda_props)`,lang:"python",wrap:!1}}),{c(){n=d("p"),n.textContent=J,m=a(),M(s.$$.fragment)},l(t){n=y(t,"P",{"data-svelte-h":!0}),b(n)!=="svelte-11lpom8"&&(n.textContent=J),m=o(t),u(s.$$.fragment,t)},m(t,U){i(t,n,U),i(t,m,U),f(s,t,U),c=!0},p:N,i(t){c||(h(s.$$.fragment,t),c=!0)},o(t){w(s.$$.fragment,t),c=!1},d(t){t&&(r(n),r(m)),g(s,t)}}}function vs(T){let n,J="Example:",m,s,c;return s=new F({props:{code:"ZnJvbSUyMGtlcm5lbHMlMjBpbXBvcnQlMjBST0NNUHJvcGVydGllcyUyQyUyMERldmljZSUwQSUwQSUyMyUyMERlZmluZSUyMFJPQ00lMjBwcm9wZXJ0aWVzJTIwZm9yJTIwbW9kZXJuJTIwR1BVcyUyMChjb21wdXRlJTIwY2FwYWJpbGl0eSUyMDcuNSUyMHRvJTIwOS4wKSUwQXJvY21fcHJvcHMlMjAlM0QlMjBST0NNUHJvcGVydGllcyhtaW5fY2FwYWJpbGl0eSUzRDc1JTJDJTIwbWF4X2NhcGFiaWxpdHklM0Q5MCklMEElMEElMjMlMjBDcmVhdGUlMjBhJTIwZGV2aWNlJTIwd2l0aCUyMHRoZXNlJTIwcHJvcGVydGllcyUwQWRldmljZSUyMCUzRCUyMERldmljZSh0eXBlJTNEJTIycm9jbSUyMiUyQyUyMHByb3BlcnRpZXMlM0Ryb2NtX3Byb3BzKQ==",highlighted:`<span class="hljs-keyword">from</span> kernels <span class="hljs-keyword">import</span> ROCMProperties, Device | |
| <span class="hljs-comment"># Define ROCM properties for modern GPUs (compute capability 7.5 to 9.0)</span> | |
| rocm_props = ROCMProperties(min_capability=<span class="hljs-number">75</span>, max_capability=<span class="hljs-number">90</span>) | |
| <span class="hljs-comment"># Create a device with these properties</span> | |
| device = Device(<span class="hljs-built_in">type</span>=<span class="hljs-string">"rocm"</span>, properties=rocm_props)`,lang:"python",wrap:!1}}),{c(){n=d("p"),n.textContent=J,m=a(),M(s.$$.fragment)},l(t){n=y(t,"P",{"data-svelte-h":!0}),b(n)!=="svelte-11lpom8"&&(n.textContent=J),m=o(t),u(s.$$.fragment,t)},m(t,U){i(t,n,U),i(t,m,U),f(s,t,U),c=!0},p:N,i(t){c||(h(s.$$.fragment,t),c=!0)},o(t){w(s.$$.fragment,t),c=!1},d(t){t&&(r(n),r(m)),g(s,t)}}}function Is(T){let n,J="Example:",m,s,c;return s=new F({props:{code:"ZnJvbSUyMGtlcm5lbHMlMjBpbXBvcnQlMjBGdW5jUmVwb3NpdG9yeSUwQSUwQSUyMyUyMFJlZmVyZW5jZSUyMGElMjBzcGVjaWZpYyUyMGxheWVyJTIwYnklMjByZXZpc2lvbiUwQWxheWVyX3JlcG8lMjAlM0QlMjBGdW5jUmVwb3NpdG9yeSglMEElMjAlMjAlMjAlMjByZXBvX2lkJTNEJTIya2VybmVscy1jb21tdW5pdHklMkZhY3RpdmF0aW9uJTIyJTJDJTBBJTIwJTIwJTIwJTIwZnVuY19uYW1lJTNEJTIyc2lsdV9hbmRfbXVsJTIyJTJDJTBBJTIwJTIwJTIwJTIwcmV2aXNpb24lM0QlMjJtYWluJTIyJTJDJTBBKSUwQSUwQSUyMyUyMFJlZmVyZW5jZSUyMGElMjBsYXllciUyMGJ5JTIwdmVyc2lvbiUwQWxheWVyX3JlcG9fdmVyc2lvbmVkJTIwJTNEJTIwRnVuY1JlcG9zaXRvcnkoJTBBJTIwJTIwJTIwJTIwcmVwb19pZCUzRCUyMmtlcm5lbHMtY29tbXVuaXR5JTJGcmVsdSUyMiUyQyUwQSUyMCUyMCUyMCUyMGZ1bmNfbmFtZSUzRCUyMnJlbHUlMjIlMkMlMEElMjAlMjAlMjAlMjB2ZXJzaW9uJTNEMSUwQSk=",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">"kernels-community/activation"</span>, | |
| func_name=<span class="hljs-string">"silu_and_mul"</span>, | |
| revision=<span class="hljs-string">"main"</span>, | |
| ) | |
| <span class="hljs-comment"># Reference a layer by version</span> | |
| layer_repo_versioned = FuncRepository( | |
| repo_id=<span class="hljs-string">"kernels-community/relu"</span>, | |
| func_name=<span class="hljs-string">"relu"</span>, | |
| version=<span class="hljs-number">1</span> | |
| )`,lang:"python",wrap:!1}}),{c(){n=d("p"),n.textContent=J,m=a(),M(s.$$.fragment)},l(t){n=y(t,"P",{"data-svelte-h":!0}),b(n)!=="svelte-11lpom8"&&(n.textContent=J),m=o(t),u(s.$$.fragment,t)},m(t,U){i(t,n,U),i(t,m,U),f(s,t,U),c=!0},p:N,i(t){c||(h(s.$$.fragment,t),c=!0)},o(t){w(s.$$.fragment,t),c=!1},d(t){t&&(r(n),r(m)),g(s,t)}}}function xs(T){let n,J="Example:",m,s,c;return s=new F({props:{code:"ZnJvbSUyMGtlcm5lbHMlMjBpbXBvcnQlMjBMYXllclJlcG9zaXRvcnklMEElMEElMjMlMjBSZWZlcmVuY2UlMjBhJTIwc3BlY2lmaWMlMjBsYXllciUyMGJ5JTIwdmVyc2lvbiUwQWxheWVyX3JlcG8lMjAlM0QlMjBMYXllclJlcG9zaXRvcnkoJTBBJTIwJTIwJTIwJTIwcmVwb19pZCUzRCUyMmtlcm5lbHMtY29tbXVuaXR5JTJGYWN0aXZhdGlvbiUyMiUyQyUwQSUyMCUyMCUyMCUyMGxheWVyX25hbWUlM0QlMjJTaWx1QW5kTXVsJTIyJTJDJTBBJTIwJTIwJTIwJTIwdmVyc2lvbiUzRDElMkMlMEEp",highlighted:`<span class="hljs-keyword">from</span> kernels <span class="hljs-keyword">import</span> LayerRepository | |
| <span class="hljs-comment"># Reference a specific layer by version</span> | |
| layer_repo = LayerRepository( | |
| repo_id=<span class="hljs-string">"kernels-community/activation"</span>, | |
| layer_name=<span class="hljs-string">"SiluAndMul"</span>, | |
| version=<span class="hljs-number">1</span>, | |
| )`,lang:"python",wrap:!1}}),{c(){n=d("p"),n.textContent=J,m=a(),M(s.$$.fragment)},l(t){n=y(t,"P",{"data-svelte-h":!0}),b(n)!=="svelte-11lpom8"&&(n.textContent=J),m=o(t),u(s.$$.fragment,t)},m(t,U){i(t,n,U),i(t,m,U),f(s,t,U),c=!0},p:N,i(t){c||(h(s.$$.fragment,t),c=!0)},o(t){w(s.$$.fragment,t),c=!1},d(t){t&&(r(n),r(m)),g(s,t)}}}function Bs(T){let n,J="Example:",m,s,c;return s=new F({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">"/home/daniel/kernels/activation"</span>), | |
| func_name=<span class="hljs-string">"silu_and_mul"</span>, | |
| )`,lang:"python",wrap:!1}}),{c(){n=d("p"),n.textContent=J,m=a(),M(s.$$.fragment)},l(t){n=y(t,"P",{"data-svelte-h":!0}),b(n)!=="svelte-11lpom8"&&(n.textContent=J),m=o(t),u(s.$$.fragment,t)},m(t,U){i(t,n,U),i(t,m,U),f(s,t,U),c=!0},p:N,i(t){c||(h(s.$$.fragment,t),c=!0)},o(t){w(s.$$.fragment,t),c=!1},d(t){t&&(r(n),r(m)),g(s,t)}}}function Rs(T){let n,J="Example:",m,s,c;return s=new F({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">"/home/daniel/kernels/activation"</span>), | |
| layer_name=<span class="hljs-string">"SiluAndMul"</span>, | |
| )`,lang:"python",wrap:!1}}),{c(){n=d("p"),n.textContent=J,m=a(),M(s.$$.fragment)},l(t){n=y(t,"P",{"data-svelte-h":!0}),b(n)!=="svelte-11lpom8"&&(n.textContent=J),m=o(t),u(s.$$.fragment,t)},m(t,U){i(t,n,U),i(t,m,U),f(s,t,U),c=!0},p:N,i(t){c||(h(s.$$.fragment,t),c=!0)},o(t){w(s.$$.fragment,t),c=!1},d(t){t&&(r(n),r(m)),g(s,t)}}}function Zs(T){let n,J,m,s,c,t,U,Pt,ge,qt,Ue,Kt,Z,be,Gn,pt,Rl="Decorator factory that makes a layer extensible using the specified layer name.",Sn,it,Zl=`This is a decorator factory that returns a decorator which prepares a layer class to use kernels from the | |
| Hugging Face Hub.`,Wn,le,Ot,Je,en,I,Te,Vn,ct,El="Decorator that makes a function extensible using the specified function name.",An,mt,Gl=`This is a decorator factory that returns a decorator which prepares a function to use kernels from the | |
| Hugging Face Hub.`,Qn,dt,Sl=`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).`,Xn,se,tn,ke,nn,E,$e,Nn,yt,Wl="Function that prepares a layer class to use kernels from the Hugging Face Hub.",Fn,Mt,Vl=`It is recommended to use <a href="/docs/kernels/pr_628/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.`,Ln,re,ln,je,sn,_e,rn,G,Ce,Dn,ut,Al="Context manager that sets a kernel mapping for the duration of the context.",zn,ft,Ql=`This function allows temporary kernel mappings to be applied within a specific context, enabling different | |
| kernel configurations for different parts of your code.`,Hn,ae,an,ve,on,S,Ie,Yn,ht,Xl="Register a global mapping between layer names and their corresponding kernel implementations.",Pn,wt,Nl=`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_628/en/api/layers#kernels.kernelize">kernelize()</a>.`,qn,oe,pn,xe,cn,Be,mn,W,Re,Kn,gt,Fl="Replace layer forward methods with optimized kernel implementations.",On,Ut,Ll=`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_628/en/api/layers#kernels.register_kernel_mapping">register_kernel_mapping()</a> or <a href="/docs/kernels/pr_628/en/api/layers#kernels.use_kernel_mapping">use_kernel_mapping()</a>.`,el,pe,dn,Ze,yn,Ee,Mn,x,Ge,tl,bt,Dl="Represents a compute device with optional properties.",nl,Jt,zl=`This class encapsulates device information including device type and optional device-specific properties | |
| like CUDA capabilities.`,ll,ie,sl,ce,Se,rl,Tt,Hl="Run class validators on the instance.",un,We,fn,C,Ve,al,kt,Yl="CUDA-specific device properties for capability-based kernel selection.",ol,$t,Pl=`This class defines CUDA compute capability constraints for kernel selection, allowing kernels to specify | |
| minimum and maximum CUDA compute capabilities they support.`,pl,me,il,jt,ql=`Note: | |
| CUDA compute capabilities are represented as integers where the major and minor versions are concatenated. | |
| For example, compute capability 7.5 is represented as 75, and 8.6 is represented as 86.`,cl,de,Ae,ml,_t,Kl="Run class validators on the instance.",hn,Qe,wn,v,Xe,dl,Ct,Ol="ROCM-specific device properties for capability-based kernel selection.",yl,vt,es=`This class defines ROCM compute capability constraints for kernel selection, allowing kernels to specify | |
| minimum and maximum ROCM compute capabilities they support.`,Ml,ye,ul,It,ts=`Note: | |
| ROCM compute capabilities are represented as integers where the major and minor versions are concatenated. | |
| For example, compute capability 7.5 is represented as 75, and 8.6 is represented as 86.`,fl,Me,Ne,hl,xt,ns="Run class validators on the instance.",gn,Fe,Un,V,Le,wl,Bt,ls="Kernelize mode",gl,Rt,ss=`The <code>Mode</code> flag is used by <a href="/docs/kernels/pr_628/en/api/layers#kernels.kernelize">kernelize()</a> to select kernels for the given mode. Mappings can be registered for | |
| specific modes.`,Ul,Zt,rs=`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>.`,bn,De,Jn,L,ze,bl,Et,as="Repository and name of a function for kernel mapping.",Jl,ue,Tn,He,kn,D,Ye,Tl,Gt,os="Repository and name of a layer for kernel mapping.",kl,fe,$n,Pe,jn,z,qe,$l,St,ps="Repository and function name from a local directory for kernel mapping.",jl,he,_n,Ke,Cn,H,Oe,_l,Wt,is="Repository from a local directory for kernel mapping.",Cl,we,vn,et,In,Y,tt,vl,Vt,cs="Repository and name of a function.",Il,At,ms=`In contrast to <code>FuncRepository</code>, this class uses repositories that | |
| are locked inside a project.`,xn,nt,Bn,P,lt,xl,Qt,ds="Repository and name of a layer.",Bl,Xt,ys=`In contrast to <code>LayerRepository</code>, this class uses repositories that | |
| are locked inside a project.`,Rn,st,Zn,Yt,En;return c=new gs({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),U=new j({props:{title:"Layers API Reference",local:"layers-api-reference",headingTag:"h1"}}),ge=new j({props:{title:"Making layers kernel-aware",local:"making-layers-kernel-aware",headingTag:"h2"}}),Ue=new j({props:{title:"use_kernel_forward_from_hub",local:"kernels.use_kernel_forward_from_hub",headingTag:"h3"}}),be=new _({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>) — | |
| The name of the layer to use for kernel lookup in registered mappings.`,name:"layer_name"}],source:"https://github.com/huggingface/kernels/blob/vr_628/kernels/src/kernels/layer/layer.py#L269",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 X({props:{anchor:"kernels.use_kernel_forward_from_hub.example",$$slots:{default:[bs]},$$scope:{ctx:T}}}),Je=new j({props:{title:"use_kernel_func_from_hub",local:"kernels.use_kernel_func_from_hub",headingTag:"h3"}}),Te=new _({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>) — | |
| 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_628/kernels/src/kernels/layer/func.py#L167",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> | |
| `}}),se=new X({props:{anchor:"kernels.use_kernel_func_from_hub.example",$$slots:{default:[Js]},$$scope:{ctx:T}}}),ke=new j({props:{title:"replace_kernel_forward_from_hub",local:"kernels.replace_kernel_forward_from_hub",headingTag:"h3"}}),$e=new _({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_628/kernels/src/kernels/layer/layer.py#L246"}}),re=new X({props:{anchor:"kernels.replace_kernel_forward_from_hub.example",$$slots:{default:[Ts]},$$scope:{ctx:T}}}),je=new j({props:{title:"Registering kernel mappings",local:"registering-kernel-mappings",headingTag:"h2"}}),_e=new j({props:{title:"use_kernel_mapping",local:"kernels.use_kernel_mapping",headingTag:"h3"}}),Ce=new _({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>) — | |
| 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>) — | |
| 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_628/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> | |
| `}}),ae=new X({props:{anchor:"kernels.use_kernel_mapping.example",$$slots:{default:[ks]},$$scope:{ctx:T}}}),ve=new j({props:{title:"register_kernel_mapping",local:"kernels.register_kernel_mapping",headingTag:"h3"}}),Ie=new _({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>) — | |
| 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>) — | |
| 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_628/kernels/src/kernels/layer/kernelize.py#L97"}}),oe=new X({props:{anchor:"kernels.register_kernel_mapping.example",$$slots:{default:[$s]},$$scope:{ctx:T}}}),xe=new j({props:{title:"Kernelizing a model",local:"kernelizing-a-model",headingTag:"h2"}}),Be=new j({props:{title:"kernelize",local:"kernels.kernelize",headingTag:"h3"}}),Re=new _({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>) — | |
| The PyTorch model to kernelize.`,name:"model"},{anchor:"kernels.kernelize.mode",description:`<strong>mode</strong> (<a href="/docs/kernels/pr_628/en/api/layers#kernels.Mode">Mode</a>) — 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>) — | |
| The device type to load kernels for. Supported device types are: “cuda”, “mps”, “npu”, “rocm”, “xpu”. | |
| 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>) — | |
| 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_628/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> | |
| `}}),pe=new X({props:{anchor:"kernels.kernelize.example",$$slots:{default:[js]},$$scope:{ctx:T}}}),Ze=new j({props:{title:"Classes",local:"classes",headingTag:"h2"}}),Ee=new j({props:{title:"Device",local:"kernels.Device",headingTag:"h3"}}),Ge=new _({props:{name:"class kernels.Device",anchor:"kernels.Device",parameters:[{name:"type",val:": str"},{name:"properties",val:": kernels.layer.device.CUDAProperties | kernels.layer.device.ROCMProperties | None = None"}],parametersDescription:[{anchor:"kernels.Device.type",description:`<strong>type</strong> (<code>str</code>) — | |
| The device type (e.g., “cuda”, “mps”, “npu”, “rocm”, “xpu”).`,name:"type"},{anchor:"kernels.Device.properties",description:`<strong>properties</strong> (<a href="/docs/kernels/pr_628/en/api/layers#kernels.CUDAProperties">CUDAProperties</a>, <em>optional</em>) — | |
| Device-specific properties. Currently only <a href="/docs/kernels/pr_628/en/api/layers#kernels.CUDAProperties">CUDAProperties</a> is supported for CUDA devices.`,name:"properties"}],source:"https://github.com/huggingface/kernels/blob/vr_628/kernels/src/kernels/layer/device.py#L106"}}),ie=new X({props:{anchor:"kernels.Device.example",$$slots:{default:[_s]},$$scope:{ctx:T}}}),Se=new _({props:{name:"validate",anchor:"kernels.Device.validate",parameters:[],source:"https://github.com/huggingface/kernels/blob/vr_628/kernels/src/huggingface_hub/dataclasses.py#L247"}}),We=new j({props:{title:"CUDAProperties",local:"kernels.CUDAProperties",headingTag:"h3"}}),Ve=new _({props:{name:"class kernels.CUDAProperties",anchor:"kernels.CUDAProperties",parameters:[{name:"min_capability",val:": int"},{name:"max_capability",val:": int"}],parametersDescription:[{anchor:"kernels.CUDAProperties.min_capability",description:`<strong>min_capability</strong> (<code>int</code>) — | |
| Minimum CUDA compute capability required (e.g., 75 for compute capability 7.5).`,name:"min_capability"},{anchor:"kernels.CUDAProperties.max_capability",description:`<strong>max_capability</strong> (<code>int</code>) — | |
| Maximum CUDA compute capability supported (e.g., 90 for compute capability 9.0).`,name:"max_capability"}],source:"https://github.com/huggingface/kernels/blob/vr_628/kernels/src/kernels/layer/device.py#L8"}}),me=new X({props:{anchor:"kernels.CUDAProperties.example",$$slots:{default:[Cs]},$$scope:{ctx:T}}}),Ae=new _({props:{name:"validate",anchor:"kernels.CUDAProperties.validate",parameters:[],source:"https://github.com/huggingface/kernels/blob/vr_628/kernels/src/huggingface_hub/dataclasses.py#L247"}}),Qe=new j({props:{title:"ROCMProperties",local:"kernels.ROCMProperties",headingTag:"h3"}}),Xe=new _({props:{name:"class kernels.ROCMProperties",anchor:"kernels.ROCMProperties",parameters:[{name:"min_capability",val:": int"},{name:"max_capability",val:": int"}],parametersDescription:[{anchor:"kernels.ROCMProperties.min_capability",description:`<strong>min_capability</strong> (<code>int</code>) — | |
| Minimum ROCM compute capability required (e.g., 75 for compute capability 7.5).`,name:"min_capability"},{anchor:"kernels.ROCMProperties.max_capability",description:`<strong>max_capability</strong> (<code>int</code>) — | |
| Maximum ROCM compute capability supported (e.g., 90 for compute capability 9.0).`,name:"max_capability"}],source:"https://github.com/huggingface/kernels/blob/vr_628/kernels/src/kernels/layer/device.py#L57"}}),ye=new X({props:{anchor:"kernels.ROCMProperties.example",$$slots:{default:[vs]},$$scope:{ctx:T}}}),Ne=new _({props:{name:"validate",anchor:"kernels.ROCMProperties.validate",parameters:[],source:"https://github.com/huggingface/kernels/blob/vr_628/kernels/src/huggingface_hub/dataclasses.py#L247"}}),Fe=new j({props:{title:"Mode",local:"kernels.Mode",headingTag:"h3"}}),Le=new _({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> — The kernel is used for inference.",name:"INFERENCE"},{anchor:"kernels.Mode.TRAINING",description:"<strong>TRAINING</strong> — The kernel is used for training.",name:"TRAINING"},{anchor:"kernels.Mode.TORCH_COMPILE",description:"<strong>TORCH_COMPILE</strong> — The kernel is used with <code>torch.compile</code>.",name:"TORCH_COMPILE"},{anchor:"kernels.Mode.FALLBACK",description:"<strong>FALLBACK</strong> — In a kernel mapping, this kernel is used when no other mode matches.",name:"FALLBACK"}],source:"https://github.com/huggingface/kernels/blob/vr_628/kernels/src/kernels/layer/mode.py#L4"}}),De=new j({props:{title:"FuncRepository",local:"kernels.FuncRepository",headingTag:"h3"}}),ze=new _({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>) — | |
| The Hub repository containing the layer.`,name:"repo_id"},{anchor:"kernels.FuncRepository.func_name",description:`<strong>func_name</strong> (<code>str</code>) — | |
| 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>) — | |
| 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>) — | |
| The kernel version to download. Cannot be used together with <code>revision</code>. | |
| Either <code>version</code> or <code>revision</code> must be specified.`,name:"version"}],source:"https://github.com/huggingface/kernels/blob/vr_628/kernels/src/kernels/layer/func.py#L27"}}),ue=new X({props:{anchor:"kernels.FuncRepository.example",$$slots:{default:[Is]},$$scope:{ctx:T}}}),He=new j({props:{title:"LayerRepository",local:"kernels.LayerRepository",headingTag:"h3"}}),Ye=new _({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>) — | |
| The Hub repository containing the layer.`,name:"repo_id"},{anchor:"kernels.LayerRepository.layer_name",description:`<strong>layer_name</strong> (<code>str</code>) — | |
| 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>) — | |
| 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>) — | |
| The kernel version to download. Cannot be used together with <code>revision</code>. | |
| Either <code>version</code> or <code>revision</code> must be specified.`,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>) — | |
| 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_628/kernels/src/kernels/layer/layer.py#L32"}}),fe=new X({props:{anchor:"kernels.LayerRepository.example",$$slots:{default:[xs]},$$scope:{ctx:T}}}),Pe=new j({props:{title:"LocalFuncRepository",local:"kernels.LocalFuncRepository",headingTag:"h3"}}),qe=new _({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>) — | |
| The local repository containing the layer.`,name:"repo_path"},{anchor:"kernels.LocalFuncRepository.func_name",description:`<strong>func_name</strong> (<code>str</code>) — | |
| The name of the function within the kernel repository.`,name:"func_name"}],source:"https://github.com/huggingface/kernels/blob/vr_628/kernels/src/kernels/layer/func.py#L116"}}),he=new X({props:{anchor:"kernels.LocalFuncRepository.example",$$slots:{default:[Bs]},$$scope:{ctx:T}}}),Ke=new j({props:{title:"LocalLayerRepository",local:"kernels.LocalLayerRepository",headingTag:"h3"}}),Oe=new _({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>) — | |
| The local repository containing the layer.`,name:"repo_path"},{anchor:"kernels.LocalLayerRepository.layer_name",description:`<strong>layer_name</strong> (<code>str</code>) — | |
| The name of the layer within the kernel repository.`,name:"layer_name"}],source:"https://github.com/huggingface/kernels/blob/vr_628/kernels/src/kernels/layer/layer.py#L128"}}),we=new X({props:{anchor:"kernels.LocalLayerRepository.example",$$slots:{default:[Rs]},$$scope:{ctx:T}}}),et=new j({props:{title:"LockedFuncRepository",local:"kernels.LockedFuncRepository",headingTag:"h3"}}),tt=new _({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_628/kernels/src/kernels/layer/func.py#L222"}}),nt=new j({props:{title:"LockedLayerRepository",local:"kernels.LockedLayerRepository",headingTag:"h3"}}),lt=new _({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_628/kernels/src/kernels/layer/layer.py#L179"}}),st=new Us({props:{source:"https://github.com/huggingface/kernels/blob/main/docs/source/api/layers.md"}}),{c(){n=d("meta"),J=a(),m=d("p"),s=a(),M(c.$$.fragment),t=a(),M(U.$$.fragment),Pt=a(),M(ge.$$.fragment),qt=a(),M(Ue.$$.fragment),Kt=a(),Z=d("div"),M(be.$$.fragment),Gn=a(),pt=d("p"),pt.textContent=Rl,Sn=a(),it=d("p"),it.textContent=Zl,Wn=a(),M(le.$$.fragment),Ot=a(),M(Je.$$.fragment),en=a(),I=d("div"),M(Te.$$.fragment),Vn=a(),ct=d("p"),ct.textContent=El,An=a(),mt=d("p"),mt.textContent=Gl,Qn=a(),dt=d("p"),dt.innerHTML=Sl,Xn=a(),M(se.$$.fragment),tn=a(),M(ke.$$.fragment),nn=a(),E=d("div"),M($e.$$.fragment),Nn=a(),yt=d("p"),yt.textContent=Wl,Fn=a(),Mt=d("p"),Mt.innerHTML=Vl,Ln=a(),M(re.$$.fragment),ln=a(),M(je.$$.fragment),sn=a(),M(_e.$$.fragment),rn=a(),G=d("div"),M(Ce.$$.fragment),Dn=a(),ut=d("p"),ut.textContent=Al,zn=a(),ft=d("p"),ft.textContent=Ql,Hn=a(),M(ae.$$.fragment),an=a(),M(ve.$$.fragment),on=a(),S=d("div"),M(Ie.$$.fragment),Yn=a(),ht=d("p"),ht.textContent=Xl,Pn=a(),wt=d("p"),wt.innerHTML=Nl,qn=a(),M(oe.$$.fragment),pn=a(),M(xe.$$.fragment),cn=a(),M(Be.$$.fragment),mn=a(),W=d("div"),M(Re.$$.fragment),Kn=a(),gt=d("p"),gt.textContent=Fl,On=a(),Ut=d("p"),Ut.innerHTML=Ll,el=a(),M(pe.$$.fragment),dn=a(),M(Ze.$$.fragment),yn=a(),M(Ee.$$.fragment),Mn=a(),x=d("div"),M(Ge.$$.fragment),tl=a(),bt=d("p"),bt.textContent=Dl,nl=a(),Jt=d("p"),Jt.textContent=zl,ll=a(),M(ie.$$.fragment),sl=a(),ce=d("div"),M(Se.$$.fragment),rl=a(),Tt=d("p"),Tt.textContent=Hl,un=a(),M(We.$$.fragment),fn=a(),C=d("div"),M(Ve.$$.fragment),al=a(),kt=d("p"),kt.textContent=Yl,ol=a(),$t=d("p"),$t.textContent=Pl,pl=a(),M(me.$$.fragment),il=a(),jt=d("p"),jt.textContent=ql,cl=a(),de=d("div"),M(Ae.$$.fragment),ml=a(),_t=d("p"),_t.textContent=Kl,hn=a(),M(Qe.$$.fragment),wn=a(),v=d("div"),M(Xe.$$.fragment),dl=a(),Ct=d("p"),Ct.textContent=Ol,yl=a(),vt=d("p"),vt.textContent=es,Ml=a(),M(ye.$$.fragment),ul=a(),It=d("p"),It.textContent=ts,fl=a(),Me=d("div"),M(Ne.$$.fragment),hl=a(),xt=d("p"),xt.textContent=ns,gn=a(),M(Fe.$$.fragment),Un=a(),V=d("div"),M(Le.$$.fragment),wl=a(),Bt=d("p"),Bt.textContent=ls,gl=a(),Rt=d("p"),Rt.innerHTML=ss,Ul=a(),Zt=d("p"),Zt.innerHTML=rs,bn=a(),M(De.$$.fragment),Jn=a(),L=d("div"),M(ze.$$.fragment),bl=a(),Et=d("p"),Et.textContent=as,Jl=a(),M(ue.$$.fragment),Tn=a(),M(He.$$.fragment),kn=a(),D=d("div"),M(Ye.$$.fragment),Tl=a(),Gt=d("p"),Gt.textContent=os,kl=a(),M(fe.$$.fragment),$n=a(),M(Pe.$$.fragment),jn=a(),z=d("div"),M(qe.$$.fragment),$l=a(),St=d("p"),St.textContent=ps,jl=a(),M(he.$$.fragment),_n=a(),M(Ke.$$.fragment),Cn=a(),H=d("div"),M(Oe.$$.fragment),_l=a(),Wt=d("p"),Wt.textContent=is,Cl=a(),M(we.$$.fragment),vn=a(),M(et.$$.fragment),In=a(),Y=d("div"),M(tt.$$.fragment),vl=a(),Vt=d("p"),Vt.textContent=cs,Il=a(),At=d("p"),At.innerHTML=ms,xn=a(),M(nt.$$.fragment),Bn=a(),P=d("div"),M(lt.$$.fragment),xl=a(),Qt=d("p"),Qt.textContent=ds,Bl=a(),Xt=d("p"),Xt.innerHTML=ys,Rn=a(),M(st.$$.fragment),Zn=a(),Yt=d("p"),this.h()},l(e){const l=ws("svelte-u9bgzb",document.head);n=y(l,"META",{name:!0,content:!0}),l.forEach(r),J=o(e),m=y(e,"P",{}),k(m).forEach(r),s=o(e),u(c.$$.fragment,e),t=o(e),u(U.$$.fragment,e),Pt=o(e),u(ge.$$.fragment,e),qt=o(e),u(Ue.$$.fragment,e),Kt=o(e),Z=y(e,"DIV",{class:!0});var q=k(Z);u(be.$$.fragment,q),Gn=o(q),pt=y(q,"P",{"data-svelte-h":!0}),b(pt)!=="svelte-17ebw3h"&&(pt.textContent=Rl),Sn=o(q),it=y(q,"P",{"data-svelte-h":!0}),b(it)!=="svelte-wgdatn"&&(it.textContent=Zl),Wn=o(q),u(le.$$.fragment,q),q.forEach(r),Ot=o(e),u(Je.$$.fragment,e),en=o(e),I=y(e,"DIV",{class:!0});var A=k(I);u(Te.$$.fragment,A),Vn=o(A),ct=y(A,"P",{"data-svelte-h":!0}),b(ct)!=="svelte-1gabpyp"&&(ct.textContent=El),An=o(A),mt=y(A,"P",{"data-svelte-h":!0}),b(mt)!=="svelte-nc81mu"&&(mt.textContent=Gl),Qn=o(A),dt=y(A,"P",{"data-svelte-h":!0}),b(dt)!=="svelte-1fgrp05"&&(dt.innerHTML=Sl),Xn=o(A),u(se.$$.fragment,A),A.forEach(r),tn=o(e),u(ke.$$.fragment,e),nn=o(e),E=y(e,"DIV",{class:!0});var K=k(E);u($e.$$.fragment,K),Nn=o(K),yt=y(K,"P",{"data-svelte-h":!0}),b(yt)!=="svelte-17bjf1v"&&(yt.textContent=Wl),Fn=o(K),Mt=y(K,"P",{"data-svelte-h":!0}),b(Mt)!=="svelte-6n9rlx"&&(Mt.innerHTML=Vl),Ln=o(K),u(re.$$.fragment,K),K.forEach(r),ln=o(e),u(je.$$.fragment,e),sn=o(e),u(_e.$$.fragment,e),rn=o(e),G=y(e,"DIV",{class:!0});var O=k(G);u(Ce.$$.fragment,O),Dn=o(O),ut=y(O,"P",{"data-svelte-h":!0}),b(ut)!=="svelte-4v5vcp"&&(ut.textContent=Al),zn=o(O),ft=y(O,"P",{"data-svelte-h":!0}),b(ft)!=="svelte-124m5et"&&(ft.textContent=Ql),Hn=o(O),u(ae.$$.fragment,O),O.forEach(r),an=o(e),u(ve.$$.fragment,e),on=o(e),S=y(e,"DIV",{class:!0});var ee=k(S);u(Ie.$$.fragment,ee),Yn=o(ee),ht=y(ee,"P",{"data-svelte-h":!0}),b(ht)!=="svelte-h5yso0"&&(ht.textContent=Xl),Pn=o(ee),wt=y(ee,"P",{"data-svelte-h":!0}),b(wt)!=="svelte-144570f"&&(wt.innerHTML=Nl),qn=o(ee),u(oe.$$.fragment,ee),ee.forEach(r),pn=o(e),u(xe.$$.fragment,e),cn=o(e),u(Be.$$.fragment,e),mn=o(e),W=y(e,"DIV",{class:!0});var te=k(W);u(Re.$$.fragment,te),Kn=o(te),gt=y(te,"P",{"data-svelte-h":!0}),b(gt)!=="svelte-11gfrdt"&&(gt.textContent=Fl),On=o(te),Ut=y(te,"P",{"data-svelte-h":!0}),b(Ut)!=="svelte-3j6ox3"&&(Ut.innerHTML=Ll),el=o(te),u(pe.$$.fragment,te),te.forEach(r),dn=o(e),u(Ze.$$.fragment,e),yn=o(e),u(Ee.$$.fragment,e),Mn=o(e),x=y(e,"DIV",{class:!0});var Q=k(x);u(Ge.$$.fragment,Q),tl=o(Q),bt=y(Q,"P",{"data-svelte-h":!0}),b(bt)!=="svelte-19eu2wi"&&(bt.textContent=Dl),nl=o(Q),Jt=y(Q,"P",{"data-svelte-h":!0}),b(Jt)!=="svelte-9t0i4c"&&(Jt.textContent=zl),ll=o(Q),u(ie.$$.fragment,Q),sl=o(Q),ce=y(Q,"DIV",{class:!0});var rt=k(ce);u(Se.$$.fragment,rt),rl=o(rt),Tt=y(rt,"P",{"data-svelte-h":!0}),b(Tt)!=="svelte-3wcl39"&&(Tt.textContent=Hl),rt.forEach(r),Q.forEach(r),un=o(e),u(We.$$.fragment,e),fn=o(e),C=y(e,"DIV",{class:!0});var B=k(C);u(Ve.$$.fragment,B),al=o(B),kt=y(B,"P",{"data-svelte-h":!0}),b(kt)!=="svelte-42achz"&&(kt.textContent=Yl),ol=o(B),$t=y(B,"P",{"data-svelte-h":!0}),b($t)!=="svelte-3u6o6h"&&($t.textContent=Pl),pl=o(B),u(me.$$.fragment,B),il=o(B),jt=y(B,"P",{"data-svelte-h":!0}),b(jt)!=="svelte-1i6k98o"&&(jt.textContent=ql),cl=o(B),de=y(B,"DIV",{class:!0});var at=k(de);u(Ae.$$.fragment,at),ml=o(at),_t=y(at,"P",{"data-svelte-h":!0}),b(_t)!=="svelte-3wcl39"&&(_t.textContent=Kl),at.forEach(r),B.forEach(r),hn=o(e),u(Qe.$$.fragment,e),wn=o(e),v=y(e,"DIV",{class:!0});var R=k(v);u(Xe.$$.fragment,R),dl=o(R),Ct=y(R,"P",{"data-svelte-h":!0}),b(Ct)!=="svelte-gq8bgn"&&(Ct.textContent=Ol),yl=o(R),vt=y(R,"P",{"data-svelte-h":!0}),b(vt)!=="svelte-xvkga1"&&(vt.textContent=es),Ml=o(R),u(ye.$$.fragment,R),ul=o(R),It=y(R,"P",{"data-svelte-h":!0}),b(It)!=="svelte-ssqjuc"&&(It.textContent=ts),fl=o(R),Me=y(R,"DIV",{class:!0});var ot=k(Me);u(Ne.$$.fragment,ot),hl=o(ot),xt=y(ot,"P",{"data-svelte-h":!0}),b(xt)!=="svelte-3wcl39"&&(xt.textContent=ns),ot.forEach(r),R.forEach(r),gn=o(e),u(Fe.$$.fragment,e),Un=o(e),V=y(e,"DIV",{class:!0});var ne=k(V);u(Le.$$.fragment,ne),wl=o(ne),Bt=y(ne,"P",{"data-svelte-h":!0}),b(Bt)!=="svelte-wlnf64"&&(Bt.textContent=ls),gl=o(ne),Rt=y(ne,"P",{"data-svelte-h":!0}),b(Rt)!=="svelte-18gwzun"&&(Rt.innerHTML=ss),Ul=o(ne),Zt=y(ne,"P",{"data-svelte-h":!0}),b(Zt)!=="svelte-x58jtu"&&(Zt.innerHTML=rs),ne.forEach(r),bn=o(e),u(De.$$.fragment,e),Jn=o(e),L=y(e,"DIV",{class:!0});var Nt=k(L);u(ze.$$.fragment,Nt),bl=o(Nt),Et=y(Nt,"P",{"data-svelte-h":!0}),b(Et)!=="svelte-1fbxeta"&&(Et.textContent=as),Jl=o(Nt),u(ue.$$.fragment,Nt),Nt.forEach(r),Tn=o(e),u(He.$$.fragment,e),kn=o(e),D=y(e,"DIV",{class:!0});var Ft=k(D);u(Ye.$$.fragment,Ft),Tl=o(Ft),Gt=y(Ft,"P",{"data-svelte-h":!0}),b(Gt)!=="svelte-1foq575"&&(Gt.textContent=os),kl=o(Ft),u(fe.$$.fragment,Ft),Ft.forEach(r),$n=o(e),u(Pe.$$.fragment,e),jn=o(e),z=y(e,"DIV",{class:!0});var Lt=k(z);u(qe.$$.fragment,Lt),$l=o(Lt),St=y(Lt,"P",{"data-svelte-h":!0}),b(St)!=="svelte-1nb80ft"&&(St.textContent=ps),jl=o(Lt),u(he.$$.fragment,Lt),Lt.forEach(r),_n=o(e),u(Ke.$$.fragment,e),Cn=o(e),H=y(e,"DIV",{class:!0});var Dt=k(H);u(Oe.$$.fragment,Dt),_l=o(Dt),Wt=y(Dt,"P",{"data-svelte-h":!0}),b(Wt)!=="svelte-17opoc3"&&(Wt.textContent=is),Cl=o(Dt),u(we.$$.fragment,Dt),Dt.forEach(r),vn=o(e),u(et.$$.fragment,e),In=o(e),Y=y(e,"DIV",{class:!0});var zt=k(Y);u(tt.$$.fragment,zt),vl=o(zt),Vt=y(zt,"P",{"data-svelte-h":!0}),b(Vt)!=="svelte-10rrvzk"&&(Vt.textContent=cs),Il=o(zt),At=y(zt,"P",{"data-svelte-h":!0}),b(At)!=="svelte-1m7rt2a"&&(At.innerHTML=ms),zt.forEach(r),xn=o(e),u(nt.$$.fragment,e),Bn=o(e),P=y(e,"DIV",{class:!0});var Ht=k(P);u(lt.$$.fragment,Ht),xl=o(Ht),Qt=y(Ht,"P",{"data-svelte-h":!0}),b(Qt)!=="svelte-10njn0v"&&(Qt.textContent=ds),Bl=o(Ht),Xt=y(Ht,"P",{"data-svelte-h":!0}),b(Xt)!=="svelte-1u9ojx1"&&(Xt.innerHTML=ys),Ht.forEach(r),Rn=o(e),u(st.$$.fragment,e),Zn=o(e),Yt=y(e,"P",{}),k(Yt).forEach(r),this.h()},h(){$(n,"name","hf:doc:metadata"),$(n,"content",Es),$(Z,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(I,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(E,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(G,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(S,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(W,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(ce,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(x,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(de,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(C,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Me,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(v,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(V,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(L,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(D,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(z,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(H,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Y,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(P,"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){p(document.head,n),i(e,J,l),i(e,m,l),i(e,s,l),f(c,e,l),i(e,t,l),f(U,e,l),i(e,Pt,l),f(ge,e,l),i(e,qt,l),f(Ue,e,l),i(e,Kt,l),i(e,Z,l),f(be,Z,null),p(Z,Gn),p(Z,pt),p(Z,Sn),p(Z,it),p(Z,Wn),f(le,Z,null),i(e,Ot,l),f(Je,e,l),i(e,en,l),i(e,I,l),f(Te,I,null),p(I,Vn),p(I,ct),p(I,An),p(I,mt),p(I,Qn),p(I,dt),p(I,Xn),f(se,I,null),i(e,tn,l),f(ke,e,l),i(e,nn,l),i(e,E,l),f($e,E,null),p(E,Nn),p(E,yt),p(E,Fn),p(E,Mt),p(E,Ln),f(re,E,null),i(e,ln,l),f(je,e,l),i(e,sn,l),f(_e,e,l),i(e,rn,l),i(e,G,l),f(Ce,G,null),p(G,Dn),p(G,ut),p(G,zn),p(G,ft),p(G,Hn),f(ae,G,null),i(e,an,l),f(ve,e,l),i(e,on,l),i(e,S,l),f(Ie,S,null),p(S,Yn),p(S,ht),p(S,Pn),p(S,wt),p(S,qn),f(oe,S,null),i(e,pn,l),f(xe,e,l),i(e,cn,l),f(Be,e,l),i(e,mn,l),i(e,W,l),f(Re,W,null),p(W,Kn),p(W,gt),p(W,On),p(W,Ut),p(W,el),f(pe,W,null),i(e,dn,l),f(Ze,e,l),i(e,yn,l),f(Ee,e,l),i(e,Mn,l),i(e,x,l),f(Ge,x,null),p(x,tl),p(x,bt),p(x,nl),p(x,Jt),p(x,ll),f(ie,x,null),p(x,sl),p(x,ce),f(Se,ce,null),p(ce,rl),p(ce,Tt),i(e,un,l),f(We,e,l),i(e,fn,l),i(e,C,l),f(Ve,C,null),p(C,al),p(C,kt),p(C,ol),p(C,$t),p(C,pl),f(me,C,null),p(C,il),p(C,jt),p(C,cl),p(C,de),f(Ae,de,null),p(de,ml),p(de,_t),i(e,hn,l),f(Qe,e,l),i(e,wn,l),i(e,v,l),f(Xe,v,null),p(v,dl),p(v,Ct),p(v,yl),p(v,vt),p(v,Ml),f(ye,v,null),p(v,ul),p(v,It),p(v,fl),p(v,Me),f(Ne,Me,null),p(Me,hl),p(Me,xt),i(e,gn,l),f(Fe,e,l),i(e,Un,l),i(e,V,l),f(Le,V,null),p(V,wl),p(V,Bt),p(V,gl),p(V,Rt),p(V,Ul),p(V,Zt),i(e,bn,l),f(De,e,l),i(e,Jn,l),i(e,L,l),f(ze,L,null),p(L,bl),p(L,Et),p(L,Jl),f(ue,L,null),i(e,Tn,l),f(He,e,l),i(e,kn,l),i(e,D,l),f(Ye,D,null),p(D,Tl),p(D,Gt),p(D,kl),f(fe,D,null),i(e,$n,l),f(Pe,e,l),i(e,jn,l),i(e,z,l),f(qe,z,null),p(z,$l),p(z,St),p(z,jl),f(he,z,null),i(e,_n,l),f(Ke,e,l),i(e,Cn,l),i(e,H,l),f(Oe,H,null),p(H,_l),p(H,Wt),p(H,Cl),f(we,H,null),i(e,vn,l),f(et,e,l),i(e,In,l),i(e,Y,l),f(tt,Y,null),p(Y,vl),p(Y,Vt),p(Y,Il),p(Y,At),i(e,xn,l),f(nt,e,l),i(e,Bn,l),i(e,P,l),f(lt,P,null),p(P,xl),p(P,Qt),p(P,Bl),p(P,Xt),i(e,Rn,l),f(st,e,l),i(e,Zn,l),i(e,Yt,l),En=!0},p(e,[l]){const q={};l&2&&(q.$$scope={dirty:l,ctx:e}),le.$set(q);const A={};l&2&&(A.$$scope={dirty:l,ctx:e}),se.$set(A);const K={};l&2&&(K.$$scope={dirty:l,ctx:e}),re.$set(K);const O={};l&2&&(O.$$scope={dirty:l,ctx:e}),ae.$set(O);const ee={};l&2&&(ee.$$scope={dirty:l,ctx:e}),oe.$set(ee);const te={};l&2&&(te.$$scope={dirty:l,ctx:e}),pe.$set(te);const Q={};l&2&&(Q.$$scope={dirty:l,ctx:e}),ie.$set(Q);const rt={};l&2&&(rt.$$scope={dirty:l,ctx:e}),me.$set(rt);const B={};l&2&&(B.$$scope={dirty:l,ctx:e}),ye.$set(B);const at={};l&2&&(at.$$scope={dirty:l,ctx:e}),ue.$set(at);const R={};l&2&&(R.$$scope={dirty:l,ctx:e}),fe.$set(R);const ot={};l&2&&(ot.$$scope={dirty:l,ctx:e}),he.$set(ot);const ne={};l&2&&(ne.$$scope={dirty:l,ctx:e}),we.$set(ne)},i(e){En||(h(c.$$.fragment,e),h(U.$$.fragment,e),h(ge.$$.fragment,e),h(Ue.$$.fragment,e),h(be.$$.fragment,e),h(le.$$.fragment,e),h(Je.$$.fragment,e),h(Te.$$.fragment,e),h(se.$$.fragment,e),h(ke.$$.fragment,e),h($e.$$.fragment,e),h(re.$$.fragment,e),h(je.$$.fragment,e),h(_e.$$.fragment,e),h(Ce.$$.fragment,e),h(ae.$$.fragment,e),h(ve.$$.fragment,e),h(Ie.$$.fragment,e),h(oe.$$.fragment,e),h(xe.$$.fragment,e),h(Be.$$.fragment,e),h(Re.$$.fragment,e),h(pe.$$.fragment,e),h(Ze.$$.fragment,e),h(Ee.$$.fragment,e),h(Ge.$$.fragment,e),h(ie.$$.fragment,e),h(Se.$$.fragment,e),h(We.$$.fragment,e),h(Ve.$$.fragment,e),h(me.$$.fragment,e),h(Ae.$$.fragment,e),h(Qe.$$.fragment,e),h(Xe.$$.fragment,e),h(ye.$$.fragment,e),h(Ne.$$.fragment,e),h(Fe.$$.fragment,e),h(Le.$$.fragment,e),h(De.$$.fragment,e),h(ze.$$.fragment,e),h(ue.$$.fragment,e),h(He.$$.fragment,e),h(Ye.$$.fragment,e),h(fe.$$.fragment,e),h(Pe.$$.fragment,e),h(qe.$$.fragment,e),h(he.$$.fragment,e),h(Ke.$$.fragment,e),h(Oe.$$.fragment,e),h(we.$$.fragment,e),h(et.$$.fragment,e),h(tt.$$.fragment,e),h(nt.$$.fragment,e),h(lt.$$.fragment,e),h(st.$$.fragment,e),En=!0)},o(e){w(c.$$.fragment,e),w(U.$$.fragment,e),w(ge.$$.fragment,e),w(Ue.$$.fragment,e),w(be.$$.fragment,e),w(le.$$.fragment,e),w(Je.$$.fragment,e),w(Te.$$.fragment,e),w(se.$$.fragment,e),w(ke.$$.fragment,e),w($e.$$.fragment,e),w(re.$$.fragment,e),w(je.$$.fragment,e),w(_e.$$.fragment,e),w(Ce.$$.fragment,e),w(ae.$$.fragment,e),w(ve.$$.fragment,e),w(Ie.$$.fragment,e),w(oe.$$.fragment,e),w(xe.$$.fragment,e),w(Be.$$.fragment,e),w(Re.$$.fragment,e),w(pe.$$.fragment,e),w(Ze.$$.fragment,e),w(Ee.$$.fragment,e),w(Ge.$$.fragment,e),w(ie.$$.fragment,e),w(Se.$$.fragment,e),w(We.$$.fragment,e),w(Ve.$$.fragment,e),w(me.$$.fragment,e),w(Ae.$$.fragment,e),w(Qe.$$.fragment,e),w(Xe.$$.fragment,e),w(ye.$$.fragment,e),w(Ne.$$.fragment,e),w(Fe.$$.fragment,e),w(Le.$$.fragment,e),w(De.$$.fragment,e),w(ze.$$.fragment,e),w(ue.$$.fragment,e),w(He.$$.fragment,e),w(Ye.$$.fragment,e),w(fe.$$.fragment,e),w(Pe.$$.fragment,e),w(qe.$$.fragment,e),w(he.$$.fragment,e),w(Ke.$$.fragment,e),w(Oe.$$.fragment,e),w(we.$$.fragment,e),w(et.$$.fragment,e),w(tt.$$.fragment,e),w(nt.$$.fragment,e),w(lt.$$.fragment,e),w(st.$$.fragment,e),En=!1},d(e){e&&(r(J),r(m),r(s),r(t),r(Pt),r(qt),r(Kt),r(Z),r(Ot),r(en),r(I),r(tn),r(nn),r(E),r(ln),r(sn),r(rn),r(G),r(an),r(on),r(S),r(pn),r(cn),r(mn),r(W),r(dn),r(yn),r(Mn),r(x),r(un),r(fn),r(C),r(hn),r(wn),r(v),r(gn),r(Un),r(V),r(bn),r(Jn),r(L),r(Tn),r(kn),r(D),r($n),r(jn),r(z),r(_n),r(Cn),r(H),r(vn),r(In),r(Y),r(xn),r(Bn),r(P),r(Rn),r(Zn),r(Yt)),r(n),g(c,e),g(U,e),g(ge,e),g(Ue,e),g(be),g(le),g(Je,e),g(Te),g(se),g(ke,e),g($e),g(re),g(je,e),g(_e,e),g(Ce),g(ae),g(ve,e),g(Ie),g(oe),g(xe,e),g(Be,e),g(Re),g(pe),g(Ze,e),g(Ee,e),g(Ge),g(ie),g(Se),g(We,e),g(Ve),g(me),g(Ae),g(Qe,e),g(Xe),g(ye),g(Ne),g(Fe,e),g(Le),g(De,e),g(ze),g(ue),g(He,e),g(Ye),g(fe),g(Pe,e),g(qe),g(he),g(Ke,e),g(Oe),g(we),g(et,e),g(tt),g(nt,e),g(lt),g(st,e)}}}const Es='{"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":"CUDAProperties","local":"kernels.CUDAProperties","sections":[],"depth":3},{"title":"ROCMProperties","local":"kernels.ROCMProperties","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 Gs(T){return us(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ns extends fs{constructor(n){super(),hs(this,n,Gs,Zs,Ms,{})}}export{Ns as component}; | |
Xet Storage Details
- Size:
- 73.3 kB
- Xet hash:
- 2ee9eaf4d0d7914d38e4c02f5b355e3a92c153f3b9ddfa85caa3749b52a519aa
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.