import{S as rp,i as ip,s as np,e as a,k as U,w as P,t as n,M as op,c as p,d as t,m as f,a as r,x as E,h as o,b as M,G as e,g as i,y as I,L as Up,q as J,o as h,B as v,v as fp}from"../chunks/vendor-hf-doc-builder.js";import{I as Ut}from"../chunks/IconCopyLink-hf-doc-builder.js";import{C as ft}from"../chunks/CodeBlock-hf-doc-builder.js";function Mp(Os){let C,Mt,u,N,Al,Z,ce,Sl,Te,yt,b,Pe,R,Ee,Ie,wt,rl,Je,mt,d,k,$l,X,he,Ll,ve,ct,m,Zl,Ce,ue,Rl,de,_e,W,je,il,Ge,Ne,Tt,nl,be,Pt,_,V,Xl,Q,ke,Wl,Ve,Et,ol,Be,It,D,Ql,Ae,Se,Jt,Ul,$e,ht,fl,Le,vt,Ml,Ze,Ct,yl,Re,ut,wl,Xe,dt,ml,We,_t,x,Dl,Qe,De,jt,cl,xe,Gt,Tl,Ye,Nt,Pl,He,bt,j,B,xl,Y,Fe,Yl,ze,kt,El,Oe,Vt,H,Bt,Il,qe,At,F,St,Jl,Ke,$t,z,Lt,hl,ge,Zt,O,Rt,c,ls,Hl,ts,es,Fl,ss,as,Xt,vl,ps,Wt,Cl,rs,Qt,G,A,zl,q,is,Ol,ns,Dt,K,g,os,Us,xt,S,fs,ll,Ms,ys,Yt,ul,ql,ws,Ht,T,ms,Kl,cs,Ts,gl,Ps,Es,Ft,dl,Is,zt,_l,Js,Ot,$,lt,tl,tt,hs,vs,jl,Cs,us,el,sl,et,ds,_s,Gl,js,Gs,al,st,Ns,bs,Nl,ks,qt,L,Vs,at,Bs,As,Kt,bl,Ss,gt,pl,le,y,$s,pt,Ls,Zs,rt,Rs,Xs,it,Ws,Qs,nt,Ds,xs,ot,Ys,te;return Z=new Ut({}),X=new Ut({}),Q=new Ut({}),Y=new Ut({}),H=new ft({props:{code:"bnZpZGlhLXNtaSUyMHRvcG8lMjAtbQ==",highlighted:'<span class="hljs-symbol">nvidia</span>-<span class="hljs-keyword">smi</span> topo -m'}}),F=new ft({props:{code:"JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwR1BVMCUyMCUyMCUyMCUyMEdQVTElMjAlMjAlMjAlMjBDUFUlMjBBZmZpbml0eSUyMCUyMCUyMCUyME5VTUElMjBBZmZpbml0eSUwQUdQVTAlMjAlMjAlMjAlMjAlMjBYJTIwJTIwJTIwJTIwJTIwJTIwTlYyJTIwJTIwJTIwJTIwJTIwMC0yMyUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyME4lMkZBJTBBR1BVMSUyMCUyMCUyMCUyME5WMiUyMCUyMCUyMCUyMCUyMCUyMFglMjAlMjAlMjAlMjAlMjAlMjAwLTIzJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwTiUyRkE=",highlighted:`        <span class="hljs-attribute">GPU0</span>    GPU1    CPU Affinity    NUMA Affinity
<span class="hljs-attribute">GPU0</span>     X      NV2     <span class="hljs-number">0</span>-<span class="hljs-number">23</span>            N/A
<span class="hljs-attribute">GPU1</span>    NV2      X      <span class="hljs-number">0</span>-<span class="hljs-number">23</span>            N/A`}}),z=new ft({props:{code:"JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwR1BVMCUyMCUyMCUyMCUyMEdQVTElMjAlMjAlMjAlMjBDUFUlMjBBZmZpbml0eSUyMCUyMCUyMCUyME5VTUElMjBBZmZpbml0eSUwQUdQVTAlMjAlMjAlMjAlMjAlMjBYJTIwJTIwJTIwJTIwJTIwJTIwUEhCJTIwJTIwJTIwJTIwJTIwMC0xMSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyME4lMkZBJTBBR1BVMSUyMCUyMCUyMCUyMFBIQiUyMCUyMCUyMCUyMCUyMCUyMFglMjAlMjAlMjAlMjAlMjAlMjAwLTExJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwTiUyRkE=",highlighted:`        <span class="hljs-attribute">GPU0</span>    GPU1    CPU Affinity    NUMA Affinity
<span class="hljs-attribute">GPU0</span>     X      PHB     <span class="hljs-number">0</span>-<span class="hljs-number">11</span>            N/A
<span class="hljs-attribute">GPU1</span>    PHB      X      <span class="hljs-number">0</span>-<span class="hljs-number">11</span>            N/A`}}),O=new ft({props:{code:"JTIwJTIwWCUyMCUyMCUyMCUyMCUzRCUyMFNlbGYlMEElMjAlMjBTWVMlMjAlMjAlM0QlMjBDb25uZWN0aW9uJTIwdHJhdmVyc2luZyUyMFBDSWUlMjBhcyUyMHdlbGwlMjBhcyUyMHRoZSUyMFNNUCUyMGludGVyY29ubmVjdCUyMGJldHdlZW4lMjBOVU1BJTIwbm9kZXMlMjAoZS5nLiUyQyUyMFFQSSUyRlVQSSklMEElMjAlMjBOT0RFJTIwJTNEJTIwQ29ubmVjdGlvbiUyMHRyYXZlcnNpbmclMjBQQ0llJTIwYXMlMjB3ZWxsJTIwYXMlMjB0aGUlMjBpbnRlcmNvbm5lY3QlMjBiZXR3ZWVuJTIwUENJZSUyMEhvc3QlMjBCcmlkZ2VzJTIwd2l0aGluJTIwYSUyME5VTUElMjBub2RlJTBBJTIwJTIwUEhCJTIwJTIwJTNEJTIwQ29ubmVjdGlvbiUyMHRyYXZlcnNpbmclMjBQQ0llJTIwYXMlMjB3ZWxsJTIwYXMlMjBhJTIwUENJZSUyMEhvc3QlMjBCcmlkZ2UlMjAodHlwaWNhbGx5JTIwdGhlJTIwQ1BVKSUwQSUyMCUyMFBYQiUyMCUyMCUzRCUyMENvbm5lY3Rpb24lMjB0cmF2ZXJzaW5nJTIwbXVsdGlwbGUlMjBQQ0llJTIwYnJpZGdlcyUyMCh3aXRob3V0JTIwdHJhdmVyc2luZyUyMHRoZSUyMFBDSWUlMjBIb3N0JTIwQnJpZGdlKSUwQSUyMCUyMFBJWCUyMCUyMCUzRCUyMENvbm5lY3Rpb24lMjB0cmF2ZXJzaW5nJTIwYXQlMjBtb3N0JTIwYSUyMHNpbmdsZSUyMFBDSWUlMjBicmlkZ2UlMEElMjAlMjBOViUyMyUyMCUyMCUzRCUyMENvbm5lY3Rpb24lMjB0cmF2ZXJzaW5nJTIwYSUyMGJvbmRlZCUyMHNldCUyMG9mJTIwJTIzJTIwTlZMaW5rcw==",highlighted:`  X    = Self
  SYS  = Connection traversing PCIe <span class="hljs-keyword">as</span> well <span class="hljs-keyword">as</span> <span class="hljs-keyword">the</span> SMP interconnect between NUMA nodes (e.g., QPI/UPI)
  NODE = Connection traversing PCIe <span class="hljs-keyword">as</span> well <span class="hljs-keyword">as</span> <span class="hljs-keyword">the</span> interconnect between PCIe Host Bridges <span class="hljs-keyword">within</span> <span class="hljs-keyword">a</span> NUMA node
  PHB  = Connection traversing PCIe <span class="hljs-keyword">as</span> well <span class="hljs-keyword">as</span> <span class="hljs-keyword">a</span> PCIe Host Bridge (typically <span class="hljs-keyword">the</span> CPU)
  PXB  = Connection traversing multiple PCIe bridges (<span class="hljs-keyword">without</span> traversing <span class="hljs-keyword">the</span> PCIe Host Bridge)
  PIX  = Connection traversing <span class="hljs-keyword">at</span> most <span class="hljs-keyword">a</span> single PCIe bridge
  NV<span class="hljs-comment">#  = Connection traversing a bonded set of # NVLinks</span>`}}),q=new Ut({}),pl=new ft({props:{code:"JTIzJTIwRERQJTIwdyUyRiUyME5WTGluayUwQSUwQXJtJTIwLXIlMjAlMkZ0bXAlMkZ0ZXN0LWNsbSUzQiUyMENVREFfVklTSUJMRV9ERVZJQ0VTJTNEMCUyQzElMjBweXRob24lMjAtbSUyMHRvcmNoLmRpc3RyaWJ1dGVkLmxhdW5jaCUyMCU1QyUwQS0tbnByb2NfcGVyX25vZGUlMjAyJTIwZXhhbXBsZXMlMkZweXRvcmNoJTJGbGFuZ3VhZ2UtbW9kZWxpbmclMkZydW5fY2xtLnB5JTIwLS1tb2RlbF9uYW1lX29yX3BhdGglMjBncHQyJTIwJTVDJTBBLS1kYXRhc2V0X25hbWUlMjB3aWtpdGV4dCUyMC0tZGF0YXNldF9jb25maWdfbmFtZSUyMHdpa2l0ZXh0LTItcmF3LXYxJTIwLS1kb190cmFpbiUyMCU1QyUwQS0tb3V0cHV0X2RpciUyMCUyRnRtcCUyRnRlc3QtY2xtJTIwLS1wZXJfZGV2aWNlX3RyYWluX2JhdGNoX3NpemUlMjA0JTIwLS1tYXhfc3RlcHMlMjAyMDAlMEElMEElN0IndHJhaW5fcnVudGltZSclM0ElMjAxMDEuOTAwMyUyQyUyMCd0cmFpbl9zYW1wbGVzX3Blcl9zZWNvbmQnJTNBJTIwMS45NjMlMkMlMjAnZXBvY2gnJTNBJTIwMC42OSU3RCUwQSUwQSUyMyUyMEREUCUyMHclMkZvJTIwTlZMaW5rJTBBJTBBcm0lMjAtciUyMCUyRnRtcCUyRnRlc3QtY2xtJTNCJTIwQ1VEQV9WSVNJQkxFX0RFVklDRVMlM0QwJTJDMSUyME5DQ0xfUDJQX0RJU0FCTEUlM0QxJTIwcHl0aG9uJTIwLW0lMjB0b3JjaC5kaXN0cmlidXRlZC5sYXVuY2glMjAlNUMlMEEtLW5wcm9jX3Blcl9ub2RlJTIwMiUyMGV4YW1wbGVzJTJGcHl0b3JjaCUyRmxhbmd1YWdlLW1vZGVsaW5nJTJGcnVuX2NsbS5weSUyMC0tbW9kZWxfbmFtZV9vcl9wYXRoJTIwZ3B0MiUyMCU1QyUwQS0tZGF0YXNldF9uYW1lJTIwd2lraXRleHQlMjAtLWRhdGFzZXRfY29uZmlnX25hbWUlMjB3aWtpdGV4dC0yLXJhdy12MSUyMC0tZG9fdHJhaW4lMEEtLW91dHB1dF9kaXIlMjAlMkZ0bXAlMkZ0ZXN0LWNsbSUyMC0tcGVyX2RldmljZV90cmFpbl9iYXRjaF9zaXplJTIwNCUyMC0tbWF4X3N0ZXBzJTIwMjAwJTBBJTBBJTdCJ3RyYWluX3J1bnRpbWUnJTNBJTIwMTMxLjQzNjclMkMlMjAndHJhaW5fc2FtcGxlc19wZXJfc2Vjb25kJyUzQSUyMDEuNTIyJTJDJTIwJ2Vwb2NoJyUzQSUyMDAuNjklN0Q=",highlighted:`<span class="hljs-comment"># DDP w/ NVLink</span>

<span class="hljs-built_in">rm</span> -r /tmp/test-clm; CUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.launch \\
--nproc_per_node 2 examples/pytorch/language-modeling/run_clm.py --model_name_or_path gpt2 \\
--dataset_name wikitext --dataset_config_name wikitext-2-raw-v1 --do_train \\
--output_dir /tmp/test-clm --per_device_train_batch_size 4 --max_steps 200

{<span class="hljs-string">&#x27;train_runtime&#x27;</span>: 101.9003, <span class="hljs-string">&#x27;train_samples_per_second&#x27;</span>: 1.963, <span class="hljs-string">&#x27;epoch&#x27;</span>: 0.69}

<span class="hljs-comment"># DDP w/o NVLink</span>

<span class="hljs-built_in">rm</span> -r /tmp/test-clm; CUDA_VISIBLE_DEVICES=0,1 NCCL_P2P_DISABLE=1 python -m torch.distributed.launch \\
--nproc_per_node 2 examples/pytorch/language-modeling/run_clm.py --model_name_or_path gpt2 \\
--dataset_name wikitext --dataset_config_name wikitext-2-raw-v1 --do_train
--output_dir /tmp/test-clm --per_device_train_batch_size 4 --max_steps 200

{<span class="hljs-string">&#x27;train_runtime&#x27;</span>: 131.4367, <span class="hljs-string">&#x27;train_samples_per_second&#x27;</span>: 1.522, <span class="hljs-string">&#x27;epoch&#x27;</span>: 0.69}`}}),{c(){C=a("meta"),Mt=U(),u=a("h1"),N=a("a"),Al=a("span"),P(Z.$$.fragment),ce=U(),Sl=a("span"),Te=n("\uD6C8\uB828\uC6A9 \uC0AC\uC6A9\uC790 \uB9DE\uCDA4\uD615 \uD558\uB4DC\uC6E8\uC5B4"),yt=U(),b=a("p"),Pe=n("\uBAA8\uB378 \uD6C8\uB828\uACFC \uCD94\uB860\uC5D0 \uC0AC\uC6A9\uD558\uB294 \uD558\uB4DC\uC6E8\uC5B4\uB294 \uC131\uB2A5\uC5D0 \uD070 \uC601\uD5A5\uC744 \uBBF8\uCE60 \uC218 \uC788\uC2B5\uB2C8\uB2E4. GPU\uC5D0 \uB300\uD574 \uC790\uC138\uD788 \uC54C\uC544\uBCF4\uB824\uBA74, Tim Dettmer\uC758 \uD6CC\uB96D\uD55C \uBE14\uB85C\uADF8 \uD3EC\uC2A4\uD2B8\uB97C \uD655\uC778\uD574\uBCF4\uC138\uC694. "),R=a("a"),Ee=n("\uBE14\uB85C\uADF8 \uD3EC\uC2A4\uD2B8 \uB9C1\uD06C"),Ie=n(" (\uC601\uC5B4\uB85C \uC791\uC131\uB428)."),wt=U(),rl=a("p"),Je=n("GPU \uC124\uC815\uC5D0 \uB300\uD55C \uC2E4\uC6A9\uC801\uC778 \uC870\uC5B8\uC744 \uC0B4\uD3B4\uBCF4\uACA0\uC2B5\uB2C8\uB2E4."),mt=U(),d=a("h2"),k=a("a"),$l=a("span"),P(X.$$.fragment),he=U(),Ll=a("span"),ve=n("GPU"),ct=n(`

\uB354 \uD070 \uBAA8\uB378\uC744 \uD6C8\uB828\uC2DC\uD0AC \uB54C\uB294 \uAE30\uBCF8\uC801\uC73C\uB85C \uC138 \uAC00\uC9C0 \uC635\uC158\uC774 \uC788\uC2B5\uB2C8\uB2E4:
`),m=a("ul"),Zl=a("li"),Ce=n("\uB354 \uD070 GPU"),ue=U(),Rl=a("li"),de=n("\uB354 \uB9CE\uC740 GPU"),_e=U(),W=a("li"),je=n("\uB354 \uB9CE\uC740 CPU \uBC0F NVMe ("),il=a("a"),Ge=n("DeepSpeed-Infinity"),Ne=n("\uB97C \uD1B5\uD55C \uC624\uD504\uB85C\uB4DC(offload))"),Tt=U(),nl=a("p"),be=n("\uC6B0\uC120, \uD558\uB098\uC758 GPU\uB9CC \uC0AC\uC6A9\uD558\uB294 \uACBD\uC6B0\uBD80\uD130 \uC2DC\uC791\uD574\uBD05\uC2DC\uB2E4."),Pt=U(),_=a("h3"),V=a("a"),Xl=a("span"),P(Q.$$.fragment),ke=U(),Wl=a("span"),Ve=n("\uC804\uC6D0 \uACF5\uAE09\uACFC \uB0C9\uAC01"),Et=U(),ol=a("p"),Be=n("\uBE44\uC2FC \uACE0\uC131\uB2A5 GPU\uB97C \uAD6C\uB9E4\uD55C \uACBD\uC6B0, \uC62C\uBC14\uB978 \uC804\uC6D0 \uACF5\uAE09\uACFC \uCDA9\uBD84\uD55C \uB0C9\uAC01\uC744 \uC81C\uACF5\uD574\uC57C \uD569\uB2C8\uB2E4."),It=U(),D=a("p"),Ql=a("strong"),Ae=n("\uC804\uC6D0 \uACF5\uAE09"),Se=n(":"),Jt=U(),Ul=a("p"),$e=n("\uC77C\uBD80 \uACE0\uC131\uB2A5 \uC18C\uBE44\uC790\uC6A9 GPU\uB294 2\uAC1C \uD639\uC740 \uAC00\uB054\uAC00\uB2E4 3\uAC1C\uC758 PCI-E 8\uD540 \uC804\uC6D0 \uC18C\uCF13\uC774 \uC788\uC2B5\uB2C8\uB2E4. \uCE74\uB4DC\uC5D0 \uC788\uB294 \uC18C\uCF13 \uC218\uB9CC\uD07C \uB3C5\uB9BD\uC801\uC778 12V PCI-E 8\uD540 \uCF00\uC774\uBE14\uC774 \uC5F0\uACB0\uB418\uC5B4 \uC788\uB294\uC9C0 \uD655\uC778\uD558\uC138\uC694. \uAC19\uC740 \uCF00\uC774\uBE14\uC758 \uD55C\uCABD \uB05D\uC5D0 \uC788\uB294 2\uAC1C\uC758 \uC2A4\uD50C\uB9BF(\uB610\uB294 \uD53C\uADF8\uD14C\uC77C(pigtail) \uCF00\uC774\uBE14)\uC744 \uC0AC\uC6A9\uD558\uC9C0 \uB9C8\uC138\uC694. \uC989, GPU\uC5D0 2\uAC1C\uC758 \uC18C\uCF13\uC774 \uC788\uB2E4\uBA74, PSU(\uC804\uC6D0 \uACF5\uAE09 \uC7A5\uCE58)\uC5D0\uC11C \uCE74\uB4DC\uB85C \uC5F0\uACB0\uB418\uB294 2\uAC1C\uC758 PCI-E 8\uD540 \uCF00\uC774\uBE14\uC774 \uD544\uC694\uD558\uBA70, \uB05D\uC5D0 2\uAC1C\uC758 PCI-E 8\uD540 \uCEE4\uB125\uD130\uAC00 \uC788\uB294 \uCF00\uC774\uBE14\uC774 \uD544\uC694\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4! \uADF8\uB807\uC9C0 \uC54A\uC73C\uBA74 \uCE74\uB4DC\uC758 \uC804\uCCB4 \uC131\uB2A5\uC744 \uC81C\uB300\uB85C \uBC1C\uD718\uD558\uC9C0 \uBABB\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."),ht=U(),fl=a("p"),Le=n("\uAC01\uAC01\uC758 PCI-E 8\uD540 \uC804\uC6D0 \uCF00\uC774\uBE14\uC740 PSU \uCABD\uC758 12V \uB808\uC77C\uC5D0 \uC5F0\uACB0\uB418\uC5B4\uC57C \uD558\uBA70 \uCD5C\uB300 150W\uC758 \uC804\uB825\uC744 \uACF5\uAE09\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."),vt=U(),Ml=a("p"),Ze=n("\uC77C\uBD80 \uB2E4\uB978 GPU\uB294 PCI-E 12\uD540 \uCEE4\uB125\uD130\uB97C \uC0AC\uC6A9\uD558\uBA70, \uC774\uB7EC\uD55C \uCEE4\uB125\uD130\uB294 \uCD5C\uB300 500W-600W\uC758 \uC804\uB825\uC744 \uACF5\uAE09\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."),Ct=U(),yl=a("p"),Re=n("\uC800\uAC00\uD615 GPU\uB294 6\uD540 \uCEE4\uB125\uD130\uB97C \uC0AC\uC6A9\uD558\uBA70, \uCD5C\uB300 75W\uC758 \uC804\uB825\uC744 \uACF5\uAE09\uD569\uB2C8\uB2E4."),ut=U(),wl=a("p"),Xe=n("\uB610\uD55C GPU\uAC00 \uC548\uC815\uC801\uC778 \uC804\uC555\uC744 \uBC1B\uC744 \uC218 \uC788\uB3C4\uB85D \uACE0\uAE09 PSU\uB97C \uC120\uD0DD\uD574\uC57C \uD569\uB2C8\uB2E4. \uC77C\uBD80 \uC800\uD488\uC9C8\uC758 PSU\uB294 GPU\uAC00 \uCD5C\uACE0 \uC131\uB2A5\uC73C\uB85C \uB3D9\uC791\uD558\uAE30 \uC704\uD574 \uD544\uC694\uD55C \uC804\uC555\uC744 \uC548\uC815\uC801\uC73C\uB85C \uACF5\uAE09\uD558\uC9C0 \uBABB\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."),dt=U(),ml=a("p"),We=n("\uBB3C\uB860, PSU\uB294 GPU\uC5D0 \uC804\uC6D0\uC744 \uACF5\uAE09\uD558\uAE30\uC5D0 \uCDA9\uBD84\uD55C \uC5EC\uBD84\uC758 \uC804\uB825 \uC6A9\uB7C9\uC744 \uAC00\uC838\uC57C \uD569\uB2C8\uB2E4."),_t=U(),x=a("p"),Dl=a("strong"),Qe=n("\uB0C9\uAC01"),De=n(":"),jt=U(),cl=a("p"),xe=n("GPU\uAC00 \uACFC\uC5F4\uB418\uBA74 \uC131\uB2A5\uC774 \uC800\uD558\uB418\uACE0 \uCD5C\uB300 \uC131\uB2A5\uC744 \uBC1C\uD718\uD558\uC9C0 \uBABB\uD560 \uC218 \uC788\uC73C\uBA70, \uB108\uBB34 \uB728\uAC70\uC6CC\uC9C0\uBA74 \uC911\uC9C0\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4."),Gt=U(),Tl=a("p"),Ye=n("GPU\uAC00 \uACFC\uC5F4\uB420 \uB54C \uC815\uD655\uD55C \uC801\uC815 \uC628\uB3C4\uB97C \uC54C\uAE30 \uC5B4\uB824\uC6B0\uB098, \uC544\uB9C8\uB3C4 +80\u2103 \uBBF8\uB9CC\uC774\uBA74 \uC88B\uC9C0\uB9CC \uB354 \uB0AE\uC744\uC218\uB85D \uC88B\uC2B5\uB2C8\uB2E4. 70\u2103-75\u2103 \uC815\uB3C4\uAC00 \uD6CC\uB96D\uD55C \uC628\uB3C4 \uBC94\uC704\uC785\uB2C8\uB2E4. \uC131\uB2A5 \uC800\uD558\uAC00 \uBC1C\uC0DD\uD558\uAE30 \uC2DC\uC791\uD558\uB294 \uC628\uB3C4\uB294 \uB300\uB7B5 84\u2103-90\u2103 \uC815\uB3C4\uC77C \uAC83\uC785\uB2C8\uB2E4. \uD558\uC9C0\uB9CC \uC131\uB2A5 \uC800\uD558 \uC774\uC678\uC5D0\uB3C4 \uC9C0\uC18D\uC801\uC73C\uB85C \uB9E4\uC6B0 \uB192\uC740 \uC628\uB3C4\uB294 GPU \uC218\uBA85\uC744 \uB2E8\uCD95\uC2DC\uD0AC \uC218 \uC788\uC2B5\uB2C8\uB2E4."),Nt=U(),Pl=a("p"),He=n("\uC774\uC5B4\uC11C, \uC5EC\uB7EC \uAC1C\uC758 GPU\uB97C \uC0AC\uC6A9\uD560 \uB54C \uAC00\uC7A5 \uC911\uC694\uD55C \uCE21\uBA74 \uC911 \uD558\uB098\uC778 GPU \uAC04 \uC5F0\uACB0 \uBC29\uC2DD\uC744 \uC0B4\uD3B4\uBCF4\uACA0\uC2B5\uB2C8\uB2E4."),bt=U(),j=a("h3"),B=a("a"),xl=a("span"),P(Y.$$.fragment),Fe=U(),Yl=a("span"),ze=n("\uB2E4\uC911 GPU \uC5F0\uACB0 \uBC29\uC2DD"),kt=U(),El=a("p"),Oe=n("\uB2E4\uC911 GPU\uB97C \uC0AC\uC6A9\uD558\uB294 \uACBD\uC6B0 GPU \uAC04\uC758 \uC5F0\uACB0 \uBC29\uC2DD\uC740 \uC804\uCCB4 \uD6C8\uB828 \uC2DC\uAC04\uC5D0 \uD070 \uC601\uD5A5\uC744 \uBBF8\uCE60 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uB9CC\uC57D GPU\uAC00 \uB3D9\uC77C\uD55C \uBB3C\uB9AC\uC801 \uB178\uB4DC\uC5D0 \uC788\uC744 \uACBD\uC6B0, \uB2E4\uC74C\uACFC \uAC19\uC774 \uD655\uC778\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4:"),Vt=U(),P(H.$$.fragment),Bt=U(),Il=a("p"),qe=n("\uB9CC\uC57D NVLink\uB85C \uC5F0\uACB0\uB41C \uB4C0\uC5BC GPU \uD658\uACBD\uC774\uB77C\uBA74, \uB2E4\uC74C\uACFC \uAC19\uC740 \uACB0\uACFC\uB97C \uD655\uC778\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4:"),At=U(),P(F.$$.fragment),St=U(),Jl=a("p"),Ke=n("NVLink\uB97C \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uB294 \uB2E4\uB978 \uD658\uACBD\uC758 \uACBD\uC6B0\uC5D0\uB294 \uB2E4\uC74C\uACFC \uAC19\uC740 \uACB0\uACFC\uB97C \uD655\uC778\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4:"),$t=U(),P(z.$$.fragment),Lt=U(),hl=a("p"),ge=n("\uC774 \uACB0\uACFC\uC5D0\uB294 \uB2E4\uC74C\uACFC \uAC19\uC740 \uBC94\uB840\uAC00 \uD3EC\uD568\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4:"),Zt=U(),P(O.$$.fragment),Rt=U(),c=a("p"),ls=n("\uB530\uB77C\uC11C \uCCAB \uBC88\uC9F8 \uACB0\uACFC\uC758 "),Hl=a("code"),ts=n("NV2"),es=n("\uB294 GPU\uAC00 2\uAC1C\uC758 NVLink\uB85C \uC5F0\uACB0\uB418\uC5B4 \uC788\uB2E4\uB294 \uAC83\uC744 \uB098\uD0C0\uB0B4\uACE0, \uB450 \uBC88\uC9F8 \uACB0\uACFC\uC758 "),Fl=a("code"),ss=n("PHB"),as=n("\uB294 \uC77C\uBC18\uC801\uC778 \uC18C\uBE44\uC790\uC6A9 PCIe+\uBE0C\uB9BF\uC9C0 \uC124\uC815\uC744 \uAC00\uC9C0\uACE0 \uC788\uB2E4\uB294 \uAC83\uC744 \uB098\uD0C0\uB0C5\uB2C8\uB2E4."),Xt=U(),vl=a("p"),ps=n("\uC124\uC815\uC5D0\uC11C \uC5B4\uB5A4 \uC720\uD615\uC758 \uC5F0\uACB0 \uBC29\uC2DD\uC744 \uAC00\uC9C0\uACE0 \uC788\uB294\uC9C0 \uD655\uC778\uD558\uC138\uC694. \uC77C\uBD80 \uC5F0\uACB0 \uBC29\uC2DD\uC740 GPU \uAC04 \uD1B5\uC2E0\uC744 \uB354 \uBE60\uB974\uAC8C \uB9CC\uB4E4 \uC218 \uC788\uC73C\uBA70(NVLink\uC640 \uAC19\uC774), \uC5B4\uB5A4 \uC5F0\uACB0 \uBC29\uC2DD\uC740 \uB354 \uB290\uB9AC\uAC8C \uB9CC\uB4E4 \uC218 \uC788\uC2B5\uB2C8\uB2E4(PHB\uC640 \uAC19\uC774)."),Wt=U(),Cl=a("p"),rs=n("\uC0AC\uC6A9\uD558\uB294 \uD655\uC7A5\uC131 \uC194\uB8E8\uC158\uC758 \uC885\uB958\uC5D0 \uB530\uB77C \uC5F0\uACB0 \uC18D\uB3C4\uAC00 \uC8FC\uC694\uD55C \uC601\uD5A5\uC744 \uBBF8\uCE60 \uC218\uB3C4 \uC788\uACE0 \uBBF8\uBBF8\uD55C \uC601\uD5A5\uC744 \uBBF8\uCE60 \uC218\uB3C4 \uC788\uC2B5\uB2C8\uB2E4. DDP\uC640 \uAC19\uC774 GPU\uAC00 \uAC70\uC758 \uB3D9\uAE30\uD654\uD558\uC9C0 \uC54A\uC544\uB3C4 \uB418\uB294 \uACBD\uC6B0, \uC5F0\uACB0 \uC18D\uB3C4\uAC00 \uB290\uB824\uB3C4 \uD070 \uC601\uD5A5\uC744 \uBC1B\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uBC18\uBA74 ZeRO-DP\uC640 \uAC19\uC774 GPU\uAC04 \uD1B5\uC2E0\uC774 \uB9CE\uC774 \uD544\uC694\uD55C \uACBD\uC6B0, \uB354 \uBE60\uB978 \uD6C8\uB828\uC744 \uC704\uD574\uC11C\uB294 \uB354 \uBE60\uB978 \uC5F0\uACB0 \uC18D\uB3C4\uAC00 \uC911\uC694\uD569\uB2C8\uB2E4."),Qt=U(),G=a("h4"),A=a("a"),zl=a("span"),P(q.$$.fragment),is=U(),Ol=a("span"),ns=n("NVLink"),Dt=U(),K=a("p"),g=a("a"),os=n("NVLink"),Us=n("\uB294 Nvidia\uC5D0\uC11C \uAC1C\uBC1C\uD55C \uC720\uC120 \uAE30\uBC18\uC758 \uC9C1\uB82C \uB2E4\uC911 \uB808\uC778 \uADFC\uAC70\uB9AC \uD1B5\uC2E0 \uB9C1\uD06C\uC785\uB2C8\uB2E4."),xt=U(),S=a("p"),fs=n("\uC0C8\uB85C\uC6B4 \uC138\uB300\uC758 NVLink\uB294 \uB354 \uBE60\uB978 \uB300\uC5ED\uD3ED\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4. "),ll=a("a"),Ms=n("Nvidia Ampere GA102 GPU Architecture"),ys=n("\uC5D0\uC11C \uC544\uB798\uC640 \uAC19\uC740 \uC815\uBCF4\uB97C \uD655\uC778\uD558\uC2E4 \uC218 \uC788\uC2B5\uB2C8\uB2E4:"),Yt=U(),ul=a("blockquote"),ql=a("p"),ws=n(`3\uC138\uB300 NVLink\xAE
GA102 GPU\uB294 4\uAC1C\uC758 x4 \uB9C1\uD06C\uB97C \uD3EC\uD568\uD558\uB294 NVIDIA\uC758 3\uC138\uB300 NVLink \uC778\uD130\uD398\uC774\uC2A4\uB97C \uD65C\uC6A9\uD558\uBA70,
\uAC01 \uB9C1\uD06C\uB294 \uB450 \uAC1C\uC758 GPU \uAC04\uC5D0 \uAC01 \uBC29\uD5A5\uC73C\uB85C \uCD08\uB2F9 14.0625GB\uC758 \uB300\uC5ED\uD3ED\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4.
4\uAC1C\uC758 \uB9C1\uD06C\uB294 \uAC01 \uBC29\uD5A5\uC5D0 \uCD08\uB2F9 56.25GB\uC758 \uB300\uC5ED\uD3ED\uC744 \uC81C\uACF5\uD558\uBA70, \uB450 \uAC1C\uC758 GPU \uAC04\uC5D0\uB294 \uCD08\uB2F9 112.5GB\uC758 \uCD1D \uB300\uC5ED\uD3ED\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4.
\uB450 \uAC1C\uC758 RTX 3090 GPU\uB97C NVLink\uB97C \uC0AC\uC6A9\uD574 SLI\uB85C \uC5F0\uACB0\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.
(3-Way \uBC0F 4-Way SLI \uAD6C\uC131\uC740 \uC9C0\uC6D0\uB418\uC9C0 \uC54A\uC74C\uC5D0 \uC720\uC758\uD558\uC138\uC694.)`),Ht=U(),T=a("p"),ms=n("\uB530\uB77C\uC11C "),Kl=a("code"),cs=n("nvidia-smi topo -m"),Ts=n("\uC758 \uACB0\uACFC\uC5D0\uC11C "),gl=a("code"),Ps=n("NVX"),Es=n("\uC758 \uAC12\uC774 \uB192\uC744\uC218\uB85D \uB354 \uC88B\uC2B5\uB2C8\uB2E4. \uC138\uB300\uB294 GPU \uC544\uD0A4\uD14D\uCC98\uC5D0 \uB530\uB77C \uB2E4\uB97C \uC218 \uC788\uC2B5\uB2C8\uB2E4."),Ft=U(),dl=a("p"),Is=n("\uADF8\uB807\uB2E4\uBA74, gpt2\uB97C \uC791\uC740 wikitext \uC0D8\uD50C\uB85C \uD559\uC2B5\uC2DC\uD0A4\uB294 \uC608\uC81C\uB97C \uD1B5\uD574, NVLink\uAC00 \uD6C8\uB828\uC5D0 \uC5B4\uB5A4 \uC601\uD5A5\uC744 \uBBF8\uCE58\uB294\uC9C0 \uC0B4\uD3B4\uBCF4\uACA0\uC2B5\uB2C8\uB2E4."),zt=U(),_l=a("p"),Js=n("\uACB0\uACFC\uB294 \uB2E4\uC74C\uACFC \uAC19\uC2B5\uB2C8\uB2E4:"),Ot=U(),$=a("table"),lt=a("thead"),tl=a("tr"),tt=a("th"),hs=n("NVlink"),vs=U(),jl=a("th"),Cs=n("Time"),us=U(),el=a("tbody"),sl=a("tr"),et=a("td"),ds=n("Y"),_s=U(),Gl=a("td"),js=n("101s"),Gs=U(),al=a("tr"),st=a("td"),Ns=n("N"),bs=U(),Nl=a("td"),ks=n("131s"),qt=U(),L=a("p"),Vs=n("NVLink \uC0AC\uC6A9 \uC2DC \uD6C8\uB828\uC774 \uC57D 23% \uB354 \uBE60\uB974\uAC8C \uC644\uB8CC\uB428\uC744 \uD655\uC778\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uB450 \uBC88\uC9F8 \uBCA4\uCE58\uB9C8\uD06C\uC5D0\uC11C\uB294 "),at=a("code"),Bs=n("NCCL_P2P_DISABLE=1"),As=n("\uC744 \uC0AC\uC6A9\uD558\uC5EC NVLink\uB97C \uC0AC\uC6A9\uD558\uC9C0 \uC54A\uB3C4\uB85D \uC124\uC815\uD588\uC2B5\uB2C8\uB2E4."),Kt=U(),bl=a("p"),Ss=n("\uC804\uCCB4 \uBCA4\uCE58\uB9C8\uD06C \uCF54\uB4DC\uC640 \uACB0\uACFC\uB294 \uB2E4\uC74C\uACFC \uAC19\uC2B5\uB2C8\uB2E4:"),gt=U(),P(pl.$$.fragment),le=U(),y=a("p"),$s=n("\uD558\uB4DC\uC6E8\uC5B4: \uAC01\uAC01 2\uAC1C\uC758 TITAN RTX 24GB + 2\uAC1C\uC758 NVLink ("),pt=a("code"),Ls=n("NV2"),Zs=n(" in "),rt=a("code"),Rs=n("nvidia-smi topo -m"),Xs=n(`)
\uC18C\uD504\uD2B8\uC6E8\uC5B4: `),it=a("code"),Ws=n("pytorch-1.8-to-be"),Qs=n(" + "),nt=a("code"),Ds=n("cuda-11.0"),xs=n(" / "),ot=a("code"),Ys=n("transformers==4.3.0.dev0"),this.h()},l(l){const s=op('[data-svelte="svelte-1phssyn"]',document.head);C=p(s,"META",{name:!0,content:!0}),s.forEach(t),Mt=f(l),u=p(l,"H1",{class:!0});var ee=r(u);N=p(ee,"A",{id:!0,class:!0,href:!0});var qs=r(N);Al=p(qs,"SPAN",{});var Ks=r(Al);E(Z.$$.fragment,Ks),Ks.forEach(t),qs.forEach(t),ce=f(ee),Sl=p(ee,"SPAN",{});var gs=r(Sl);Te=o(gs,"\uD6C8\uB828\uC6A9 \uC0AC\uC6A9\uC790 \uB9DE\uCDA4\uD615 \uD558\uB4DC\uC6E8\uC5B4"),gs.forEach(t),ee.forEach(t),yt=f(l),b=p(l,"P",{});var se=r(b);Pe=o(se,"\uBAA8\uB378 \uD6C8\uB828\uACFC \uCD94\uB860\uC5D0 \uC0AC\uC6A9\uD558\uB294 \uD558\uB4DC\uC6E8\uC5B4\uB294 \uC131\uB2A5\uC5D0 \uD070 \uC601\uD5A5\uC744 \uBBF8\uCE60 \uC218 \uC788\uC2B5\uB2C8\uB2E4. GPU\uC5D0 \uB300\uD574 \uC790\uC138\uD788 \uC54C\uC544\uBCF4\uB824\uBA74, Tim Dettmer\uC758 \uD6CC\uB96D\uD55C \uBE14\uB85C\uADF8 \uD3EC\uC2A4\uD2B8\uB97C \uD655\uC778\uD574\uBCF4\uC138\uC694. "),R=p(se,"A",{href:!0,rel:!0});var la=r(R);Ee=o(la,"\uBE14\uB85C\uADF8 \uD3EC\uC2A4\uD2B8 \uB9C1\uD06C"),la.forEach(t),Ie=o(se," (\uC601\uC5B4\uB85C \uC791\uC131\uB428)."),se.forEach(t),wt=f(l),rl=p(l,"P",{});var ta=r(rl);Je=o(ta,"GPU \uC124\uC815\uC5D0 \uB300\uD55C \uC2E4\uC6A9\uC801\uC778 \uC870\uC5B8\uC744 \uC0B4\uD3B4\uBCF4\uACA0\uC2B5\uB2C8\uB2E4."),ta.forEach(t),mt=f(l),d=p(l,"H2",{class:!0});var ae=r(d);k=p(ae,"A",{id:!0,class:!0,href:!0});var ea=r(k);$l=p(ea,"SPAN",{});var sa=r($l);E(X.$$.fragment,sa),sa.forEach(t),ea.forEach(t),he=f(ae),Ll=p(ae,"SPAN",{});var aa=r(Ll);ve=o(aa,"GPU"),aa.forEach(t),ae.forEach(t),ct=o(l,`

\uB354 \uD070 \uBAA8\uB378\uC744 \uD6C8\uB828\uC2DC\uD0AC \uB54C\uB294 \uAE30\uBCF8\uC801\uC73C\uB85C \uC138 \uAC00\uC9C0 \uC635\uC158\uC774 \uC788\uC2B5\uB2C8\uB2E4:
`),m=p(l,"UL",{});var kl=r(m);Zl=p(kl,"LI",{});var pa=r(Zl);Ce=o(pa,"\uB354 \uD070 GPU"),pa.forEach(t),ue=f(kl),Rl=p(kl,"LI",{});var ra=r(Rl);de=o(ra,"\uB354 \uB9CE\uC740 GPU"),ra.forEach(t),_e=f(kl),W=p(kl,"LI",{});var pe=r(W);je=o(pe,"\uB354 \uB9CE\uC740 CPU \uBC0F NVMe ("),il=p(pe,"A",{href:!0});var ia=r(il);Ge=o(ia,"DeepSpeed-Infinity"),ia.forEach(t),Ne=o(pe,"\uB97C \uD1B5\uD55C \uC624\uD504\uB85C\uB4DC(offload))"),pe.forEach(t),kl.forEach(t),Tt=f(l),nl=p(l,"P",{});var na=r(nl);be=o(na,"\uC6B0\uC120, \uD558\uB098\uC758 GPU\uB9CC \uC0AC\uC6A9\uD558\uB294 \uACBD\uC6B0\uBD80\uD130 \uC2DC\uC791\uD574\uBD05\uC2DC\uB2E4."),na.forEach(t),Pt=f(l),_=p(l,"H3",{class:!0});var re=r(_);V=p(re,"A",{id:!0,class:!0,href:!0});var oa=r(V);Xl=p(oa,"SPAN",{});var Ua=r(Xl);E(Q.$$.fragment,Ua),Ua.forEach(t),oa.forEach(t),ke=f(re),Wl=p(re,"SPAN",{});var fa=r(Wl);Ve=o(fa,"\uC804\uC6D0 \uACF5\uAE09\uACFC \uB0C9\uAC01"),fa.forEach(t),re.forEach(t),Et=f(l),ol=p(l,"P",{});var Ma=r(ol);Be=o(Ma,"\uBE44\uC2FC \uACE0\uC131\uB2A5 GPU\uB97C \uAD6C\uB9E4\uD55C \uACBD\uC6B0, \uC62C\uBC14\uB978 \uC804\uC6D0 \uACF5\uAE09\uACFC \uCDA9\uBD84\uD55C \uB0C9\uAC01\uC744 \uC81C\uACF5\uD574\uC57C \uD569\uB2C8\uB2E4."),Ma.forEach(t),It=f(l),D=p(l,"P",{});var Hs=r(D);Ql=p(Hs,"STRONG",{});var ya=r(Ql);Ae=o(ya,"\uC804\uC6D0 \uACF5\uAE09"),ya.forEach(t),Se=o(Hs,":"),Hs.forEach(t),Jt=f(l),Ul=p(l,"P",{});var wa=r(Ul);$e=o(wa,"\uC77C\uBD80 \uACE0\uC131\uB2A5 \uC18C\uBE44\uC790\uC6A9 GPU\uB294 2\uAC1C \uD639\uC740 \uAC00\uB054\uAC00\uB2E4 3\uAC1C\uC758 PCI-E 8\uD540 \uC804\uC6D0 \uC18C\uCF13\uC774 \uC788\uC2B5\uB2C8\uB2E4. \uCE74\uB4DC\uC5D0 \uC788\uB294 \uC18C\uCF13 \uC218\uB9CC\uD07C \uB3C5\uB9BD\uC801\uC778 12V PCI-E 8\uD540 \uCF00\uC774\uBE14\uC774 \uC5F0\uACB0\uB418\uC5B4 \uC788\uB294\uC9C0 \uD655\uC778\uD558\uC138\uC694. \uAC19\uC740 \uCF00\uC774\uBE14\uC758 \uD55C\uCABD \uB05D\uC5D0 \uC788\uB294 2\uAC1C\uC758 \uC2A4\uD50C\uB9BF(\uB610\uB294 \uD53C\uADF8\uD14C\uC77C(pigtail) \uCF00\uC774\uBE14)\uC744 \uC0AC\uC6A9\uD558\uC9C0 \uB9C8\uC138\uC694. \uC989, GPU\uC5D0 2\uAC1C\uC758 \uC18C\uCF13\uC774 \uC788\uB2E4\uBA74, PSU(\uC804\uC6D0 \uACF5\uAE09 \uC7A5\uCE58)\uC5D0\uC11C \uCE74\uB4DC\uB85C \uC5F0\uACB0\uB418\uB294 2\uAC1C\uC758 PCI-E 8\uD540 \uCF00\uC774\uBE14\uC774 \uD544\uC694\uD558\uBA70, \uB05D\uC5D0 2\uAC1C\uC758 PCI-E 8\uD540 \uCEE4\uB125\uD130\uAC00 \uC788\uB294 \uCF00\uC774\uBE14\uC774 \uD544\uC694\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4! \uADF8\uB807\uC9C0 \uC54A\uC73C\uBA74 \uCE74\uB4DC\uC758 \uC804\uCCB4 \uC131\uB2A5\uC744 \uC81C\uB300\uB85C \uBC1C\uD718\uD558\uC9C0 \uBABB\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."),wa.forEach(t),ht=f(l),fl=p(l,"P",{});var ma=r(fl);Le=o(ma,"\uAC01\uAC01\uC758 PCI-E 8\uD540 \uC804\uC6D0 \uCF00\uC774\uBE14\uC740 PSU \uCABD\uC758 12V \uB808\uC77C\uC5D0 \uC5F0\uACB0\uB418\uC5B4\uC57C \uD558\uBA70 \uCD5C\uB300 150W\uC758 \uC804\uB825\uC744 \uACF5\uAE09\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."),ma.forEach(t),vt=f(l),Ml=p(l,"P",{});var ca=r(Ml);Ze=o(ca,"\uC77C\uBD80 \uB2E4\uB978 GPU\uB294 PCI-E 12\uD540 \uCEE4\uB125\uD130\uB97C \uC0AC\uC6A9\uD558\uBA70, \uC774\uB7EC\uD55C \uCEE4\uB125\uD130\uB294 \uCD5C\uB300 500W-600W\uC758 \uC804\uB825\uC744 \uACF5\uAE09\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."),ca.forEach(t),Ct=f(l),yl=p(l,"P",{});var Ta=r(yl);Re=o(Ta,"\uC800\uAC00\uD615 GPU\uB294 6\uD540 \uCEE4\uB125\uD130\uB97C \uC0AC\uC6A9\uD558\uBA70, \uCD5C\uB300 75W\uC758 \uC804\uB825\uC744 \uACF5\uAE09\uD569\uB2C8\uB2E4."),Ta.forEach(t),ut=f(l),wl=p(l,"P",{});var Pa=r(wl);Xe=o(Pa,"\uB610\uD55C GPU\uAC00 \uC548\uC815\uC801\uC778 \uC804\uC555\uC744 \uBC1B\uC744 \uC218 \uC788\uB3C4\uB85D \uACE0\uAE09 PSU\uB97C \uC120\uD0DD\uD574\uC57C \uD569\uB2C8\uB2E4. \uC77C\uBD80 \uC800\uD488\uC9C8\uC758 PSU\uB294 GPU\uAC00 \uCD5C\uACE0 \uC131\uB2A5\uC73C\uB85C \uB3D9\uC791\uD558\uAE30 \uC704\uD574 \uD544\uC694\uD55C \uC804\uC555\uC744 \uC548\uC815\uC801\uC73C\uB85C \uACF5\uAE09\uD558\uC9C0 \uBABB\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."),Pa.forEach(t),dt=f(l),ml=p(l,"P",{});var Ea=r(ml);We=o(Ea,"\uBB3C\uB860, PSU\uB294 GPU\uC5D0 \uC804\uC6D0\uC744 \uACF5\uAE09\uD558\uAE30\uC5D0 \uCDA9\uBD84\uD55C \uC5EC\uBD84\uC758 \uC804\uB825 \uC6A9\uB7C9\uC744 \uAC00\uC838\uC57C \uD569\uB2C8\uB2E4."),Ea.forEach(t),_t=f(l),x=p(l,"P",{});var Fs=r(x);Dl=p(Fs,"STRONG",{});var Ia=r(Dl);Qe=o(Ia,"\uB0C9\uAC01"),Ia.forEach(t),De=o(Fs,":"),Fs.forEach(t),jt=f(l),cl=p(l,"P",{});var Ja=r(cl);xe=o(Ja,"GPU\uAC00 \uACFC\uC5F4\uB418\uBA74 \uC131\uB2A5\uC774 \uC800\uD558\uB418\uACE0 \uCD5C\uB300 \uC131\uB2A5\uC744 \uBC1C\uD718\uD558\uC9C0 \uBABB\uD560 \uC218 \uC788\uC73C\uBA70, \uB108\uBB34 \uB728\uAC70\uC6CC\uC9C0\uBA74 \uC911\uC9C0\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4."),Ja.forEach(t),Gt=f(l),Tl=p(l,"P",{});var ha=r(Tl);Ye=o(ha,"GPU\uAC00 \uACFC\uC5F4\uB420 \uB54C \uC815\uD655\uD55C \uC801\uC815 \uC628\uB3C4\uB97C \uC54C\uAE30 \uC5B4\uB824\uC6B0\uB098, \uC544\uB9C8\uB3C4 +80\u2103 \uBBF8\uB9CC\uC774\uBA74 \uC88B\uC9C0\uB9CC \uB354 \uB0AE\uC744\uC218\uB85D \uC88B\uC2B5\uB2C8\uB2E4. 70\u2103-75\u2103 \uC815\uB3C4\uAC00 \uD6CC\uB96D\uD55C \uC628\uB3C4 \uBC94\uC704\uC785\uB2C8\uB2E4. \uC131\uB2A5 \uC800\uD558\uAC00 \uBC1C\uC0DD\uD558\uAE30 \uC2DC\uC791\uD558\uB294 \uC628\uB3C4\uB294 \uB300\uB7B5 84\u2103-90\u2103 \uC815\uB3C4\uC77C \uAC83\uC785\uB2C8\uB2E4. \uD558\uC9C0\uB9CC \uC131\uB2A5 \uC800\uD558 \uC774\uC678\uC5D0\uB3C4 \uC9C0\uC18D\uC801\uC73C\uB85C \uB9E4\uC6B0 \uB192\uC740 \uC628\uB3C4\uB294 GPU \uC218\uBA85\uC744 \uB2E8\uCD95\uC2DC\uD0AC \uC218 \uC788\uC2B5\uB2C8\uB2E4."),ha.forEach(t),Nt=f(l),Pl=p(l,"P",{});var va=r(Pl);He=o(va,"\uC774\uC5B4\uC11C, \uC5EC\uB7EC \uAC1C\uC758 GPU\uB97C \uC0AC\uC6A9\uD560 \uB54C \uAC00\uC7A5 \uC911\uC694\uD55C \uCE21\uBA74 \uC911 \uD558\uB098\uC778 GPU \uAC04 \uC5F0\uACB0 \uBC29\uC2DD\uC744 \uC0B4\uD3B4\uBCF4\uACA0\uC2B5\uB2C8\uB2E4."),va.forEach(t),bt=f(l),j=p(l,"H3",{class:!0});var ie=r(j);B=p(ie,"A",{id:!0,class:!0,href:!0});var Ca=r(B);xl=p(Ca,"SPAN",{});var ua=r(xl);E(Y.$$.fragment,ua),ua.forEach(t),Ca.forEach(t),Fe=f(ie),Yl=p(ie,"SPAN",{});var da=r(Yl);ze=o(da,"\uB2E4\uC911 GPU \uC5F0\uACB0 \uBC29\uC2DD"),da.forEach(t),ie.forEach(t),kt=f(l),El=p(l,"P",{});var _a=r(El);Oe=o(_a,"\uB2E4\uC911 GPU\uB97C \uC0AC\uC6A9\uD558\uB294 \uACBD\uC6B0 GPU \uAC04\uC758 \uC5F0\uACB0 \uBC29\uC2DD\uC740 \uC804\uCCB4 \uD6C8\uB828 \uC2DC\uAC04\uC5D0 \uD070 \uC601\uD5A5\uC744 \uBBF8\uCE60 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uB9CC\uC57D GPU\uAC00 \uB3D9\uC77C\uD55C \uBB3C\uB9AC\uC801 \uB178\uB4DC\uC5D0 \uC788\uC744 \uACBD\uC6B0, \uB2E4\uC74C\uACFC \uAC19\uC774 \uD655\uC778\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4:"),_a.forEach(t),Vt=f(l),E(H.$$.fragment,l),Bt=f(l),Il=p(l,"P",{});var ja=r(Il);qe=o(ja,"\uB9CC\uC57D NVLink\uB85C \uC5F0\uACB0\uB41C \uB4C0\uC5BC GPU \uD658\uACBD\uC774\uB77C\uBA74, \uB2E4\uC74C\uACFC \uAC19\uC740 \uACB0\uACFC\uB97C \uD655\uC778\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4:"),ja.forEach(t),At=f(l),E(F.$$.fragment,l),St=f(l),Jl=p(l,"P",{});var Ga=r(Jl);Ke=o(Ga,"NVLink\uB97C \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uB294 \uB2E4\uB978 \uD658\uACBD\uC758 \uACBD\uC6B0\uC5D0\uB294 \uB2E4\uC74C\uACFC \uAC19\uC740 \uACB0\uACFC\uB97C \uD655\uC778\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4:"),Ga.forEach(t),$t=f(l),E(z.$$.fragment,l),Lt=f(l),hl=p(l,"P",{});var Na=r(hl);ge=o(Na,"\uC774 \uACB0\uACFC\uC5D0\uB294 \uB2E4\uC74C\uACFC \uAC19\uC740 \uBC94\uB840\uAC00 \uD3EC\uD568\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4:"),Na.forEach(t),Zt=f(l),E(O.$$.fragment,l),Rt=f(l),c=p(l,"P",{});var Vl=r(c);ls=o(Vl,"\uB530\uB77C\uC11C \uCCAB \uBC88\uC9F8 \uACB0\uACFC\uC758 "),Hl=p(Vl,"CODE",{});var ba=r(Hl);ts=o(ba,"NV2"),ba.forEach(t),es=o(Vl,"\uB294 GPU\uAC00 2\uAC1C\uC758 NVLink\uB85C \uC5F0\uACB0\uB418\uC5B4 \uC788\uB2E4\uB294 \uAC83\uC744 \uB098\uD0C0\uB0B4\uACE0, \uB450 \uBC88\uC9F8 \uACB0\uACFC\uC758 "),Fl=p(Vl,"CODE",{});var ka=r(Fl);ss=o(ka,"PHB"),ka.forEach(t),as=o(Vl,"\uB294 \uC77C\uBC18\uC801\uC778 \uC18C\uBE44\uC790\uC6A9 PCIe+\uBE0C\uB9BF\uC9C0 \uC124\uC815\uC744 \uAC00\uC9C0\uACE0 \uC788\uB2E4\uB294 \uAC83\uC744 \uB098\uD0C0\uB0C5\uB2C8\uB2E4."),Vl.forEach(t),Xt=f(l),vl=p(l,"P",{});var Va=r(vl);ps=o(Va,"\uC124\uC815\uC5D0\uC11C \uC5B4\uB5A4 \uC720\uD615\uC758 \uC5F0\uACB0 \uBC29\uC2DD\uC744 \uAC00\uC9C0\uACE0 \uC788\uB294\uC9C0 \uD655\uC778\uD558\uC138\uC694. \uC77C\uBD80 \uC5F0\uACB0 \uBC29\uC2DD\uC740 GPU \uAC04 \uD1B5\uC2E0\uC744 \uB354 \uBE60\uB974\uAC8C \uB9CC\uB4E4 \uC218 \uC788\uC73C\uBA70(NVLink\uC640 \uAC19\uC774), \uC5B4\uB5A4 \uC5F0\uACB0 \uBC29\uC2DD\uC740 \uB354 \uB290\uB9AC\uAC8C \uB9CC\uB4E4 \uC218 \uC788\uC2B5\uB2C8\uB2E4(PHB\uC640 \uAC19\uC774)."),Va.forEach(t),Wt=f(l),Cl=p(l,"P",{});var Ba=r(Cl);rs=o(Ba,"\uC0AC\uC6A9\uD558\uB294 \uD655\uC7A5\uC131 \uC194\uB8E8\uC158\uC758 \uC885\uB958\uC5D0 \uB530\uB77C \uC5F0\uACB0 \uC18D\uB3C4\uAC00 \uC8FC\uC694\uD55C \uC601\uD5A5\uC744 \uBBF8\uCE60 \uC218\uB3C4 \uC788\uACE0 \uBBF8\uBBF8\uD55C \uC601\uD5A5\uC744 \uBBF8\uCE60 \uC218\uB3C4 \uC788\uC2B5\uB2C8\uB2E4. DDP\uC640 \uAC19\uC774 GPU\uAC00 \uAC70\uC758 \uB3D9\uAE30\uD654\uD558\uC9C0 \uC54A\uC544\uB3C4 \uB418\uB294 \uACBD\uC6B0, \uC5F0\uACB0 \uC18D\uB3C4\uAC00 \uB290\uB824\uB3C4 \uD070 \uC601\uD5A5\uC744 \uBC1B\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uBC18\uBA74 ZeRO-DP\uC640 \uAC19\uC774 GPU\uAC04 \uD1B5\uC2E0\uC774 \uB9CE\uC774 \uD544\uC694\uD55C \uACBD\uC6B0, \uB354 \uBE60\uB978 \uD6C8\uB828\uC744 \uC704\uD574\uC11C\uB294 \uB354 \uBE60\uB978 \uC5F0\uACB0 \uC18D\uB3C4\uAC00 \uC911\uC694\uD569\uB2C8\uB2E4."),Ba.forEach(t),Qt=f(l),G=p(l,"H4",{class:!0});var ne=r(G);A=p(ne,"A",{id:!0,class:!0,href:!0});var Aa=r(A);zl=p(Aa,"SPAN",{});var Sa=r(zl);E(q.$$.fragment,Sa),Sa.forEach(t),Aa.forEach(t),is=f(ne),Ol=p(ne,"SPAN",{});var $a=r(Ol);ns=o($a,"NVLink"),$a.forEach(t),ne.forEach(t),Dt=f(l),K=p(l,"P",{});var zs=r(K);g=p(zs,"A",{href:!0,rel:!0});var La=r(g);os=o(La,"NVLink"),La.forEach(t),Us=o(zs,"\uB294 Nvidia\uC5D0\uC11C \uAC1C\uBC1C\uD55C \uC720\uC120 \uAE30\uBC18\uC758 \uC9C1\uB82C \uB2E4\uC911 \uB808\uC778 \uADFC\uAC70\uB9AC \uD1B5\uC2E0 \uB9C1\uD06C\uC785\uB2C8\uB2E4."),zs.forEach(t),xt=f(l),S=p(l,"P",{});var oe=r(S);fs=o(oe,"\uC0C8\uB85C\uC6B4 \uC138\uB300\uC758 NVLink\uB294 \uB354 \uBE60\uB978 \uB300\uC5ED\uD3ED\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4. "),ll=p(oe,"A",{href:!0,rel:!0});var Za=r(ll);Ms=o(Za,"Nvidia Ampere GA102 GPU Architecture"),Za.forEach(t),ys=o(oe,"\uC5D0\uC11C \uC544\uB798\uC640 \uAC19\uC740 \uC815\uBCF4\uB97C \uD655\uC778\uD558\uC2E4 \uC218 \uC788\uC2B5\uB2C8\uB2E4:"),oe.forEach(t),Yt=f(l),ul=p(l,"BLOCKQUOTE",{});var Ra=r(ul);ql=p(Ra,"P",{});var Xa=r(ql);ws=o(Xa,`3\uC138\uB300 NVLink\xAE
GA102 GPU\uB294 4\uAC1C\uC758 x4 \uB9C1\uD06C\uB97C \uD3EC\uD568\uD558\uB294 NVIDIA\uC758 3\uC138\uB300 NVLink \uC778\uD130\uD398\uC774\uC2A4\uB97C \uD65C\uC6A9\uD558\uBA70,
\uAC01 \uB9C1\uD06C\uB294 \uB450 \uAC1C\uC758 GPU \uAC04\uC5D0 \uAC01 \uBC29\uD5A5\uC73C\uB85C \uCD08\uB2F9 14.0625GB\uC758 \uB300\uC5ED\uD3ED\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4.
4\uAC1C\uC758 \uB9C1\uD06C\uB294 \uAC01 \uBC29\uD5A5\uC5D0 \uCD08\uB2F9 56.25GB\uC758 \uB300\uC5ED\uD3ED\uC744 \uC81C\uACF5\uD558\uBA70, \uB450 \uAC1C\uC758 GPU \uAC04\uC5D0\uB294 \uCD08\uB2F9 112.5GB\uC758 \uCD1D \uB300\uC5ED\uD3ED\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4.
\uB450 \uAC1C\uC758 RTX 3090 GPU\uB97C NVLink\uB97C \uC0AC\uC6A9\uD574 SLI\uB85C \uC5F0\uACB0\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.
(3-Way \uBC0F 4-Way SLI \uAD6C\uC131\uC740 \uC9C0\uC6D0\uB418\uC9C0 \uC54A\uC74C\uC5D0 \uC720\uC758\uD558\uC138\uC694.)`),Xa.forEach(t),Ra.forEach(t),Ht=f(l),T=p(l,"P",{});var Bl=r(T);ms=o(Bl,"\uB530\uB77C\uC11C "),Kl=p(Bl,"CODE",{});var Wa=r(Kl);cs=o(Wa,"nvidia-smi topo -m"),Wa.forEach(t),Ts=o(Bl,"\uC758 \uACB0\uACFC\uC5D0\uC11C "),gl=p(Bl,"CODE",{});var Qa=r(gl);Ps=o(Qa,"NVX"),Qa.forEach(t),Es=o(Bl,"\uC758 \uAC12\uC774 \uB192\uC744\uC218\uB85D \uB354 \uC88B\uC2B5\uB2C8\uB2E4. \uC138\uB300\uB294 GPU \uC544\uD0A4\uD14D\uCC98\uC5D0 \uB530\uB77C \uB2E4\uB97C \uC218 \uC788\uC2B5\uB2C8\uB2E4."),Bl.forEach(t),Ft=f(l),dl=p(l,"P",{});var Da=r(dl);Is=o(Da,"\uADF8\uB807\uB2E4\uBA74, gpt2\uB97C \uC791\uC740 wikitext \uC0D8\uD50C\uB85C \uD559\uC2B5\uC2DC\uD0A4\uB294 \uC608\uC81C\uB97C \uD1B5\uD574, NVLink\uAC00 \uD6C8\uB828\uC5D0 \uC5B4\uB5A4 \uC601\uD5A5\uC744 \uBBF8\uCE58\uB294\uC9C0 \uC0B4\uD3B4\uBCF4\uACA0\uC2B5\uB2C8\uB2E4."),Da.forEach(t),zt=f(l),_l=p(l,"P",{});var xa=r(_l);Js=o(xa,"\uACB0\uACFC\uB294 \uB2E4\uC74C\uACFC \uAC19\uC2B5\uB2C8\uB2E4:"),xa.forEach(t),Ot=f(l),$=p(l,"TABLE",{});var Ue=r($);lt=p(Ue,"THEAD",{});var Ya=r(lt);tl=p(Ya,"TR",{});var fe=r(tl);tt=p(fe,"TH",{});var Ha=r(tt);hs=o(Ha,"NVlink"),Ha.forEach(t),vs=f(fe),jl=p(fe,"TH",{align:!0});var Fa=r(jl);Cs=o(Fa,"Time"),Fa.forEach(t),fe.forEach(t),Ya.forEach(t),us=f(Ue),el=p(Ue,"TBODY",{});var Me=r(el);sl=p(Me,"TR",{});var ye=r(sl);et=p(ye,"TD",{});var za=r(et);ds=o(za,"Y"),za.forEach(t),_s=f(ye),Gl=p(ye,"TD",{align:!0});var Oa=r(Gl);js=o(Oa,"101s"),Oa.forEach(t),ye.forEach(t),Gs=f(Me),al=p(Me,"TR",{});var we=r(al);st=p(we,"TD",{});var qa=r(st);Ns=o(qa,"N"),qa.forEach(t),bs=f(we),Nl=p(we,"TD",{align:!0});var Ka=r(Nl);ks=o(Ka,"131s"),Ka.forEach(t),we.forEach(t),Me.forEach(t),Ue.forEach(t),qt=f(l),L=p(l,"P",{});var me=r(L);Vs=o(me,"NVLink \uC0AC\uC6A9 \uC2DC \uD6C8\uB828\uC774 \uC57D 23% \uB354 \uBE60\uB974\uAC8C \uC644\uB8CC\uB428\uC744 \uD655\uC778\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uB450 \uBC88\uC9F8 \uBCA4\uCE58\uB9C8\uD06C\uC5D0\uC11C\uB294 "),at=p(me,"CODE",{});var ga=r(at);Bs=o(ga,"NCCL_P2P_DISABLE=1"),ga.forEach(t),As=o(me,"\uC744 \uC0AC\uC6A9\uD558\uC5EC NVLink\uB97C \uC0AC\uC6A9\uD558\uC9C0 \uC54A\uB3C4\uB85D \uC124\uC815\uD588\uC2B5\uB2C8\uB2E4."),me.forEach(t),Kt=f(l),bl=p(l,"P",{});var lp=r(bl);Ss=o(lp,"\uC804\uCCB4 \uBCA4\uCE58\uB9C8\uD06C \uCF54\uB4DC\uC640 \uACB0\uACFC\uB294 \uB2E4\uC74C\uACFC \uAC19\uC2B5\uB2C8\uB2E4:"),lp.forEach(t),gt=f(l),E(pl.$$.fragment,l),le=f(l),y=p(l,"P",{});var w=r(y);$s=o(w,"\uD558\uB4DC\uC6E8\uC5B4: \uAC01\uAC01 2\uAC1C\uC758 TITAN RTX 24GB + 2\uAC1C\uC758 NVLink ("),pt=p(w,"CODE",{});var tp=r(pt);Ls=o(tp,"NV2"),tp.forEach(t),Zs=o(w," in "),rt=p(w,"CODE",{});var ep=r(rt);Rs=o(ep,"nvidia-smi topo -m"),ep.forEach(t),Xs=o(w,`)
\uC18C\uD504\uD2B8\uC6E8\uC5B4: `),it=p(w,"CODE",{});var sp=r(it);Ws=o(sp,"pytorch-1.8-to-be"),sp.forEach(t),Qs=o(w," + "),nt=p(w,"CODE",{});var ap=r(nt);Ds=o(ap,"cuda-11.0"),ap.forEach(t),xs=o(w," / "),ot=p(w,"CODE",{});var pp=r(ot);Ys=o(pp,"transformers==4.3.0.dev0"),pp.forEach(t),w.forEach(t),this.h()},h(){M(C,"name","hf:doc:metadata"),M(C,"content",JSON.stringify(yp)),M(N,"id","custom-hardware-for-training"),M(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"),M(N,"href","#custom-hardware-for-training"),M(u,"class","relative group"),M(R,"href","https://timdettmers.com/2020/09/07/which-gpu-for-deep-learning/"),M(R,"rel","nofollow"),M(k,"id","gpu"),M(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"),M(k,"href","#gpu"),M(d,"class","relative group"),M(il,"href","../en/main_classes/deepspeed#nvme-support"),M(V,"id","power-and-cooling"),M(V,"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"),M(V,"href","#power-and-cooling"),M(_,"class","relative group"),M(B,"id","multigpu-connectivity"),M(B,"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"),M(B,"href","#multigpu-connectivity"),M(j,"class","relative group"),M(A,"id","nvlink"),M(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"),M(A,"href","#nvlink"),M(G,"class","relative group"),M(g,"href","https://en.wikipedia.org/wiki/NVLink"),M(g,"rel","nofollow"),M(ll,"href","https://www.nvidia.com/content/dam/en-zz/Solutions/geforce/ampere/pdf/NVIDIA-ampere-GA102-GPU-Architecture-Whitepaper-V1.pdf"),M(ll,"rel","nofollow"),M(jl,"align","right"),M(Gl,"align","right"),M(Nl,"align","right")},m(l,s){e(document.head,C),i(l,Mt,s),i(l,u,s),e(u,N),e(N,Al),I(Z,Al,null),e(u,ce),e(u,Sl),e(Sl,Te),i(l,yt,s),i(l,b,s),e(b,Pe),e(b,R),e(R,Ee),e(b,Ie),i(l,wt,s),i(l,rl,s),e(rl,Je),i(l,mt,s),i(l,d,s),e(d,k),e(k,$l),I(X,$l,null),e(d,he),e(d,Ll),e(Ll,ve),i(l,ct,s),i(l,m,s),e(m,Zl),e(Zl,Ce),e(m,ue),e(m,Rl),e(Rl,de),e(m,_e),e(m,W),e(W,je),e(W,il),e(il,Ge),e(W,Ne),i(l,Tt,s),i(l,nl,s),e(nl,be),i(l,Pt,s),i(l,_,s),e(_,V),e(V,Xl),I(Q,Xl,null),e(_,ke),e(_,Wl),e(Wl,Ve),i(l,Et,s),i(l,ol,s),e(ol,Be),i(l,It,s),i(l,D,s),e(D,Ql),e(Ql,Ae),e(D,Se),i(l,Jt,s),i(l,Ul,s),e(Ul,$e),i(l,ht,s),i(l,fl,s),e(fl,Le),i(l,vt,s),i(l,Ml,s),e(Ml,Ze),i(l,Ct,s),i(l,yl,s),e(yl,Re),i(l,ut,s),i(l,wl,s),e(wl,Xe),i(l,dt,s),i(l,ml,s),e(ml,We),i(l,_t,s),i(l,x,s),e(x,Dl),e(Dl,Qe),e(x,De),i(l,jt,s),i(l,cl,s),e(cl,xe),i(l,Gt,s),i(l,Tl,s),e(Tl,Ye),i(l,Nt,s),i(l,Pl,s),e(Pl,He),i(l,bt,s),i(l,j,s),e(j,B),e(B,xl),I(Y,xl,null),e(j,Fe),e(j,Yl),e(Yl,ze),i(l,kt,s),i(l,El,s),e(El,Oe),i(l,Vt,s),I(H,l,s),i(l,Bt,s),i(l,Il,s),e(Il,qe),i(l,At,s),I(F,l,s),i(l,St,s),i(l,Jl,s),e(Jl,Ke),i(l,$t,s),I(z,l,s),i(l,Lt,s),i(l,hl,s),e(hl,ge),i(l,Zt,s),I(O,l,s),i(l,Rt,s),i(l,c,s),e(c,ls),e(c,Hl),e(Hl,ts),e(c,es),e(c,Fl),e(Fl,ss),e(c,as),i(l,Xt,s),i(l,vl,s),e(vl,ps),i(l,Wt,s),i(l,Cl,s),e(Cl,rs),i(l,Qt,s),i(l,G,s),e(G,A),e(A,zl),I(q,zl,null),e(G,is),e(G,Ol),e(Ol,ns),i(l,Dt,s),i(l,K,s),e(K,g),e(g,os),e(K,Us),i(l,xt,s),i(l,S,s),e(S,fs),e(S,ll),e(ll,Ms),e(S,ys),i(l,Yt,s),i(l,ul,s),e(ul,ql),e(ql,ws),i(l,Ht,s),i(l,T,s),e(T,ms),e(T,Kl),e(Kl,cs),e(T,Ts),e(T,gl),e(gl,Ps),e(T,Es),i(l,Ft,s),i(l,dl,s),e(dl,Is),i(l,zt,s),i(l,_l,s),e(_l,Js),i(l,Ot,s),i(l,$,s),e($,lt),e(lt,tl),e(tl,tt),e(tt,hs),e(tl,vs),e(tl,jl),e(jl,Cs),e($,us),e($,el),e(el,sl),e(sl,et),e(et,ds),e(sl,_s),e(sl,Gl),e(Gl,js),e(el,Gs),e(el,al),e(al,st),e(st,Ns),e(al,bs),e(al,Nl),e(Nl,ks),i(l,qt,s),i(l,L,s),e(L,Vs),e(L,at),e(at,Bs),e(L,As),i(l,Kt,s),i(l,bl,s),e(bl,Ss),i(l,gt,s),I(pl,l,s),i(l,le,s),i(l,y,s),e(y,$s),e(y,pt),e(pt,Ls),e(y,Zs),e(y,rt),e(rt,Rs),e(y,Xs),e(y,it),e(it,Ws),e(y,Qs),e(y,nt),e(nt,Ds),e(y,xs),e(y,ot),e(ot,Ys),te=!0},p:Up,i(l){te||(J(Z.$$.fragment,l),J(X.$$.fragment,l),J(Q.$$.fragment,l),J(Y.$$.fragment,l),J(H.$$.fragment,l),J(F.$$.fragment,l),J(z.$$.fragment,l),J(O.$$.fragment,l),J(q.$$.fragment,l),J(pl.$$.fragment,l),te=!0)},o(l){h(Z.$$.fragment,l),h(X.$$.fragment,l),h(Q.$$.fragment,l),h(Y.$$.fragment,l),h(H.$$.fragment,l),h(F.$$.fragment,l),h(z.$$.fragment,l),h(O.$$.fragment,l),h(q.$$.fragment,l),h(pl.$$.fragment,l),te=!1},d(l){t(C),l&&t(Mt),l&&t(u),v(Z),l&&t(yt),l&&t(b),l&&t(wt),l&&t(rl),l&&t(mt),l&&t(d),v(X),l&&t(ct),l&&t(m),l&&t(Tt),l&&t(nl),l&&t(Pt),l&&t(_),v(Q),l&&t(Et),l&&t(ol),l&&t(It),l&&t(D),l&&t(Jt),l&&t(Ul),l&&t(ht),l&&t(fl),l&&t(vt),l&&t(Ml),l&&t(Ct),l&&t(yl),l&&t(ut),l&&t(wl),l&&t(dt),l&&t(ml),l&&t(_t),l&&t(x),l&&t(jt),l&&t(cl),l&&t(Gt),l&&t(Tl),l&&t(Nt),l&&t(Pl),l&&t(bt),l&&t(j),v(Y),l&&t(kt),l&&t(El),l&&t(Vt),v(H,l),l&&t(Bt),l&&t(Il),l&&t(At),v(F,l),l&&t(St),l&&t(Jl),l&&t($t),v(z,l),l&&t(Lt),l&&t(hl),l&&t(Zt),v(O,l),l&&t(Rt),l&&t(c),l&&t(Xt),l&&t(vl),l&&t(Wt),l&&t(Cl),l&&t(Qt),l&&t(G),v(q),l&&t(Dt),l&&t(K),l&&t(xt),l&&t(S),l&&t(Yt),l&&t(ul),l&&t(Ht),l&&t(T),l&&t(Ft),l&&t(dl),l&&t(zt),l&&t(_l),l&&t(Ot),l&&t($),l&&t(qt),l&&t(L),l&&t(Kt),l&&t(bl),l&&t(gt),v(pl,l),l&&t(le),l&&t(y)}}}const yp={local:"custom-hardware-for-training",sections:[{local:"gpu",sections:[{local:"power-and-cooling",title:"\uC804\uC6D0 \uACF5\uAE09\uACFC \uB0C9\uAC01 "},{local:"multigpu-connectivity",sections:[{local:"nvlink",title:"NVLink "}],title:"\uB2E4\uC911 GPU \uC5F0\uACB0 \uBC29\uC2DD "}],title:"GPU "}],title:"\uD6C8\uB828\uC6A9 \uC0AC\uC6A9\uC790 \uB9DE\uCDA4\uD615 \uD558\uB4DC\uC6E8\uC5B4 "};function wp(Os){return fp(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Pp extends rp{constructor(C){super();ip(this,C,wp,Mp,np,{})}}export{Pp as default,yp as metadata};
