import{s as k,n as C,o as H}from"../chunks/scheduler.182ea377.js";import{S as E,i as M,g as m,s as p,r as O,A as S,h as u,f as o,c as h,j as b,u as z,x as P,k as T,y as A,a as n,v as L,d as q,t as D,w as G}from"../chunks/index.1ea56653.js";import{H as N,g as R}from"../chunks/Heading.71ac6e9f.js";function j(y){let a,f,l,d,i,w,s,x="Generating high-quality outputs is computationally intensive, especially during each iterative step where you go from a noisy output to a less noisy output. One of 🤗 Diffuser’s goals is to make this technology widely accessible to everyone, which includes enabling fast inference on consumer and specialized hardware.",g,r,$='This section will cover tips and tricks - like half-precision weights and sliced attention - for optimizing inference speed and reducing memory-consumption. You’ll also learn how to speed up your PyTorch code with <a href="https://pytorch.org/tutorials/intermediate/torch_compile_tutorial.html" rel="nofollow"><code>torch.compile</code></a> or <a href="https://onnxruntime.ai/docs/" rel="nofollow">ONNX Runtime</a>, and enable memory-efficient attention with <a href="https://facebookresearch.github.io/xformers/" rel="nofollow">xFormers</a>. There are also guides for running inference on specific hardware like Apple Silicon, and Intel or Habana processors.',v,c,_;return i=new N({props:{title:"Overview",local:"overview",headingTag:"h1"}}),{c(){a=m("meta"),f=p(),l=m("p"),d=p(),O(i.$$.fragment),w=p(),s=m("p"),s.textContent=x,g=p(),r=m("p"),r.innerHTML=$,v=p(),c=m("p"),this.h()},l(e){const t=S("svelte-u9bgzb",document.head);a=u(t,"META",{name:!0,content:!0}),t.forEach(o),f=h(e),l=u(e,"P",{}),b(l).forEach(o),d=h(e),z(i.$$.fragment,e),w=h(e),s=u(e,"P",{"data-svelte-h":!0}),P(s)!=="svelte-66u7th"&&(s.textContent=x),g=h(e),r=u(e,"P",{"data-svelte-h":!0}),P(r)!=="svelte-r3bxis"&&(r.innerHTML=$),v=h(e),c=u(e,"P",{}),b(c).forEach(o),this.h()},h(){T(a,"name","hf:doc:metadata"),T(a,"content",F)},m(e,t){A(document.head,a),n(e,f,t),n(e,l,t),n(e,d,t),L(i,e,t),n(e,w,t),n(e,s,t),n(e,g,t),n(e,r,t),n(e,v,t),n(e,c,t),_=!0},p:C,i(e){_||(q(i.$$.fragment,e),_=!0)},o(e){D(i.$$.fragment,e),_=!1},d(e){e&&(o(f),o(l),o(d),o(w),o(s),o(g),o(r),o(v),o(c)),o(a),G(i,e)}}}const F='{"title":"Overview","local":"overview","sections":[],"depth":1}';function I(y){return H(()=>{new URLSearchParams(window.location.search).get("fw"),window.hfDocGoto=R}),[]}class B extends E{constructor(a){super(),M(this,a,I,j,k,{})}}export{B as component};
