import{S as At,i as St,s as kt,e as o,k as d,w as W,t as s,M as Ct,c as r,d as i,m as f,a,x as Y,h as p,b as c,G as t,g as l,y as Z,q as ee,o as ie,B as te,v as Nt}from"../chunks/vendor-hf-doc-builder.js";import{T as Jt}from"../chunks/Tip-hf-doc-builder.js";import{I as ce}from"../chunks/IconCopyLink-hf-doc-builder.js";function Lt(je){let m,I,v,h,P;return{c(){m=o("p"),I=s("per PyTorch >= 1.14.0. JIT-mode potrebe giovare a qualsiasi modello di prediction e evaluaion visto che il dict input \xE8 supportato in jit.trace"),v=d(),h=o("p"),P=s(`per PyTorch < 1.14.0. JIT-mode potrebbe giovare ai modelli il cui ordine dei parametri corrisponde all\u2019ordine delle tuple in ingresso in jit.trace, come i modelli per question-answering.
Nel caso in cui l\u2019ordine dei parametri seguenti non corrisponda all\u2019ordine delle tuple in ingresso in jit.trace, come nei modelli di text-classification, jit.trace fallir\xE0 e lo cattureremo con una eccezione al fine di renderlo un fallback. Il logging \xE8 usato per notificare gli utenti.`)},l(u){m=r(u,"P",{});var _=a(m);I=p(_,"per PyTorch >= 1.14.0. JIT-mode potrebe giovare a qualsiasi modello di prediction e evaluaion visto che il dict input \xE8 supportato in jit.trace"),_.forEach(i),v=f(u),h=r(u,"P",{});var w=a(h);P=p(w,`per PyTorch < 1.14.0. JIT-mode potrebbe giovare ai modelli il cui ordine dei parametri corrisponde all\u2019ordine delle tuple in ingresso in jit.trace, come i modelli per question-answering.
Nel caso in cui l\u2019ordine dei parametri seguenti non corrisponda all\u2019ordine delle tuple in ingresso in jit.trace, come nei modelli di text-classification, jit.trace fallir\xE0 e lo cattureremo con una eccezione al fine di renderlo un fallback. Il logging \xE8 usato per notificare gli utenti.`),w.forEach(i)},m(u,_){l(u,m,_),t(m,I),l(u,v,_),l(u,h,_),t(h,P)},d(u){u&&i(m),u&&i(v),u&&i(h)}}}function Ut(je){let m,I,v,h,P,u,_,w,ai,qe,oe,ni,Ae,E,x,de,U,li,re,fe,si,pi,Se,z,ci,ue,di,fi,X,ui,mi,ke,g,j,me,B,hi,he,vi,Ce,ae,_i,Ne,q,zi,O,Pi,Ei,Je,b,A,ve,G,gi,_e,bi,Le,ne,Ti,Ue,S,yi,M,$i,Ii,Xe,T,k,ze,H,wi,Pe,xi,Be,C,ji,F,qi,Ai,Oe,y,N,Ee,Q,Si,ge,ki,Ge,J,Ci,be,Ni,Ji,Me,L,He,V,Li,D,Ui,Fe,le,Te,Xi,Qe,R,Bi,ye,Oi,Ve,se,$e,Gi,De,$,Mi,Ie,Hi,Fi,we,Qi,Re;return u=new ce({}),U=new ce({}),B=new ce({}),G=new ce({}),H=new ce({}),Q=new ce({}),L=new Jt({props:{warning:!0,$$slots:{default:[Lt]},$$scope:{ctx:je}}}),{c(){m=o("meta"),I=d(),v=o("h1"),h=o("a"),P=o("span"),W(u.$$.fragment),_=d(),w=o("span"),ai=s("Inferenza Efficiente su CPU"),qe=d(),oe=o("p"),ni=s("Questa guida si concentra sull\u2019inferenza di modelli di grandi dimensioni in modo efficiente sulla CPU."),Ae=d(),E=o("h2"),x=o("a"),de=o("span"),W(U.$$.fragment),li=d(),re=o("span"),fe=o("code"),si=s("BetterTransformer"),pi=s(" per inferenza pi\xF9 rapida"),Se=d(),z=o("p"),ci=s("Abbiamo integrato di recente "),ue=o("code"),di=s("BetterTransformer"),fi=s(" per fare inferenza pi\xF9 rapidamente con modelli per testi, immagini e audio. Visualizza la documentazione sull\u2019integrazione "),X=o("a"),ui=s("qui"),mi=s(" per maggiori dettagli."),ke=d(),g=o("h2"),j=o("a"),me=o("span"),W(B.$$.fragment),hi=d(),he=o("span"),vi=s("PyTorch JIT-mode (TorchScript)"),Ce=d(),ae=o("p"),_i=s(`TorchScript \xE8 un modo di creare modelli serializzabili e ottimizzabili da codice PyTorch. Ogni programmma TorchScript pu\xF2 esere salvato da un processo Python  e caricato in un processo dove non ci sono dipendenze Python.
Comparandolo con l\u2019eager mode di default, jit mode in PyTorch normalmente fornisce prestazioni migliori per l\u2019inferenza del modello da parte di metodologie di ottimizzazione come la operator fusion.`),Ne=d(),q=o("p"),zi=s("Per una prima introduzione a TorchScript, vedi la Introduction to "),O=o("a"),Pi=s("PyTorch TorchScript tutorial"),Ei=s("."),Je=d(),b=o("h3"),A=o("a"),ve=o("span"),W(G.$$.fragment),gi=d(),_e=o("span"),bi=s("IPEX Graph Optimization con JIT-mode"),Le=d(),ne=o("p"),Ti=s("Intel\xAE Extension per PyTorch fornnisce ulteriori ottimizzazioni in jit mode per i modelli della serie Transformers. Consigliamo vivamente agli utenti di usufruire dei vantaggi di Intel\xAE Extension per PyTorch con jit mode. Alcuni operator patterns usati fequentemente dai modelli Transformers models sono gi\xE0 supportati in Intel\xAE Extension per PyTorch con jit mode fusions. Questi fusion patterns come Multi-head-attention fusion, Concat Linear, Linear+Add, Linear+Gelu, Add+LayerNorm fusion and etc. sono abilitati e hanno buone performance. I benefici della fusion \xE8 fornito agli utenti in modo trasparente. In base alle analisi, il ~70% dei problemi pi\xF9 popolari in NLP question-answering, text-classification, and token-classification possono avere benefici sulle performance grazie ai fusion patterns sia per Float32 precision che per BFloat16 Mixed precision."),Ue=d(),S=o("p"),yi=s("Vedi maggiori informazioni per "),M=o("a"),$i=s("IPEX Graph Optimization"),Ii=s("."),Xe=d(),T=o("h4"),k=o("a"),ze=o("span"),W(H.$$.fragment),wi=d(),Pe=o("span"),xi=s("Installazione di IPEX"),Be=d(),C=o("p"),ji=s("I rilasci di IPEX seguono PyTorch, verifica i vari approcci per "),F=o("a"),qi=s("IPEX installation"),Ai=s("."),Oe=d(),y=o("h3"),N=o("a"),Ee=o("span"),W(Q.$$.fragment),Si=d(),ge=o("span"),ki=s("Utilizzo del JIT-mode"),Ge=d(),J=o("p"),Ci=s("Per abilitare JIT-mode in Trainer per evaluation e prediction, devi aggiungere "),be=o("code"),Ni=s("jit_mode_eval"),Ji=s(" negli argomenti di Trainer."),Me=d(),W(L.$$.fragment),He=d(),V=o("p"),Li=s("Trovi un esempo con caso d\u2019uso in "),D=o("a"),Ui=s("Transformers question-answering"),Fe=d(),le=o("ul"),Te=o("li"),Xi=s("Inference using jit mode on CPU:"),Qe=d(),R=o("pre"),Bi=s(`python run_qa.py \\
--model_name_or_path csarron/bert-base-uncased-squad-v1 \\
--dataset_name squad \\
--do_eval \\
--max_seq_length 384 \\
--doc_stride 128 \\
--output_dir /tmp/ \\
--no_cuda \\
`),ye=o("b"),Oi=s("--jit_mode_eval "),Ve=d(),se=o("ul"),$e=o("li"),Gi=s("Inference with IPEX using jit mode on CPU:"),De=d(),$=o("pre"),Mi=s(`python run_qa.py \\
--model_name_or_path csarron/bert-base-uncased-squad-v1 \\
--dataset_name squad \\
--do_eval \\
--max_seq_length 384 \\
--doc_stride 128 \\
--output_dir /tmp/ \\
--no_cuda \\
`),Ie=o("b"),Hi=s("--use_ipex \\"),Fi=s(`
`),we=o("b"),Qi=s("--jit_mode_eval"),this.h()},l(e){const n=Ct('[data-svelte="svelte-1phssyn"]',document.head);m=r(n,"META",{name:!0,content:!0}),n.forEach(i),I=f(e),v=r(e,"H1",{class:!0});var K=a(v);h=r(K,"A",{id:!0,class:!0,href:!0});var Ki=a(h);P=r(Ki,"SPAN",{});var Wi=a(P);Y(u.$$.fragment,Wi),Wi.forEach(i),Ki.forEach(i),_=f(K),w=r(K,"SPAN",{});var Yi=a(w);ai=p(Yi,"Inferenza Efficiente su CPU"),Yi.forEach(i),K.forEach(i),qe=f(e),oe=r(e,"P",{});var Zi=a(oe);ni=p(Zi,"Questa guida si concentra sull\u2019inferenza di modelli di grandi dimensioni in modo efficiente sulla CPU."),Zi.forEach(i),Ae=f(e),E=r(e,"H2",{class:!0});var Ke=a(E);x=r(Ke,"A",{id:!0,class:!0,href:!0});var et=a(x);de=r(et,"SPAN",{});var it=a(de);Y(U.$$.fragment,it),it.forEach(i),et.forEach(i),li=f(Ke),re=r(Ke,"SPAN",{});var Vi=a(re);fe=r(Vi,"CODE",{});var tt=a(fe);si=p(tt,"BetterTransformer"),tt.forEach(i),pi=p(Vi," per inferenza pi\xF9 rapida"),Vi.forEach(i),Ke.forEach(i),Se=f(e),z=r(e,"P",{});var pe=a(z);ci=p(pe,"Abbiamo integrato di recente "),ue=r(pe,"CODE",{});var ot=a(ue);di=p(ot,"BetterTransformer"),ot.forEach(i),fi=p(pe," per fare inferenza pi\xF9 rapidamente con modelli per testi, immagini e audio. Visualizza la documentazione sull\u2019integrazione "),X=r(pe,"A",{href:!0,rel:!0});var rt=a(X);ui=p(rt,"qui"),rt.forEach(i),mi=p(pe," per maggiori dettagli."),pe.forEach(i),ke=f(e),g=r(e,"H2",{class:!0});var We=a(g);j=r(We,"A",{id:!0,class:!0,href:!0});var at=a(j);me=r(at,"SPAN",{});var nt=a(me);Y(B.$$.fragment,nt),nt.forEach(i),at.forEach(i),hi=f(We),he=r(We,"SPAN",{});var lt=a(he);vi=p(lt,"PyTorch JIT-mode (TorchScript)"),lt.forEach(i),We.forEach(i),Ce=f(e),ae=r(e,"P",{});var st=a(ae);_i=p(st,`TorchScript \xE8 un modo di creare modelli serializzabili e ottimizzabili da codice PyTorch. Ogni programmma TorchScript pu\xF2 esere salvato da un processo Python  e caricato in un processo dove non ci sono dipendenze Python.
Comparandolo con l\u2019eager mode di default, jit mode in PyTorch normalmente fornisce prestazioni migliori per l\u2019inferenza del modello da parte di metodologie di ottimizzazione come la operator fusion.`),st.forEach(i),Ne=f(e),q=r(e,"P",{});var Ye=a(q);zi=p(Ye,"Per una prima introduzione a TorchScript, vedi la Introduction to "),O=r(Ye,"A",{href:!0,rel:!0});var pt=a(O);Pi=p(pt,"PyTorch TorchScript tutorial"),pt.forEach(i),Ei=p(Ye,"."),Ye.forEach(i),Je=f(e),b=r(e,"H3",{class:!0});var Ze=a(b);A=r(Ze,"A",{id:!0,class:!0,href:!0});var ct=a(A);ve=r(ct,"SPAN",{});var dt=a(ve);Y(G.$$.fragment,dt),dt.forEach(i),ct.forEach(i),gi=f(Ze),_e=r(Ze,"SPAN",{});var ft=a(_e);bi=p(ft,"IPEX Graph Optimization con JIT-mode"),ft.forEach(i),Ze.forEach(i),Le=f(e),ne=r(e,"P",{});var ut=a(ne);Ti=p(ut,"Intel\xAE Extension per PyTorch fornnisce ulteriori ottimizzazioni in jit mode per i modelli della serie Transformers. Consigliamo vivamente agli utenti di usufruire dei vantaggi di Intel\xAE Extension per PyTorch con jit mode. Alcuni operator patterns usati fequentemente dai modelli Transformers models sono gi\xE0 supportati in Intel\xAE Extension per PyTorch con jit mode fusions. Questi fusion patterns come Multi-head-attention fusion, Concat Linear, Linear+Add, Linear+Gelu, Add+LayerNorm fusion and etc. sono abilitati e hanno buone performance. I benefici della fusion \xE8 fornito agli utenti in modo trasparente. In base alle analisi, il ~70% dei problemi pi\xF9 popolari in NLP question-answering, text-classification, and token-classification possono avere benefici sulle performance grazie ai fusion patterns sia per Float32 precision che per BFloat16 Mixed precision."),ut.forEach(i),Ue=f(e),S=r(e,"P",{});var ei=a(S);yi=p(ei,"Vedi maggiori informazioni per "),M=r(ei,"A",{href:!0,rel:!0});var mt=a(M);$i=p(mt,"IPEX Graph Optimization"),mt.forEach(i),Ii=p(ei,"."),ei.forEach(i),Xe=f(e),T=r(e,"H4",{class:!0});var ii=a(T);k=r(ii,"A",{id:!0,class:!0,href:!0});var ht=a(k);ze=r(ht,"SPAN",{});var vt=a(ze);Y(H.$$.fragment,vt),vt.forEach(i),ht.forEach(i),wi=f(ii),Pe=r(ii,"SPAN",{});var _t=a(Pe);xi=p(_t,"Installazione di IPEX"),_t.forEach(i),ii.forEach(i),Be=f(e),C=r(e,"P",{});var ti=a(C);ji=p(ti,"I rilasci di IPEX seguono PyTorch, verifica i vari approcci per "),F=r(ti,"A",{href:!0,rel:!0});var zt=a(F);qi=p(zt,"IPEX installation"),zt.forEach(i),Ai=p(ti,"."),ti.forEach(i),Oe=f(e),y=r(e,"H3",{class:!0});var oi=a(y);N=r(oi,"A",{id:!0,class:!0,href:!0});var Pt=a(N);Ee=r(Pt,"SPAN",{});var Et=a(Ee);Y(Q.$$.fragment,Et),Et.forEach(i),Pt.forEach(i),Si=f(oi),ge=r(oi,"SPAN",{});var gt=a(ge);ki=p(gt,"Utilizzo del JIT-mode"),gt.forEach(i),oi.forEach(i),Ge=f(e),J=r(e,"P",{});var ri=a(J);Ci=p(ri,"Per abilitare JIT-mode in Trainer per evaluation e prediction, devi aggiungere "),be=r(ri,"CODE",{});var bt=a(be);Ni=p(bt,"jit_mode_eval"),bt.forEach(i),Ji=p(ri," negli argomenti di Trainer."),ri.forEach(i),Me=f(e),Y(L.$$.fragment,e),He=f(e),V=r(e,"P",{});var Di=a(V);Li=p(Di,"Trovi un esempo con caso d\u2019uso in "),D=r(Di,"A",{href:!0,rel:!0});var Tt=a(D);Ui=p(Tt,"Transformers question-answering"),Tt.forEach(i),Di.forEach(i),Fe=f(e),le=r(e,"UL",{});var yt=a(le);Te=r(yt,"LI",{});var $t=a(Te);Xi=p($t,"Inference using jit mode on CPU:"),$t.forEach(i),yt.forEach(i),Qe=f(e),R=r(e,"PRE",{});var Ri=a(R);Bi=p(Ri,`python run_qa.py \\
--model_name_or_path csarron/bert-base-uncased-squad-v1 \\
--dataset_name squad \\
--do_eval \\
--max_seq_length 384 \\
--doc_stride 128 \\
--output_dir /tmp/ \\
--no_cuda \\
`),ye=r(Ri,"B",{});var It=a(ye);Oi=p(It,"--jit_mode_eval "),It.forEach(i),Ri.forEach(i),Ve=f(e),se=r(e,"UL",{});var wt=a(se);$e=r(wt,"LI",{});var xt=a($e);Gi=p(xt,"Inference with IPEX using jit mode on CPU:"),xt.forEach(i),wt.forEach(i),De=f(e),$=r(e,"PRE",{});var xe=a($);Mi=p(xe,`python run_qa.py \\
--model_name_or_path csarron/bert-base-uncased-squad-v1 \\
--dataset_name squad \\
--do_eval \\
--max_seq_length 384 \\
--doc_stride 128 \\
--output_dir /tmp/ \\
--no_cuda \\
`),Ie=r(xe,"B",{});var jt=a(Ie);Hi=p(jt,"--use_ipex \\"),jt.forEach(i),Fi=p(xe,`
`),we=r(xe,"B",{});var qt=a(we);Qi=p(qt,"--jit_mode_eval"),qt.forEach(i),xe.forEach(i),this.h()},h(){c(m,"name","hf:doc:metadata"),c(m,"content",JSON.stringify(Xt)),c(h,"id","inferenza-efficiente-su-cpu"),c(h,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),c(h,"href","#inferenza-efficiente-su-cpu"),c(v,"class","relative group"),c(x,"id","bettertransformer-per-inferenza-pi-rapida"),c(x,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),c(x,"href","#bettertransformer-per-inferenza-pi-rapida"),c(E,"class","relative group"),c(X,"href","https://huggingface.co/docs/optimum/bettertransformer/overview"),c(X,"rel","nofollow"),c(j,"id","pytorch-jitmode-torchscript"),c(j,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),c(j,"href","#pytorch-jitmode-torchscript"),c(g,"class","relative group"),c(O,"href","https://pytorch.org/tutorials/beginner/Intro_to_TorchScript_tutorial.html#tracing-modules"),c(O,"rel","nofollow"),c(A,"id","ipex-graph-optimization-con-jitmode"),c(A,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),c(A,"href","#ipex-graph-optimization-con-jitmode"),c(b,"class","relative group"),c(M,"href","https://intel.github.io/intel-extension-for-pytorch/cpu/latest/tutorials/features/graph_optimization.html"),c(M,"rel","nofollow"),c(k,"id","installazione-di-ipex"),c(k,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),c(k,"href","#installazione-di-ipex"),c(T,"class","relative group"),c(F,"href","https://intel.github.io/intel-extension-for-pytorch/"),c(F,"rel","nofollow"),c(N,"id","utilizzo-del-jitmode"),c(N,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),c(N,"href","#utilizzo-del-jitmode"),c(y,"class","relative group"),c(D,"href","https://github.com/huggingface/transformers/tree/main/examples/pytorch/question-answering"),c(D,"rel","nofollow")},m(e,n){t(document.head,m),l(e,I,n),l(e,v,n),t(v,h),t(h,P),Z(u,P,null),t(v,_),t(v,w),t(w,ai),l(e,qe,n),l(e,oe,n),t(oe,ni),l(e,Ae,n),l(e,E,n),t(E,x),t(x,de),Z(U,de,null),t(E,li),t(E,re),t(re,fe),t(fe,si),t(re,pi),l(e,Se,n),l(e,z,n),t(z,ci),t(z,ue),t(ue,di),t(z,fi),t(z,X),t(X,ui),t(z,mi),l(e,ke,n),l(e,g,n),t(g,j),t(j,me),Z(B,me,null),t(g,hi),t(g,he),t(he,vi),l(e,Ce,n),l(e,ae,n),t(ae,_i),l(e,Ne,n),l(e,q,n),t(q,zi),t(q,O),t(O,Pi),t(q,Ei),l(e,Je,n),l(e,b,n),t(b,A),t(A,ve),Z(G,ve,null),t(b,gi),t(b,_e),t(_e,bi),l(e,Le,n),l(e,ne,n),t(ne,Ti),l(e,Ue,n),l(e,S,n),t(S,yi),t(S,M),t(M,$i),t(S,Ii),l(e,Xe,n),l(e,T,n),t(T,k),t(k,ze),Z(H,ze,null),t(T,wi),t(T,Pe),t(Pe,xi),l(e,Be,n),l(e,C,n),t(C,ji),t(C,F),t(F,qi),t(C,Ai),l(e,Oe,n),l(e,y,n),t(y,N),t(N,Ee),Z(Q,Ee,null),t(y,Si),t(y,ge),t(ge,ki),l(e,Ge,n),l(e,J,n),t(J,Ci),t(J,be),t(be,Ni),t(J,Ji),l(e,Me,n),Z(L,e,n),l(e,He,n),l(e,V,n),t(V,Li),t(V,D),t(D,Ui),l(e,Fe,n),l(e,le,n),t(le,Te),t(Te,Xi),l(e,Qe,n),l(e,R,n),t(R,Bi),t(R,ye),t(ye,Oi),l(e,Ve,n),l(e,se,n),t(se,$e),t($e,Gi),l(e,De,n),l(e,$,n),t($,Mi),t($,Ie),t(Ie,Hi),t($,Fi),t($,we),t(we,Qi),Re=!0},p(e,[n]){const K={};n&2&&(K.$$scope={dirty:n,ctx:e}),L.$set(K)},i(e){Re||(ee(u.$$.fragment,e),ee(U.$$.fragment,e),ee(B.$$.fragment,e),ee(G.$$.fragment,e),ee(H.$$.fragment,e),ee(Q.$$.fragment,e),ee(L.$$.fragment,e),Re=!0)},o(e){ie(u.$$.fragment,e),ie(U.$$.fragment,e),ie(B.$$.fragment,e),ie(G.$$.fragment,e),ie(H.$$.fragment,e),ie(Q.$$.fragment,e),ie(L.$$.fragment,e),Re=!1},d(e){i(m),e&&i(I),e&&i(v),te(u),e&&i(qe),e&&i(oe),e&&i(Ae),e&&i(E),te(U),e&&i(Se),e&&i(z),e&&i(ke),e&&i(g),te(B),e&&i(Ce),e&&i(ae),e&&i(Ne),e&&i(q),e&&i(Je),e&&i(b),te(G),e&&i(Le),e&&i(ne),e&&i(Ue),e&&i(S),e&&i(Xe),e&&i(T),te(H),e&&i(Be),e&&i(C),e&&i(Oe),e&&i(y),te(Q),e&&i(Ge),e&&i(J),e&&i(Me),te(L,e),e&&i(He),e&&i(V),e&&i(Fe),e&&i(le),e&&i(Qe),e&&i(R),e&&i(Ve),e&&i(se),e&&i(De),e&&i($)}}}const Xt={local:"inferenza-efficiente-su-cpu",sections:[{local:"bettertransformer-per-inferenza-pi-rapida",title:"`BetterTransformer` per inferenza pi\xF9 rapida"},{local:"pytorch-jitmode-torchscript",sections:[{local:"ipex-graph-optimization-con-jitmode",sections:[{local:"installazione-di-ipex",title:"Installazione di IPEX"}],title:"IPEX Graph Optimization con JIT-mode"},{local:"utilizzo-del-jitmode",title:"Utilizzo del JIT-mode"}],title:"PyTorch JIT-mode (TorchScript)"}],title:"Inferenza Efficiente su CPU"};function Bt(je){return Nt(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ht extends At{constructor(m){super();St(this,m,Bt,Ut,kt,{})}}export{Ht as default,Xt as metadata};
