import{s as nn,o as ln,n as an}from"../chunks/scheduler.36a0863c.js";import{S as on,i as rn,g as i,s as o,u,A as sn,h as a,f as t,c as r,j as d,v as m,y as p,k as s,o as c,a as l,w as f,d as M,t as v,x as _}from"../chunks/index.d0f7a4c4.js";import{T as pn}from"../chunks/Tip.4c7d7eb1.js";import{I as Ce}from"../chunks/IconCopyLink.bc5fad79.js";import{C as we}from"../chunks/CodeBlock.69433f87.js";function cn($e){let h,z=`oneccl_bindings_for_pytorch 1.12.0 prebuilt wheel does not work with PyTorch 1.12.1 (it is for PyTorch 1.12.0)
PyTorch 1.12.1 should work with oneccl_bindings_for_pytorch 1.12.100`;return{c(){h=i("p"),h.textContent=z},l(C){h=a(C,"P",{"data-svelte-h":!0}),p(h)!=="svelte-is6c7w"&&(h.textContent=z)},m(C,he){l(C,h,he)},p:an,d(C){C&&t(h)}}}function dn($e){let h,z,C,he,w,U,ye,L,ut,ue,Ct="Addestramento effciente su multiple CPU",Ie,A,wt="Quando l’addestramento su una singola CPU è troppo lento, possiamo usare CPU multiple. Quasta guida si concentra su DDP basato su PyTorch abilitando l’addetramento distribuito su CPU in maniera efficiente.",Pe,y,J,be,N,mt,me,yt="Intel® oneCCL Bindings per PyTorch",Ee,X,bt='<a href="https://github.com/oneapi-src/oneCCL" rel="nofollow">Intel® oneCCL</a> (collective communications library) è una libreria per l’addestramento efficiente del deep learning in distribuito e implementa collettivi come allreduce, allgather, alltoall. Per maggiori informazioni su oneCCL, fai riferimento a <a href="https://spec.oneapi.com/versions/latest/elements/oneCCL/source/index.html" rel="nofollow">oneCCL documentation</a> e <a href="https://spec.oneapi.com/versions/latest/elements/oneCCL/source/index.html" rel="nofollow">oneCCL specification</a>.',je,k,gt="Il modulo <code>oneccl_bindings_for_pytorch</code> (<code>torch_ccl</code> precedentemente alla versione 1.12)  implementa PyTorch C10D ProcessGroup API e può essere caricato dinamicamente com external ProcessGroup e funziona solo su piattaforma Linux al momento.",ze,R,Tt='Qui trovi informazioni più dettagliate per <a href="https://github.com/intel/torch-ccl" rel="nofollow">oneccl_bind_pt</a>.',Le,b,$,ge,B,ft,fe,xt="Intel® oneCCL Bindings per l'installazione PyTorch:",Ae,Z,Ut="I file wheel sono disponibili per le seguenti versioni di Python:",Ne,H,Jt='<thead><tr><th align="center">Extension Version</th> <th align="center">Python 3.6</th> <th align="center">Python 3.7</th> <th align="center">Python 3.8</th> <th align="center">Python 3.9</th> <th align="center">Python 3.10</th></tr></thead> <tbody><tr><td align="center">1.13.0</td> <td align="center"></td> <td align="center">√</td> <td align="center">√</td> <td align="center">√</td> <td align="center">√</td></tr> <tr><td align="center">1.12.100</td> <td align="center"></td> <td align="center">√</td> <td align="center">√</td> <td align="center">√</td> <td align="center">√</td></tr> <tr><td align="center">1.12.0</td> <td align="center"></td> <td align="center">√</td> <td align="center">√</td> <td align="center">√</td> <td align="center">√</td></tr> <tr><td align="center">1.11.0</td> <td align="center"></td> <td align="center">√</td> <td align="center">√</td> <td align="center">√</td> <td align="center">√</td></tr> <tr><td align="center">1.10.0</td> <td align="center">√</td> <td align="center">√</td> <td align="center">√</td> <td align="center">√</td> <td align="center"></td></tr></tbody>',Xe,S,ke,G,$t=`dove <code>{pytorch_version}</code> deve essere la tua versione di PyTorch, per l’stanza 1.13.0.
Verifica altri approcci per <a href="https://github.com/intel/torch-ccl" rel="nofollow">oneccl_bind_pt installation</a>.
Le versioni di oneCCL e PyTorch devono combaciare.`,Re,I,Be,g,P,Te,V,Mt,Me,It="Intel® MPI library",Ze,W,Pt="Usa questa implementazione basata su standard MPI per fornire una architettura flessibile, efficiente, scalabile su cluster per Intel®. Questo componente è parte di Intel® oneAPI HPC Toolkit.",He,Q,Et="oneccl_bindings_for_pytorch è installato insieme al set di strumenti MPI. Necessità di reperire l’ambiente prima di utilizzarlo.",Se,Y,jt="per Intel® oneCCL >= 1.12.0",Ge,F,Ve,D,zt="per Intel® oneCCL con versione < 1.12.0",We,q,Qe,T,E,xe,O,vt,ve,Lt="Installazione IPEX:",Ye,K,At='IPEX fornisce ottimizzazioni delle prestazioni per l’addestramento della CPU sia con Float32 che con BFloat16; puoi fare riferimento a <a href="./perf_train_cpu">single CPU section</a>.',Fe,ee,Nt="Il seguente “Utilizzo in Trainer” prende come esempio mpirun nella libreria Intel® MPI.",De,x,j,Ue,te,_t,_e,Xt="Utilizzo in Trainer",qe,ne,kt="Per abilitare l’addestramento distribuito multi CPU nel Trainer con il ccl backend, gli utenti devono aggiungere <strong><code>--ddp_backend ccl</code></strong> negli argomenti del comando.",Oe,le,Rt='Vediamo un esempio per il <a href="https://github.com/huggingface/transformers/tree/main/examples/pytorch/question-answering" rel="nofollow">question-answering example</a>',Ke,ie,Bt="Il seguente comando abilita due processi sul nodo Xeon, con un processo in esecuzione per ogni socket. Le variabili OMP_NUM_THREADS/CCL_WORKER_COUNT possono essere impostate per una prestazione ottimale.",et,ae,tt,oe,Zt="Il seguente comando abilita l’addestramento per un totale di quattro processi su due Xeon (node0 e node1, prendendo node0 come processo principale), ppn (processes per node) è impostato a 2, on un processo in esecuzione per ogni socket. Le variabili OMP_NUM_THREADS/CCL_WORKER_COUNT possono essere impostate per una prestazione ottimale.",nt,re,Ht="In node0, è necessario creare un file di configurazione che contenga gli indirizzi IP di ciascun nodo (per esempio hostfile) e passare il percorso del file di configurazione come parametro.",lt,se,it,pe,St="A questo punto, esegui il seguente comando nel nodo0 e <strong>4DDP</strong> sarà abilitato in node0 e node1 con BF16 auto mixed precision:",at,ce,ot,Je,rt;return L=new Ce({}),N=new Ce({}),B=new Ce({}),S=new we({props:{code:"cGlwJTIwaW5zdGFsbCUyMG9uZWNjbF9iaW5kX3B0JTNEJTNEJTdCcHl0b3JjaF92ZXJzaW9uJTdEJTIwLWYlMjBodHRwcyUzQSUyRiUyRmRldmVsb3Blci5pbnRlbC5jb20lMkZpcGV4LXdobC1zdGFibGUtY3B1",highlighted:"pip install oneccl_bind_pt=={pytorch_version} -f https://developer.intel.com/ipex-whl-stable-cpu"}}),I=new pn({props:{warning:!0,$$slots:{default:[cn]},$$scope:{ctx:$e}}}),V=new Ce({}),F=new we({props:{code:"b25lY2NsX2JpbmRpbmdzX2Zvcl9weXRvcmNoX3BhdGglM0QlMjQocHl0aG9uJTIwLWMlMjAlMjJmcm9tJTIwb25lY2NsX2JpbmRpbmdzX2Zvcl9weXRvcmNoJTIwaW1wb3J0JTIwY3dkJTNCJTIwcHJpbnQoY3dkKSUyMiklMEFzb3VyY2UlMjAlMjRvbmVjY2xfYmluZGluZ3NfZm9yX3B5dG9yY2hfcGF0aCUyRmVudiUyRnNldHZhcnMuc2g=",highlighted:`oneccl_bindings_for_pytorch_path=$(python -c <span class="hljs-string">&quot;from oneccl_bindings_for_pytorch import cwd; print(cwd)&quot;</span>)
<span class="hljs-built_in">source</span> <span class="hljs-variable">$oneccl_bindings_for_pytorch_path</span>/env/setvars.sh`}}),q=new we({props:{code:"dG9yY2hfY2NsX3BhdGglM0QlMjQocHl0aG9uJTIwLWMlMjAlMjJpbXBvcnQlMjB0b3JjaCUzQiUyMGltcG9ydCUyMHRvcmNoX2NjbCUzQiUyMGltcG9ydCUyMG9zJTNCJTIwJTIwcHJpbnQob3MucGF0aC5hYnNwYXRoKG9zLnBhdGguZGlybmFtZSh0b3JjaF9jY2wuX19maWxlX18pKSklMjIpJTBBc291cmNlJTIwJTI0dG9yY2hfY2NsX3BhdGglMkZlbnYlMkZzZXR2YXJzLnNo",highlighted:`torch_ccl_path=$(python -c <span class="hljs-string">&quot;import torch; import torch_ccl; import os;  print(os.path.abspath(os.path.dirname(torch_ccl.__file__)))&quot;</span>)
<span class="hljs-built_in">source</span> <span class="hljs-variable">$torch_ccl_path</span>/env/setvars.sh`}}),O=new Ce({}),te=new Ce({}),ae=new we({props:{code:"JTIwZXhwb3J0JTIwQ0NMX1dPUktFUl9DT1VOVCUzRDElMEElMjBleHBvcnQlMjBNQVNURVJfQUREUiUzRDEyNy4wLjAuMSUwQSUyMG1waXJ1biUyMC1uJTIwMiUyMC1nZW52JTIwT01QX05VTV9USFJFQURTJTNEMjMlMjAlNUMlMEElMjBweXRob24zJTIwcnVuX3FhLnB5JTIwJTVDJTBBJTIwLS1tb2RlbF9uYW1lX29yX3BhdGglMjBiZXJ0LWxhcmdlLXVuY2FzZWQlMjAlNUMlMEElMjAtLWRhdGFzZXRfbmFtZSUyMHNxdWFkJTIwJTVDJTBBJTIwLS1kb190cmFpbiUyMCU1QyUwQSUyMC0tZG9fZXZhbCUyMCU1QyUwQSUyMC0tcGVyX2RldmljZV90cmFpbl9iYXRjaF9zaXplJTIwMTIlMjAlMjAlNUMlMEElMjAtLWxlYXJuaW5nX3JhdGUlMjAzZS01JTIwJTIwJTVDJTBBJTIwLS1udW1fdHJhaW5fZXBvY2hzJTIwMiUyMCUyMCU1QyUwQSUyMC0tbWF4X3NlcV9sZW5ndGglMjAzODQlMjAlNUMlMEElMjAtLWRvY19zdHJpZGUlMjAxMjglMjAlMjAlNUMlMEElMjAtLW91dHB1dF9kaXIlMjAlMkZ0bXAlMkZkZWJ1Z19zcXVhZCUyRiUyMCU1QyUwQSUyMC0tbm9fY3VkYSUyMCU1QyUwQSUyMC0tZGRwX2JhY2tlbmQlMjBjY2wlMjAlNUMlMEElMjAtLXVzZV9pcGV4",highlighted:` export CCL_WORKER_COUNT=1
 export MASTER_ADDR=127.0.0.1
 mpirun -n 2 -genv OMP_NUM_THREADS=23 \\
 python3 run_qa.py \\
 --model_name_or_path bert-large-uncased \\
 --dataset_name squad \\
 --do_train \\
 --do_eval \\
 --per_device_train_batch_size 12  \\
 --learning_rate 3e-5  \\
 --num_train_epochs 2  \\
 --max_seq_length 384 \\
 --doc_stride 128  \\
 --output_dir /tmp/debug_squad/ \\
 --no_cuda \\
 --ddp_backend ccl \\
 --use_ipex`}}),se=new we({props:{code:"JTIwY2F0JTIwaG9zdGZpbGUlMEElMjB4eHgueHh4Lnh4eC54eHglMjAlMjNub2RlMCUyMGlwJTBBJTIweHh4Lnh4eC54eHgueHh4JTIwJTIzbm9kZTElMjBpcA==",highlighted:` cat hostfile
 xxx.xxx.xxx.xxx #node0 ip
 xxx.xxx.xxx.xxx #node1 ip`}}),ce=new we({props:{code:"JTIwZXhwb3J0JTIwQ0NMX1dPUktFUl9DT1VOVCUzRDElMEElMjBleHBvcnQlMjBNQVNURVJfQUREUiUzRHh4eC54eHgueHh4Lnh4eCUyMCUyM25vZGUwJTIwaXAlMEElMjBtcGlydW4lMjAtZiUyMGhvc3RmaWxlJTIwLW4lMjA0JTIwLXBwbiUyMDIlMjAlNUMlMEElMjAtZ2VudiUyME9NUF9OVU1fVEhSRUFEUyUzRDIzJTIwJTVDJTBBJTIwcHl0aG9uMyUyMHJ1bl9xYS5weSUyMCU1QyUwQSUyMC0tbW9kZWxfbmFtZV9vcl9wYXRoJTIwYmVydC1sYXJnZS11bmNhc2VkJTIwJTVDJTBBJTIwLS1kYXRhc2V0X25hbWUlMjBzcXVhZCUyMCU1QyUwQSUyMC0tZG9fdHJhaW4lMjAlNUMlMEElMjAtLWRvX2V2YWwlMjAlNUMlMEElMjAtLXBlcl9kZXZpY2VfdHJhaW5fYmF0Y2hfc2l6ZSUyMDEyJTIwJTIwJTVDJTBBJTIwLS1sZWFybmluZ19yYXRlJTIwM2UtNSUyMCUyMCU1QyUwQSUyMC0tbnVtX3RyYWluX2Vwb2NocyUyMDIlMjAlMjAlNUMlMEElMjAtLW1heF9zZXFfbGVuZ3RoJTIwMzg0JTIwJTVDJTBBJTIwLS1kb2Nfc3RyaWRlJTIwMTI4JTIwJTIwJTVDJTBBJTIwLS1vdXRwdXRfZGlyJTIwJTJGdG1wJTJGZGVidWdfc3F1YWQlMkYlMjAlNUMlMEElMjAtLW5vX2N1ZGElMjAlNUMlMEElMjAtLWRkcF9iYWNrZW5kJTIwY2NsJTIwJTVDJTBBJTIwLS11c2VfaXBleCUyMCU1QyUwQSUyMC0tYmYxNg==",highlighted:` export CCL_WORKER_COUNT=1
 export MASTER_ADDR=xxx.xxx.xxx.xxx #node0 ip
 mpirun -f hostfile -n 4 -ppn 2 \\
 -genv OMP_NUM_THREADS=23 \\
 python3 run_qa.py \\
 --model_name_or_path bert-large-uncased \\
 --dataset_name squad \\
 --do_train \\
 --do_eval \\
 --per_device_train_batch_size 12  \\
 --learning_rate 3e-5  \\
 --num_train_epochs 2  \\
 --max_seq_length 384 \\
 --doc_stride 128  \\
 --output_dir /tmp/debug_squad/ \\
 --no_cuda \\
 --ddp_backend ccl \\
 --use_ipex \\
 --bf16`}}),{c(){h=i("meta"),z=o(),C=i("p"),he=o(),w=i("h1"),U=i("a"),ye=i("span"),u(L.$$.fragment),ut=o(),ue=i("span"),ue.textContent=Ct,Ie=o(),A=i("p"),A.textContent=wt,Pe=o(),y=i("h2"),J=i("a"),be=i("span"),u(N.$$.fragment),mt=o(),me=i("span"),me.textContent=yt,Ee=o(),X=i("p"),X.innerHTML=bt,je=o(),k=i("p"),k.innerHTML=gt,ze=o(),R=i("p"),R.innerHTML=Tt,Le=o(),b=i("h3"),$=i("a"),ge=i("span"),u(B.$$.fragment),ft=o(),fe=i("span"),fe.textContent=xt,Ae=o(),Z=i("p"),Z.textContent=Ut,Ne=o(),H=i("table"),H.innerHTML=Jt,Xe=o(),u(S.$$.fragment),ke=o(),G=i("p"),G.innerHTML=$t,Re=o(),u(I.$$.fragment),Be=o(),g=i("h2"),P=i("a"),Te=i("span"),u(V.$$.fragment),Mt=o(),Me=i("span"),Me.textContent=It,Ze=o(),W=i("p"),W.textContent=Pt,He=o(),Q=i("p"),Q.textContent=Et,Se=o(),Y=i("p"),Y.textContent=jt,Ge=o(),u(F.$$.fragment),Ve=o(),D=i("p"),D.textContent=zt,We=o(),u(q.$$.fragment),Qe=o(),T=i("h4"),E=i("a"),xe=i("span"),u(O.$$.fragment),vt=o(),ve=i("span"),ve.textContent=Lt,Ye=o(),K=i("p"),K.innerHTML=At,Fe=o(),ee=i("p"),ee.textContent=Nt,De=o(),x=i("h2"),j=i("a"),Ue=i("span"),u(te.$$.fragment),_t=o(),_e=i("span"),_e.textContent=Xt,qe=o(),ne=i("p"),ne.innerHTML=kt,Oe=o(),le=i("p"),le.innerHTML=Rt,Ke=o(),ie=i("p"),ie.textContent=Bt,et=o(),u(ae.$$.fragment),tt=o(),oe=i("p"),oe.textContent=Zt,nt=o(),re=i("p"),re.textContent=Ht,lt=o(),u(se.$$.fragment),it=o(),pe=i("p"),pe.innerHTML=St,at=o(),u(ce.$$.fragment),ot=o(),Je=i("p"),this.h()},l(e){const n=sn("svelte-1phssyn",document.head);h=a(n,"META",{name:!0,content:!0}),n.forEach(t),z=r(e),C=a(e,"P",{}),d(C).forEach(t),he=r(e),w=a(e,"H1",{class:!0});var de=d(w);U=a(de,"A",{id:!0,class:!0,href:!0});var Gt=d(U);ye=a(Gt,"SPAN",{});var Vt=d(ye);m(L.$$.fragment,Vt),Vt.forEach(t),Gt.forEach(t),ut=r(de),ue=a(de,"SPAN",{"data-svelte-h":!0}),p(ue)!=="svelte-hpqg1j"&&(ue.textContent=Ct),de.forEach(t),Ie=r(e),A=a(e,"P",{"data-svelte-h":!0}),p(A)!=="svelte-1kfu2az"&&(A.textContent=wt),Pe=r(e),y=a(e,"H2",{class:!0});var st=d(y);J=a(st,"A",{id:!0,class:!0,href:!0});var Wt=d(J);be=a(Wt,"SPAN",{});var Qt=d(be);m(N.$$.fragment,Qt),Qt.forEach(t),Wt.forEach(t),mt=r(st),me=a(st,"SPAN",{"data-svelte-h":!0}),p(me)!=="svelte-1p1hs73"&&(me.textContent=yt),st.forEach(t),Ee=r(e),X=a(e,"P",{"data-svelte-h":!0}),p(X)!=="svelte-1lu0lvx"&&(X.innerHTML=bt),je=r(e),k=a(e,"P",{"data-svelte-h":!0}),p(k)!=="svelte-ctw5mc"&&(k.innerHTML=gt),ze=r(e),R=a(e,"P",{"data-svelte-h":!0}),p(R)!=="svelte-12jdnef"&&(R.innerHTML=Tt),Le=r(e),b=a(e,"H3",{class:!0});var pt=d(b);$=a(pt,"A",{id:!0,class:!0,href:!0});var Yt=d($);ge=a(Yt,"SPAN",{});var Ft=d(ge);m(B.$$.fragment,Ft),Ft.forEach(t),Yt.forEach(t),ft=r(pt),fe=a(pt,"SPAN",{"data-svelte-h":!0}),p(fe)!=="svelte-1d5b93d"&&(fe.textContent=xt),pt.forEach(t),Ae=r(e),Z=a(e,"P",{"data-svelte-h":!0}),p(Z)!=="svelte-awoh7n"&&(Z.textContent=Ut),Ne=r(e),H=a(e,"TABLE",{"data-svelte-h":!0}),p(H)!=="svelte-1yk106u"&&(H.innerHTML=Jt),Xe=r(e),m(S.$$.fragment,e),ke=r(e),G=a(e,"P",{"data-svelte-h":!0}),p(G)!=="svelte-xq4hi3"&&(G.innerHTML=$t),Re=r(e),m(I.$$.fragment,e),Be=r(e),g=a(e,"H2",{class:!0});var ct=d(g);P=a(ct,"A",{id:!0,class:!0,href:!0});var Dt=d(P);Te=a(Dt,"SPAN",{});var qt=d(Te);m(V.$$.fragment,qt),qt.forEach(t),Dt.forEach(t),Mt=r(ct),Me=a(ct,"SPAN",{"data-svelte-h":!0}),p(Me)!=="svelte-3o31km"&&(Me.textContent=It),ct.forEach(t),Ze=r(e),W=a(e,"P",{"data-svelte-h":!0}),p(W)!=="svelte-1v3lzwy"&&(W.textContent=Pt),He=r(e),Q=a(e,"P",{"data-svelte-h":!0}),p(Q)!=="svelte-7y5acl"&&(Q.textContent=Et),Se=r(e),Y=a(e,"P",{"data-svelte-h":!0}),p(Y)!=="svelte-37i02y"&&(Y.textContent=jt),Ge=r(e),m(F.$$.fragment,e),Ve=r(e),D=a(e,"P",{"data-svelte-h":!0}),p(D)!=="svelte-2y4a8e"&&(D.textContent=zt),We=r(e),m(q.$$.fragment,e),Qe=r(e),T=a(e,"H4",{class:!0});var dt=d(T);E=a(dt,"A",{id:!0,class:!0,href:!0});var Ot=d(E);xe=a(Ot,"SPAN",{});var Kt=d(xe);m(O.$$.fragment,Kt),Kt.forEach(t),Ot.forEach(t),vt=r(dt),ve=a(dt,"SPAN",{"data-svelte-h":!0}),p(ve)!=="svelte-7t0mps"&&(ve.textContent=Lt),dt.forEach(t),Ye=r(e),K=a(e,"P",{"data-svelte-h":!0}),p(K)!=="svelte-ucejiq"&&(K.innerHTML=At),Fe=r(e),ee=a(e,"P",{"data-svelte-h":!0}),p(ee)!=="svelte-1j4jwwj"&&(ee.textContent=Nt),De=r(e),x=a(e,"H2",{class:!0});var ht=d(x);j=a(ht,"A",{id:!0,class:!0,href:!0});var en=d(j);Ue=a(en,"SPAN",{});var tn=d(Ue);m(te.$$.fragment,tn),tn.forEach(t),en.forEach(t),_t=r(ht),_e=a(ht,"SPAN",{"data-svelte-h":!0}),p(_e)!=="svelte-1a2kied"&&(_e.textContent=Xt),ht.forEach(t),qe=r(e),ne=a(e,"P",{"data-svelte-h":!0}),p(ne)!=="svelte-c1ynuc"&&(ne.innerHTML=kt),Oe=r(e),le=a(e,"P",{"data-svelte-h":!0}),p(le)!=="svelte-15bz7m"&&(le.innerHTML=Rt),Ke=r(e),ie=a(e,"P",{"data-svelte-h":!0}),p(ie)!=="svelte-1aptuua"&&(ie.textContent=Bt),et=r(e),m(ae.$$.fragment,e),tt=r(e),oe=a(e,"P",{"data-svelte-h":!0}),p(oe)!=="svelte-8wv2la"&&(oe.textContent=Zt),nt=r(e),re=a(e,"P",{"data-svelte-h":!0}),p(re)!=="svelte-1m5a0mz"&&(re.textContent=Ht),lt=r(e),m(se.$$.fragment,e),it=r(e),pe=a(e,"P",{"data-svelte-h":!0}),p(pe)!=="svelte-lx9bti"&&(pe.innerHTML=St),at=r(e),m(ce.$$.fragment,e),ot=r(e),Je=a(e,"P",{}),d(Je).forEach(t),this.h()},h(){s(h,"name","hf:doc:metadata"),s(h,"content",JSON.stringify(hn)),s(U,"id","addestramento-effciente-su-multiple-cpu"),s(U,"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"),s(U,"href","#addestramento-effciente-su-multiple-cpu"),s(w,"class","relative group"),s(J,"id","intel-oneccl-bindings-per-pytorch"),s(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"),s(J,"href","#intel-oneccl-bindings-per-pytorch"),s(y,"class","relative group"),s($,"id","intel-oneccl-bindings-per-linstallazione-pytorch"),s($,"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"),s($,"href","#intel-oneccl-bindings-per-linstallazione-pytorch"),s(b,"class","relative group"),s(P,"id","intel-mpi-library"),s(P,"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"),s(P,"href","#intel-mpi-library"),s(g,"class","relative group"),s(E,"id","installazione-ipex"),s(E,"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"),s(E,"href","#installazione-ipex"),s(T,"class","relative group"),s(j,"id","utilizzo-in-trainer"),s(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"),s(j,"href","#utilizzo-in-trainer"),s(x,"class","relative group")},m(e,n){c(document.head,h),l(e,z,n),l(e,C,n),l(e,he,n),l(e,w,n),c(w,U),c(U,ye),f(L,ye,null),c(w,ut),c(w,ue),l(e,Ie,n),l(e,A,n),l(e,Pe,n),l(e,y,n),c(y,J),c(J,be),f(N,be,null),c(y,mt),c(y,me),l(e,Ee,n),l(e,X,n),l(e,je,n),l(e,k,n),l(e,ze,n),l(e,R,n),l(e,Le,n),l(e,b,n),c(b,$),c($,ge),f(B,ge,null),c(b,ft),c(b,fe),l(e,Ae,n),l(e,Z,n),l(e,Ne,n),l(e,H,n),l(e,Xe,n),f(S,e,n),l(e,ke,n),l(e,G,n),l(e,Re,n),f(I,e,n),l(e,Be,n),l(e,g,n),c(g,P),c(P,Te),f(V,Te,null),c(g,Mt),c(g,Me),l(e,Ze,n),l(e,W,n),l(e,He,n),l(e,Q,n),l(e,Se,n),l(e,Y,n),l(e,Ge,n),f(F,e,n),l(e,Ve,n),l(e,D,n),l(e,We,n),f(q,e,n),l(e,Qe,n),l(e,T,n),c(T,E),c(E,xe),f(O,xe,null),c(T,vt),c(T,ve),l(e,Ye,n),l(e,K,n),l(e,Fe,n),l(e,ee,n),l(e,De,n),l(e,x,n),c(x,j),c(j,Ue),f(te,Ue,null),c(x,_t),c(x,_e),l(e,qe,n),l(e,ne,n),l(e,Oe,n),l(e,le,n),l(e,Ke,n),l(e,ie,n),l(e,et,n),f(ae,e,n),l(e,tt,n),l(e,oe,n),l(e,nt,n),l(e,re,n),l(e,lt,n),f(se,e,n),l(e,it,n),l(e,pe,n),l(e,at,n),f(ce,e,n),l(e,ot,n),l(e,Je,n),rt=!0},p(e,[n]){const de={};n&2&&(de.$$scope={dirty:n,ctx:e}),I.$set(de)},i(e){rt||(M(L.$$.fragment,e),M(N.$$.fragment,e),M(B.$$.fragment,e),M(S.$$.fragment,e),M(I.$$.fragment,e),M(V.$$.fragment,e),M(F.$$.fragment,e),M(q.$$.fragment,e),M(O.$$.fragment,e),M(te.$$.fragment,e),M(ae.$$.fragment,e),M(se.$$.fragment,e),M(ce.$$.fragment,e),rt=!0)},o(e){v(L.$$.fragment,e),v(N.$$.fragment,e),v(B.$$.fragment,e),v(S.$$.fragment,e),v(I.$$.fragment,e),v(V.$$.fragment,e),v(F.$$.fragment,e),v(q.$$.fragment,e),v(O.$$.fragment,e),v(te.$$.fragment,e),v(ae.$$.fragment,e),v(se.$$.fragment,e),v(ce.$$.fragment,e),rt=!1},d(e){e&&(t(z),t(C),t(he),t(w),t(Ie),t(A),t(Pe),t(y),t(Ee),t(X),t(je),t(k),t(ze),t(R),t(Le),t(b),t(Ae),t(Z),t(Ne),t(H),t(Xe),t(ke),t(G),t(Re),t(Be),t(g),t(Ze),t(W),t(He),t(Q),t(Se),t(Y),t(Ge),t(Ve),t(D),t(We),t(Qe),t(T),t(Ye),t(K),t(Fe),t(ee),t(De),t(x),t(qe),t(ne),t(Oe),t(le),t(Ke),t(ie),t(et),t(tt),t(oe),t(nt),t(re),t(lt),t(it),t(pe),t(at),t(ot),t(Je)),t(h),_(L),_(N),_(B),_(S,e),_(I,e),_(V),_(F,e),_(q,e),_(O),_(te),_(ae,e),_(se,e),_(ce,e)}}}const hn={local:"addestramento-effciente-su-multiple-cpu",sections:[{local:"intel-oneccl-bindings-per-pytorch",sections:[{local:"intel-oneccl-bindings-per-linstallazione-pytorch",title:"Intel® oneCCL Bindings per l'installazione PyTorch:"}],title:"Intel® oneCCL Bindings per PyTorch"},{local:"intel-mpi-library",sections:[{local:"installazione-ipex",title:"Installazione IPEX:"}],title:"Intel® MPI library"},{local:"utilizzo-in-trainer",title:"Utilizzo in Trainer"}],title:"Addestramento effciente su multiple CPU"};function un($e){return ln(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Cn extends on{constructor(h){super(),rn(this,h,un,dn,nn,{})}}export{Cn as component};
