import{s as ce,o as de,n as pe}from"../chunks/scheduler.889ebb13.js";import{S as fe,i as Me,g as o,s as i,r as d,A as he,h as s,f as l,c as a,j as re,u as f,x as p,k as oe,y as me,a as n,v as M,d as h,t as m,w as _}from"../chunks/index.b9ddb21d.js";import{T as se}from"../chunks/Tip.ebe17e87.js";import{C as tt}from"../chunks/CodeBlock.15ac7ec2.js";import{H as et}from"../chunks/Heading.77ad4fb6.js";function _e(K){let r,T=`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(){r=o("p"),r.textContent=T},l(c){r=s(c,"P",{"data-svelte-h":!0}),p(r)!=="svelte-is6c7w"&&(r.textContent=T)},m(c,C){n(c,r,C)},p:pe,d(c){c&&l(r)}}}function Te(K){let r,T="<code>oneccl_bindings_for_pytorch</code>の1.12.0プリビルトホイールはPyTorch 1.12.1と互換性がありません（これはPyTorch 1.12.0用です）。PyTorch 1.12.1を使用する場合は、<code>oneccl_bindings_for_pytorch</code>バージョン1.12.100を使用する必要があります。";return{c(){r=o("p"),r.innerHTML=T},l(c){r=s(c,"P",{"data-svelte-h":!0}),p(r)!=="svelte-qkrsq0"&&(r.innerHTML=T)},m(c,C){n(c,r,C)},p:pe,d(c){c&&l(r)}}}function Ce(K){let r,T,c,C,y,nt,$,Zt="1つのCPUでのトレーニングが遅すぎる場合、複数のCPUを使用できます。このガイドは、PyTorchベースのDDPを使用した分散CPUトレーニングに焦点を当てています。",it,U,at,g,Ht='<a href="https://github.com/oneapi-src/oneCCL" rel="nofollow">Intel® oneCCL</a>（集合通信ライブラリ）は、allreduce、allgather、alltoallなどの収集通信を実装した効率的な分散ディープラーニングトレーニング用のライブラリです。oneCCLの詳細については、<a href="https://spec.oneapi.com/versions/latest/elements/oneCCL/source/index.html" rel="nofollow">oneCCLドキュメント</a>と<a href="https://spec.oneapi.com/versions/latest/elements/oneCCL/source/index.html" rel="nofollow">oneCCL仕様</a>を参照してください。',rt,J,At="モジュール<code>oneccl_bindings_for_pytorch</code>（バージョン1.12以前は<code>torch_ccl</code>）は、PyTorch C10D ProcessGroup APIを実装し、外部のProcessGroupとして動的にロードでき、現在はLinuxプラットフォームでのみ動作します。",ot,b,Gt='<a href="https://github.com/intel/torch-ccl" rel="nofollow">torch-ccl</a>の詳細情報を確認してください。',st,x,pt,v,kt="Wheelファイルは、以下のPythonバージョン用に利用可能です:",ct,I,Vt='<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>',dt,j,ft,P,Wt=`where <code>{pytorch_version}</code> should be your PyTorch version, for instance 1.13.0.
Check more approaches for <a href="https://github.com/intel/torch-ccl" rel="nofollow">oneccl_bind_pt installation</a>.
Versions of oneCCL and PyTorch must match.`,Mt,u,ht,L,Yt='<code>{pytorch_version}</code> は、あなたのPyTorchのバージョン（例：1.13.0）に置き換える必要があります。重要なのは、oneCCLとPyTorchのバージョンが一致していることです。<a href="https://github.com/intel/torch-ccl" rel="nofollow">oneccl_bind_ptのインストール</a>に関するさらなるアプローチを確認できます。',mt,w,_t,E,Tt,X,Qt="この基準ベースのMPI実装を使用して、Intel®アーキテクチャ上で柔軟で効率的、スケーラブルなクラスタメッセージングを提供します。このコンポーネントは、Intel® oneAPI HPC Toolkitの一部です。",Ct,R,St="oneccl_bindings_for_pytorchはMPIツールセットと一緒にインストールされます。使用する前に環境をソース化する必要があります。",ut,B,zt="for Intel® oneCCL >= 1.12.0",wt,N,yt,Z,Ft="for Intel® oneCCL whose version < 1.12.0",$t,H,Ut,A,gt,G,Dt='IPEXは、Float32およびBFloat16の両方でCPUトレーニングのパフォーマンス最適化を提供します。詳細は<a href="./perf_train_cpu">こちらのシングルCPUセクション</a>をご参照ください。',Jt,k,qt="以下の「トレーナーでの使用」は、Intel® MPIライブラリでmpirunを使用する例を示しています。",bt,V,xt,W,Ot="トレーナーでのマルチCPU分散トレーニングを有効にするために、ユーザーはコマンド引数に <strong><code>--ddp_backend ccl</code></strong> を追加する必要があります。",vt,Y,Kt='例を見てみましょう。<a href="https://github.com/huggingface/transformers/tree/main/examples/pytorch/question-answering" rel="nofollow">質問応答の例</a>',It,Q,te="以下のコマンドは、1つのXeonノードで2つのプロセスを使用してトレーニングを有効にします。1つのプロセスが1つのソケットで実行されます。OMP_NUM_THREADS/CCL_WORKER_COUNT変数は、最適なパフォーマンスを調整するために調整できます。",jt,S,Pt,z,ee="以下のコマンドは、2つのXeonプロセッサ（node0とnode1、node0をメインプロセスとして使用）で合計4つのプロセスを使用してトレーニングを有効にします。ppn（ノードごとのプロセス数）は2に設定され、1つのソケットごとに1つのプロセスが実行されます。最適なパフォーマンスを得るために、OMP_NUM_THREADS/CCL_WORKER_COUNT変数を調整できます。",Lt,F,le="node0では、各ノードのIPアドレスを含む構成ファイルを作成し、その構成ファイルのパスを引数として渡す必要があります。",Et,D,Xt,q,ne="ノード0で次のコマンドを実行すると、ノード0とノード1で<strong>4DDP</strong>がBF16自動混合精度で有効になります。",Rt,O,Bt,lt,Nt;return y=new et({props:{title:"Efficient Training on Multiple CPUs",local:"efficient-training-on-multiple-cpus",headingTag:"h1"}}),U=new et({props:{title:"Intel® oneCCL Bindings for PyTorch",local:"intel-oneccl-bindings-for-pytorch",headingTag:"h2"}}),x=new et({props:{title:"Intel® oneCCL Bindings for PyTorch installation:",local:"intel-oneccl-bindings-for-pytorch-installation",headingTag:"h3"}}),j=new tt({props:{code:"cGlwJTIwaW5zdGFsbCUyMG9uZWNjbF9iaW5kX3B0JTNEJTNEJTdCcHl0b3JjaF92ZXJzaW9uJTdEJTIwLWYlMjBodHRwcyUzQSUyRiUyRmRldmVsb3Blci5pbnRlbC5jb20lMkZpcGV4LXdobC1zdGFibGUtY3B1",highlighted:'pip install oneccl_bind_pt=={<span class="hljs-attribute">pytorch_version} -f https</span>://developer<span class="hljs-variable">.intel</span><span class="hljs-variable">.com</span>/ipex-whl-stable-cpu',wrap:!1}}),u=new se({props:{warning:!0,$$slots:{default:[_e]},$$scope:{ctx:K}}}),w=new se({props:{warning:!0,$$slots:{default:[Te]},$$scope:{ctx:K}}}),E=new et({props:{title:"Intel® MPI library",local:"intel-mpi-library",headingTag:"h2"}}),N=new tt({props:{code:"b25lY2NsX2JpbmRpbmdzX2Zvcl9weXRvcmNoX3BhdGglM0QlMjQocHl0aG9uJTIwLWMlMjAlMjJmcm9tJTIwb25lY2NsX2JpbmRpbmdzX2Zvcl9weXRvcmNoJTIwaW1wb3J0JTIwY3dkJTNCJTIwcHJpbnQoY3dkKSUyMiklMEFzb3VyY2UlMjAlMjRvbmVjY2xfYmluZGluZ3NfZm9yX3B5dG9yY2hfcGF0aCUyRmVudiUyRnNldHZhcnMuc2g=",highlighted:`oneccl_bindings_for_pytorch_path=$(<span class="hljs-keyword">python</span> -c <span class="hljs-string">&quot;from oneccl_bindings_for_pytorch import cwd; print(cwd)&quot;</span>)
<span class="hljs-keyword">source</span> $oneccl_bindings_for_pytorch_path/<span class="hljs-keyword">env</span>/setvars.sh`,wrap:!1}}),H=new tt({props:{code:"dG9yY2hfY2NsX3BhdGglM0QlMjQocHl0aG9uJTIwLWMlMjAlMjJpbXBvcnQlMjB0b3JjaCUzQiUyMGltcG9ydCUyMHRvcmNoX2NjbCUzQiUyMGltcG9ydCUyMG9zJTNCJTIwJTIwcHJpbnQob3MucGF0aC5hYnNwYXRoKG9zLnBhdGguZGlybmFtZSh0b3JjaF9jY2wuX19maWxlX18pKSklMjIpJTBBc291cmNlJTIwJTI0dG9yY2hfY2NsX3BhdGglMkZlbnYlMkZzZXR2YXJzLnNo",highlighted:`torch_ccl_path=$(<span class="hljs-keyword">python</span> -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-keyword">source</span> $torch_ccl_path/<span class="hljs-keyword">env</span>/setvars.sh`,wrap:!1}}),A=new et({props:{title:"IPEX installation:",local:"ipex-installation",headingTag:"h4"}}),V=new et({props:{title:"Usage in Trainer",local:"usage-in-trainer",headingTag:"h2"}}),S=new tt({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`,wrap:!1}}),D=new tt({props:{code:"JTIwY2F0JTIwaG9zdGZpbGUlMEElMjB4eHgueHh4Lnh4eC54eHglMjAlMjNub2RlMCUyMGlwJTBBJTIweHh4Lnh4eC54eHgueHh4JTIwJTIzbm9kZTElMjBpcA==",highlighted:` cat hostfile
 xxx.xxx.xxx.xxx #node0 ip
 xxx.xxx.xxx.xxx #node1 ip`,wrap:!1}}),O=new tt({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`,wrap:!1}}),{c(){r=o("meta"),T=i(),c=o("p"),C=i(),d(y.$$.fragment),nt=i(),$=o("p"),$.textContent=Zt,it=i(),d(U.$$.fragment),at=i(),g=o("p"),g.innerHTML=Ht,rt=i(),J=o("p"),J.innerHTML=At,ot=i(),b=o("p"),b.innerHTML=Gt,st=i(),d(x.$$.fragment),pt=i(),v=o("p"),v.textContent=kt,ct=i(),I=o("table"),I.innerHTML=Vt,dt=i(),d(j.$$.fragment),ft=i(),P=o("p"),P.innerHTML=Wt,Mt=i(),d(u.$$.fragment),ht=i(),L=o("p"),L.innerHTML=Yt,mt=i(),d(w.$$.fragment),_t=i(),d(E.$$.fragment),Tt=i(),X=o("p"),X.textContent=Qt,Ct=i(),R=o("p"),R.textContent=St,ut=i(),B=o("p"),B.textContent=zt,wt=i(),d(N.$$.fragment),yt=i(),Z=o("p"),Z.textContent=Ft,$t=i(),d(H.$$.fragment),Ut=i(),d(A.$$.fragment),gt=i(),G=o("p"),G.innerHTML=Dt,Jt=i(),k=o("p"),k.textContent=qt,bt=i(),d(V.$$.fragment),xt=i(),W=o("p"),W.innerHTML=Ot,vt=i(),Y=o("p"),Y.innerHTML=Kt,It=i(),Q=o("p"),Q.textContent=te,jt=i(),d(S.$$.fragment),Pt=i(),z=o("p"),z.textContent=ee,Lt=i(),F=o("p"),F.textContent=le,Et=i(),d(D.$$.fragment),Xt=i(),q=o("p"),q.innerHTML=ne,Rt=i(),d(O.$$.fragment),Bt=i(),lt=o("p"),this.h()},l(t){const e=he("svelte-u9bgzb",document.head);r=s(e,"META",{name:!0,content:!0}),e.forEach(l),T=a(t),c=s(t,"P",{}),re(c).forEach(l),C=a(t),f(y.$$.fragment,t),nt=a(t),$=s(t,"P",{"data-svelte-h":!0}),p($)!=="svelte-x4ob9g"&&($.textContent=Zt),it=a(t),f(U.$$.fragment,t),at=a(t),g=s(t,"P",{"data-svelte-h":!0}),p(g)!=="svelte-iaalck"&&(g.innerHTML=Ht),rt=a(t),J=s(t,"P",{"data-svelte-h":!0}),p(J)!=="svelte-12luyx0"&&(J.innerHTML=At),ot=a(t),b=s(t,"P",{"data-svelte-h":!0}),p(b)!=="svelte-imt8h1"&&(b.innerHTML=Gt),st=a(t),f(x.$$.fragment,t),pt=a(t),v=s(t,"P",{"data-svelte-h":!0}),p(v)!=="svelte-1tdwdd8"&&(v.textContent=kt),ct=a(t),I=s(t,"TABLE",{"data-svelte-h":!0}),p(I)!=="svelte-1yk106u"&&(I.innerHTML=Vt),dt=a(t),f(j.$$.fragment,t),ft=a(t),P=s(t,"P",{"data-svelte-h":!0}),p(P)!=="svelte-gwf101"&&(P.innerHTML=Wt),Mt=a(t),f(u.$$.fragment,t),ht=a(t),L=s(t,"P",{"data-svelte-h":!0}),p(L)!=="svelte-1o5c06n"&&(L.innerHTML=Yt),mt=a(t),f(w.$$.fragment,t),_t=a(t),f(E.$$.fragment,t),Tt=a(t),X=s(t,"P",{"data-svelte-h":!0}),p(X)!=="svelte-1ozjsp6"&&(X.textContent=Qt),Ct=a(t),R=s(t,"P",{"data-svelte-h":!0}),p(R)!=="svelte-riba3m"&&(R.textContent=St),ut=a(t),B=s(t,"P",{"data-svelte-h":!0}),p(B)!=="svelte-324hiy"&&(B.textContent=zt),wt=a(t),f(N.$$.fragment,t),yt=a(t),Z=s(t,"P",{"data-svelte-h":!0}),p(Z)!=="svelte-1x3l803"&&(Z.textContent=Ft),$t=a(t),f(H.$$.fragment,t),Ut=a(t),f(A.$$.fragment,t),gt=a(t),G=s(t,"P",{"data-svelte-h":!0}),p(G)!=="svelte-g3w6te"&&(G.innerHTML=Dt),Jt=a(t),k=s(t,"P",{"data-svelte-h":!0}),p(k)!=="svelte-p0koup"&&(k.textContent=qt),bt=a(t),f(V.$$.fragment,t),xt=a(t),W=s(t,"P",{"data-svelte-h":!0}),p(W)!=="svelte-9wlwki"&&(W.innerHTML=Ot),vt=a(t),Y=s(t,"P",{"data-svelte-h":!0}),p(Y)!=="svelte-zu2hn2"&&(Y.innerHTML=Kt),It=a(t),Q=s(t,"P",{"data-svelte-h":!0}),p(Q)!=="svelte-bujigo"&&(Q.textContent=te),jt=a(t),f(S.$$.fragment,t),Pt=a(t),z=s(t,"P",{"data-svelte-h":!0}),p(z)!=="svelte-4pe4cr"&&(z.textContent=ee),Lt=a(t),F=s(t,"P",{"data-svelte-h":!0}),p(F)!=="svelte-1jhnnso"&&(F.textContent=le),Et=a(t),f(D.$$.fragment,t),Xt=a(t),q=s(t,"P",{"data-svelte-h":!0}),p(q)!=="svelte-smvu0d"&&(q.innerHTML=ne),Rt=a(t),f(O.$$.fragment,t),Bt=a(t),lt=s(t,"P",{}),re(lt).forEach(l),this.h()},h(){oe(r,"name","hf:doc:metadata"),oe(r,"content",ue)},m(t,e){me(document.head,r),n(t,T,e),n(t,c,e),n(t,C,e),M(y,t,e),n(t,nt,e),n(t,$,e),n(t,it,e),M(U,t,e),n(t,at,e),n(t,g,e),n(t,rt,e),n(t,J,e),n(t,ot,e),n(t,b,e),n(t,st,e),M(x,t,e),n(t,pt,e),n(t,v,e),n(t,ct,e),n(t,I,e),n(t,dt,e),M(j,t,e),n(t,ft,e),n(t,P,e),n(t,Mt,e),M(u,t,e),n(t,ht,e),n(t,L,e),n(t,mt,e),M(w,t,e),n(t,_t,e),M(E,t,e),n(t,Tt,e),n(t,X,e),n(t,Ct,e),n(t,R,e),n(t,ut,e),n(t,B,e),n(t,wt,e),M(N,t,e),n(t,yt,e),n(t,Z,e),n(t,$t,e),M(H,t,e),n(t,Ut,e),M(A,t,e),n(t,gt,e),n(t,G,e),n(t,Jt,e),n(t,k,e),n(t,bt,e),M(V,t,e),n(t,xt,e),n(t,W,e),n(t,vt,e),n(t,Y,e),n(t,It,e),n(t,Q,e),n(t,jt,e),M(S,t,e),n(t,Pt,e),n(t,z,e),n(t,Lt,e),n(t,F,e),n(t,Et,e),M(D,t,e),n(t,Xt,e),n(t,q,e),n(t,Rt,e),M(O,t,e),n(t,Bt,e),n(t,lt,e),Nt=!0},p(t,[e]){const ie={};e&2&&(ie.$$scope={dirty:e,ctx:t}),u.$set(ie);const ae={};e&2&&(ae.$$scope={dirty:e,ctx:t}),w.$set(ae)},i(t){Nt||(h(y.$$.fragment,t),h(U.$$.fragment,t),h(x.$$.fragment,t),h(j.$$.fragment,t),h(u.$$.fragment,t),h(w.$$.fragment,t),h(E.$$.fragment,t),h(N.$$.fragment,t),h(H.$$.fragment,t),h(A.$$.fragment,t),h(V.$$.fragment,t),h(S.$$.fragment,t),h(D.$$.fragment,t),h(O.$$.fragment,t),Nt=!0)},o(t){m(y.$$.fragment,t),m(U.$$.fragment,t),m(x.$$.fragment,t),m(j.$$.fragment,t),m(u.$$.fragment,t),m(w.$$.fragment,t),m(E.$$.fragment,t),m(N.$$.fragment,t),m(H.$$.fragment,t),m(A.$$.fragment,t),m(V.$$.fragment,t),m(S.$$.fragment,t),m(D.$$.fragment,t),m(O.$$.fragment,t),Nt=!1},d(t){t&&(l(T),l(c),l(C),l(nt),l($),l(it),l(at),l(g),l(rt),l(J),l(ot),l(b),l(st),l(pt),l(v),l(ct),l(I),l(dt),l(ft),l(P),l(Mt),l(ht),l(L),l(mt),l(_t),l(Tt),l(X),l(Ct),l(R),l(ut),l(B),l(wt),l(yt),l(Z),l($t),l(Ut),l(gt),l(G),l(Jt),l(k),l(bt),l(xt),l(W),l(vt),l(Y),l(It),l(Q),l(jt),l(Pt),l(z),l(Lt),l(F),l(Et),l(Xt),l(q),l(Rt),l(Bt),l(lt)),l(r),_(y,t),_(U,t),_(x,t),_(j,t),_(u,t),_(w,t),_(E,t),_(N,t),_(H,t),_(A,t),_(V,t),_(S,t),_(D,t),_(O,t)}}}const ue='{"title":"Efficient Training on Multiple CPUs","local":"efficient-training-on-multiple-cpus","sections":[{"title":"Intel® oneCCL Bindings for PyTorch","local":"intel-oneccl-bindings-for-pytorch","sections":[{"title":"Intel® oneCCL Bindings for PyTorch installation:","local":"intel-oneccl-bindings-for-pytorch-installation","sections":[],"depth":3}],"depth":2},{"title":"Intel® MPI library","local":"intel-mpi-library","sections":[{"title":"IPEX installation:","local":"ipex-installation","sections":[],"depth":4}],"depth":2},{"title":"Usage in Trainer","local":"usage-in-trainer","sections":[],"depth":2}],"depth":1}';function we(K){return de(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class be extends fe{constructor(r){super(),Me(this,r,we,Ce,ce,{})}}export{be as component};
