import{s as A,n as N,o as O}from"../chunks/scheduler.6e0d5ff7.js";import{S as R,i as j,g as u,s as m,r as E,E as q,h,f as a,c,j as C,u as H,x as T,k,y as D,a as n,v as M,d as S,t as L,w as z}from"../chunks/index.d7c1b260.js";import{H as F,E as G}from"../chunks/EditOnGithub.733546da.js";function I(v){let o,d,f,_,s,$,i,P="노이즈가 많은 출력에서 적은 출력으로 만드는 과정으로 고품질 생성 모델의 출력을 만드는 각각의 반복되는 스텝은 많은 계산이 필요합니다. 🧨 Diffuser의 목표 중 하나는 모든 사람이 이 기술을 널리 이용할 수 있도록 하는 것이며, 여기에는 소비자 및 특수 하드웨어에서 빠른 추론을 가능하게 하는 것을 포함합니다.",g,r,y='이 섹션에서는 추론 속도를 최적화하고 메모리 소비를 줄이기 위한 반정밀(half-precision) 가중치 및 sliced attention과 같은 팁과 요령을 다룹니다. 또한 <a href="https://pytorch.org/tutorials/intermediate/torch_compile_tutorial.html" rel="nofollow"><code>torch.compile</code></a> 또는 <a href="https://onnxruntime.ai/docs/" rel="nofollow">ONNX Runtime</a>을 사용하여 PyTorch 코드의 속도를 높이고, <a href="https://facebookresearch.github.io/xformers/" rel="nofollow">xFormers</a>를 사용하여 memory-efficient attention을 활성화하는 방법을 배울 수 있습니다. Apple Silicon, Intel 또는 Habana 프로세서와 같은 특정 하드웨어에서 추론을 실행하기 위한 가이드도 있습니다.',w,l,x,p,b;return s=new F({props:{title:"개요",local:"개요",headingTag:"h1"}}),l=new G({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/ko/optimization/opt_overview.md"}}),{c(){o=u("meta"),d=m(),f=u("p"),_=m(),E(s.$$.fragment),$=m(),i=u("p"),i.textContent=P,g=m(),r=u("p"),r.innerHTML=y,w=m(),E(l.$$.fragment),x=m(),p=u("p"),this.h()},l(t){const e=q("svelte-u9bgzb",document.head);o=h(e,"META",{name:!0,content:!0}),e.forEach(a),d=c(t),f=h(t,"P",{}),C(f).forEach(a),_=c(t),H(s.$$.fragment,t),$=c(t),i=h(t,"P",{"data-svelte-h":!0}),T(i)!=="svelte-1mwwk00"&&(i.textContent=P),g=c(t),r=h(t,"P",{"data-svelte-h":!0}),T(r)!=="svelte-5nagno"&&(r.innerHTML=y),w=c(t),H(l.$$.fragment,t),x=c(t),p=h(t,"P",{}),C(p).forEach(a),this.h()},h(){k(o,"name","hf:doc:metadata"),k(o,"content",U)},m(t,e){D(document.head,o),n(t,d,e),n(t,f,e),n(t,_,e),M(s,t,e),n(t,$,e),n(t,i,e),n(t,g,e),n(t,r,e),n(t,w,e),M(l,t,e),n(t,x,e),n(t,p,e),b=!0},p:N,i(t){b||(S(s.$$.fragment,t),S(l.$$.fragment,t),b=!0)},o(t){L(s.$$.fragment,t),L(l.$$.fragment,t),b=!1},d(t){t&&(a(d),a(f),a(_),a($),a(i),a(g),a(r),a(w),a(x),a(p)),a(o),z(s,t),z(l,t)}}}const U='{"title":"개요","local":"개요","sections":[],"depth":1}';function X(v){return O(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Q extends R{constructor(o){super(),j(this,o,X,I,A,{})}}export{Q as component};
