import{s as lt,o as at,n as st}from"../chunks/scheduler.d9d004e7.js";import{S as nt,i as pt,e as i,s as a,c,h as it,a as o,d as s,b as n,f as et,g as d,j as u,k as Be,l as ot,m as l,n as m,t as f,o as M,p as h}from"../chunks/index.4a2b774c.js";import{T as tt}from"../chunks/Tip.cf0287e4.js";import{C as ut,H as O,E as rt}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.c93fcd94.js";import{C as ee}from"../chunks/CodeBlock.8bd69f21.js";function ct(P){let p,y=`The special value <code>&quot;auto&quot;</code> enables to automatically get the correct or most efficient value.
You can also specify the values yourself but, if you do so, you should be careful not to have conflicting values with your training arguments.
It is strongly advised to read <a href="https://huggingface.co/docs/transformers/main_classes/deepspeed#shared-configuration" rel="nofollow">this section</a> in the Transformers documentation to completely understand how this works.`;return{c(){p=i("p"),p.innerHTML=y},l(r){p=o(r,"P",{"data-svelte-h":!0}),u(p)!=="svelte-1c56oyk"&&(p.innerHTML=y)},m(r,T){l(r,p,T)},p:st,d(r){r&&s(p)}}}function dt(P){let p,y="You should set <code>&quot;use_fused_adam&quot;: false</code> in your Gaudi configuration because it is not compatible with DeepSpeed yet.";return{c(){p=i("p"),p.innerHTML=y},l(r){p=o(r,"P",{"data-svelte-h":!0}),u(p)!=="svelte-1sjb75e"&&(p.innerHTML=y)},m(r,T){l(r,p,T)},p:st,d(r){r&&s(p)}}}function mt(P){let p,y,r,T,j,te,$,se,U,Se=`<a href="https://www.deepspeed.ai/" rel="nofollow">DeepSpeed</a> enables you to fit and train larger models on HPUs thanks to various optimizations described in the <a href="https://arxiv.org/abs/1910.02054" rel="nofollow">ZeRO paper</a>.
In particular, you can use the two following ZeRO configurations that have been validated to be fully functioning with Gaudi:`,le,b,Le="<li><strong>ZeRO-1</strong>: partitions the optimizer states across processes.</li> <li><strong>ZeRO-2</strong>: partitions the optimizer states + gradients across processes.</li> <li><strong>ZeRO-3</strong>: ZeRO-2 + full model state is partitioned across the processes.</li>",ae,_,Re="These configurations are fully compatible with Intel Gaudi Mixed Precision and can thus be used to train your model in <em>bf16</em> precision.",ne,I,We='You can find more information about DeepSpeed Gaudi integration <a href="https://docs.habana.ai/en/latest/PyTorch/DeepSpeed/DeepSpeed_User_Guide/DeepSpeed_User_Guide.html#deepspeed-user-guide" rel="nofollow">here</a>.',pe,C,ie,v,Ee='To use DeepSpeed on Gaudi, you need to install Optimum for Intel Gaudi and <a href="https://github.com/HabanaAI/DeepSpeed" rel="nofollow">DeepSpeed fork for Intel Gaudi</a> with:',oe,H,ue,Z,re,X,Ae=`The <code>GaudiTrainer</code> allows using DeepSpeed as easily as the <a href="https://huggingface.co/docs/transformers/main_classes/trainer" rel="nofollow">Transformers Trainer</a>.
This can be done in 3 steps:`,ce,G,ke="<li>A DeepSpeed configuration has to be defined.</li> <li>The <code>deepspeed</code> training argument enables to specify the path to the DeepSpeed configuration.</li> <li>The <code>deepspeed</code> launcher must be used to run your script.</li>",de,B,xe=`These steps are detailed below.
A comprehensive guide about how to use DeepSpeed with the Transformers Trainer is also available <a href="https://huggingface.co/docs/transformers/main_classes/deepspeed" rel="nofollow">here</a>.`,me,S,fe,L,ze=`The DeepSpeed configuration to use is passed through a JSON file and enables you to choose the optimizations to apply.
Here is an example for applying ZeRO-2 optimizations and <em>bf16</em> precision:`,Me,R,he,w,ye,W,Ne='Other examples of configurations for HPUs are proposed <a href="https://github.com/HabanaAI/Model-References/tree/1.22.0/PyTorch/nlp/DeepSpeedExamples/deepspeed-bert/scripts" rel="nofollow">here</a> by Intel.',Te,E,Ye=`The <a href="https://huggingface.co/docs/transformers/main_classes/deepspeed#configuration" rel="nofollow">Transformers documentation</a> explains how to write a configuration from scratch very well.
A more complete description of all configuration possibilities is available <a href="https://www.deepspeed.ai/docs/config-json/" rel="nofollow">here</a>.`,we,A,ge,k,qe="To use DeepSpeed, you must specify <code>deespeed=path_to_my_deepspeed_configuration</code> in your <code>GaudiTrainingArguments</code> instance:",Je,x,je,z,Ve="This argument both indicates that DeepSpeed should be used and points to your DeepSpeed configuration.",$e,N,Ue,Y,De="Finally, there are two possible ways to launch your script:",be,q,Qe='<li>Using the <a href="https://github.com/huggingface/optimum-habana/blob/main/examples/gaudi_spawn.py" rel="nofollow">gaudi_spawn.py</a> script:</li>',_e,V,Ie,D,Fe="where <code>--argX</code> is an argument of the script to run with DeepSpeed.",Ce,g,Pe="<li>Using the <code>DistributedRunner</code> directly in code:</li>",ve,Q,He,J,Ze,F,Xe,K,Ge;return j=new ut({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),$=new O({props:{title:"DeepSpeed for HPUs",local:"deepspeed-for-hpus",headingTag:"h1"}}),C=new O({props:{title:"Setup",local:"setup",headingTag:"h2"}}),H=new ee({props:{code:"cGlwJTIwaW5zdGFsbCUyMG9wdGltdW0lNUJoYWJhbmElNUQlMEFwaXAlMjBpbnN0YWxsJTIwZ2l0JTJCaHR0cHMlM0ElMkYlMkZnaXRodWIuY29tJTJGSGFiYW5hQUklMkZEZWVwU3BlZWQuZ2l0JTQwMS4yMi4w",highlighted:`pip install optimum[habana]
pip install git+https://github.com/HabanaAI/DeepSpeed.git@1.22.0`,wrap:!1}}),Z=new O({props:{title:"Using DeepSpeed with Optimum for Intel Gaudi",local:"using-deepspeed-with-optimum-for-intel-gaudi",headingTag:"h2"}}),S=new O({props:{title:"DeepSpeed configuration",local:"deepspeed-configuration",headingTag:"h3"}}),R=new ee({props:{code:"JTdCJTBBJTIwJTIwJTIwJTIwJTIyc3RlcHNfcGVyX3ByaW50JTIyJTNBJTIwNjQlMkMlMEElMjAlMjAlMjAlMjAlMjJ0cmFpbl9iYXRjaF9zaXplJTIyJTNBJTIwJTIyYXV0byUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMnRyYWluX21pY3JvX2JhdGNoX3NpemVfcGVyX2dwdSUyMiUzQSUyMCUyMmF1dG8lMjIlMkMlMEElMjAlMjAlMjAlMjAlMjJncmFkaWVudF9hY2N1bXVsYXRpb25fc3RlcHMlMjIlM0ElMjAlMjJhdXRvJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIyYmYxNiUyMiUzQSUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMmVuYWJsZWQlMjIlM0ElMjB0cnVlJTBBJTIwJTIwJTIwJTIwJTdEJTJDJTBBJTIwJTIwJTIwJTIwJTIyZ3JhZGllbnRfY2xpcHBpbmclMjIlM0ElMjAxLjAlMkMlMEElMjAlMjAlMjAlMjAlMjJ6ZXJvX29wdGltaXphdGlvbiUyMiUzQSUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMnN0YWdlJTIyJTNBJTIwMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMm92ZXJsYXBfY29tbSUyMiUzQSUyMGZhbHNlJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIycmVkdWNlX3NjYXR0ZXIlMjIlM0ElMjBmYWxzZSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMmNvbnRpZ3VvdXNfZ3JhZGllbnRzJTIyJTNBJTIwZmFsc2UlMEElMjAlMjAlMjAlMjAlN0QlMEElN0Q=",highlighted:`<span class="hljs-punctuation">{</span>
    <span class="hljs-attr">&quot;steps_per_print&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-number">64</span><span class="hljs-punctuation">,</span>
    <span class="hljs-attr">&quot;train_batch_size&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;auto&quot;</span><span class="hljs-punctuation">,</span>
    <span class="hljs-attr">&quot;train_micro_batch_size_per_gpu&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;auto&quot;</span><span class="hljs-punctuation">,</span>
    <span class="hljs-attr">&quot;gradient_accumulation_steps&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;auto&quot;</span><span class="hljs-punctuation">,</span>
    <span class="hljs-attr">&quot;bf16&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>
        <span class="hljs-attr">&quot;enabled&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">true</span></span>
    <span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span>
    <span class="hljs-attr">&quot;gradient_clipping&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-number">1.0</span><span class="hljs-punctuation">,</span>
    <span class="hljs-attr">&quot;zero_optimization&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>
        <span class="hljs-attr">&quot;stage&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-number">2</span><span class="hljs-punctuation">,</span>
        <span class="hljs-attr">&quot;overlap_comm&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">false</span></span><span class="hljs-punctuation">,</span>
        <span class="hljs-attr">&quot;reduce_scatter&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">false</span></span><span class="hljs-punctuation">,</span>
        <span class="hljs-attr">&quot;contiguous_gradients&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">false</span></span>
    <span class="hljs-punctuation">}</span>
<span class="hljs-punctuation">}</span>`,wrap:!1}}),w=new tt({props:{$$slots:{default:[ct]},$$scope:{ctx:P}}}),A=new O({props:{title:"The deepspeed training argument",local:"the-deepspeed-training-argument",headingTag:"h3"}}),x=new ee({props:{code:"dHJhaW5pbmdfYXJncyUyMCUzRCUyMEdhdWRpVHJhaW5pbmdBcmd1bWVudHMoJTBBJTIwJTIwJTIwJTIwJTIzJTIwbXklMjB1c3VhbCUyMHRyYWluaW5nJTIwYXJndW1lbnRzLi4uJTBBJTIwJTIwJTIwJTIwdXNlX2hhYmFuYSUzRFRydWUlMkMlMEElMjAlMjAlMjAlMjB1c2VfbGF6eV9tb2RlJTNEVHJ1ZSUyQyUwQSUyMCUyMCUyMCUyMGdhdWRpX2NvbmZpZ19uYW1lJTNEcGF0aF90b19teV9nYXVkaV9jb25maWclMkMlMEElMjAlMjAlMjAlMjBkZWVwc3BlZWQlM0RwYXRoX3RvX215X2RlZXBzcGVlZF9jb25maWclMkMlMEEp",highlighted:`training_args = GaudiTrainingArguments(
    <span class="hljs-comment"># my usual training arguments...</span>
    use_habana=<span class="hljs-literal">True</span>,
    use_lazy_mode=<span class="hljs-literal">True</span>,
    gaudi_config_name=path_to_my_gaudi_config,
    deepspeed=path_to_my_deepspeed_config,
)`,wrap:!1}}),N=new O({props:{title:"Launching your script",local:"launching-your-script",headingTag:"h3"}}),V=new ee({props:{code:"cHl0aG9uJTIwZ2F1ZGlfc3Bhd24ucHklMjAlNUMlMEElMjAlMjAlMjAlMjAtLXdvcmxkX3NpemUlMjBudW1iZXJfb2ZfaHB1X3lvdV9oYXZlJTIwLS11c2VfZGVlcHNwZWVkJTIwJTVDJTBBJTIwJTIwJTIwJTIwcGF0aF90b19zY3JpcHQucHklMjAtLWFyZ3MxJTIwLS1hcmdzMiUyMC4uLiUyMC0tYXJnc04lMjAlNUMlMEElMjAlMjAlMjAlMjAtLWRlZXBzcGVlZCUyMHBhdGhfdG9fZGVlcHNwZWVkX2NvbmZpZw==",highlighted:`python gaudi_spawn.py \\
    --world_size number_of_hpu_you_have --use_deepspeed \\
    path_to_script.py --args1 --args2 ... --argsN \\
    --deepspeed path_to_deepspeed_config`,wrap:!1}}),Q=new ee({props:{code:"ZnJvbSUyMG9wdGltdW0uaGFiYW5hLmRpc3RyaWJ1dGVkJTIwaW1wb3J0JTIwRGlzdHJpYnV0ZWRSdW5uZXIlMEFmcm9tJTIwb3B0aW11bS51dGlscyUyMGltcG9ydCUyMGxvZ2dpbmclMEElMEF3b3JsZF9zaXplJTNEOCUyMCUyMyUyME51bWJlciUyMG9mJTIwSFBVcyUyMHRvJTIwdXNlJTIwKDElMjBvciUyMDgpJTBBJTBBJTIzJTIwZGVmaW5lJTIwZGlzdHJpYnV0ZWQlMjBydW5uZXIlMEFkaXN0cmlidXRlZF9ydW5uZXIlMjAlM0QlMjBEaXN0cmlidXRlZFJ1bm5lciglMEElMjAlMjAlMjAlMjBjb21tYW5kX2xpc3QlM0QlNUIlMjJzY3JpcHRzJTJGdHJhaW4ucHklMjAtLWFyZ3MxJTIwLS1hcmdzMiUyMC4uLiUyMC0tYXJnc04lMjAtLWRlZXBzcGVlZCUyMHBhdGhfdG9fZGVlcHNwZWVkX2NvbmZpZyUyMiU1RCUyQyUwQSUyMCUyMCUyMCUyMHdvcmxkX3NpemUlM0R3b3JsZF9zaXplJTJDJTBBJTIwJTIwJTIwJTIwdXNlX2RlZXBzcGVlZCUzRFRydWUlMkMlMEEpJTBBJTBBJTIzJTIwc3RhcnQlMjBqb2IlMEFyZXRfY29kZSUyMCUzRCUyMGRpc3RyaWJ1dGVkX3J1bm5lci5ydW4oKQ==",highlighted:`<span class="hljs-keyword">from</span> optimum.habana.distributed <span class="hljs-keyword">import</span> DistributedRunner
<span class="hljs-keyword">from</span> optimum.utils <span class="hljs-keyword">import</span> logging

world_size=<span class="hljs-number">8</span> <span class="hljs-comment"># Number of HPUs to use (1 or 8)</span>

<span class="hljs-comment"># define distributed runner</span>
distributed_runner = DistributedRunner(
    command_list=[<span class="hljs-string">&quot;scripts/train.py --args1 --args2 ... --argsN --deepspeed path_to_deepspeed_config&quot;</span>],
    world_size=world_size,
    use_deepspeed=<span class="hljs-literal">True</span>,
)

<span class="hljs-comment"># start job</span>
ret_code = distributed_runner.run()`,wrap:!1}}),J=new tt({props:{warning:!0,$$slots:{default:[dt]},$$scope:{ctx:P}}}),F=new rt({props:{source:"https://github.com/huggingface/optimum-habana/blob/main/docs/source/usage_guides/deepspeed.mdx"}}),{c(){p=i("meta"),y=a(),r=i("p"),T=a(),c(j.$$.fragment),te=a(),c($.$$.fragment),se=a(),U=i("p"),U.innerHTML=Se,le=a(),b=i("ul"),b.innerHTML=Le,ae=a(),_=i("p"),_.innerHTML=Re,ne=a(),I=i("p"),I.innerHTML=We,pe=a(),c(C.$$.fragment),ie=a(),v=i("p"),v.innerHTML=Ee,oe=a(),c(H.$$.fragment),ue=a(),c(Z.$$.fragment),re=a(),X=i("p"),X.innerHTML=Ae,ce=a(),G=i("ol"),G.innerHTML=ke,de=a(),B=i("p"),B.innerHTML=xe,me=a(),c(S.$$.fragment),fe=a(),L=i("p"),L.innerHTML=ze,Me=a(),c(R.$$.fragment),he=a(),c(w.$$.fragment),ye=a(),W=i("p"),W.innerHTML=Ne,Te=a(),E=i("p"),E.innerHTML=Ye,we=a(),c(A.$$.fragment),ge=a(),k=i("p"),k.innerHTML=qe,Je=a(),c(x.$$.fragment),je=a(),z=i("p"),z.textContent=Ve,$e=a(),c(N.$$.fragment),Ue=a(),Y=i("p"),Y.textContent=De,be=a(),q=i("ol"),q.innerHTML=Qe,_e=a(),c(V.$$.fragment),Ie=a(),D=i("p"),D.innerHTML=Fe,Ce=a(),g=i("ol"),g.innerHTML=Pe,ve=a(),c(Q.$$.fragment),He=a(),c(J.$$.fragment),Ze=a(),c(F.$$.fragment),Xe=a(),K=i("p"),this.h()},l(e){const t=it("svelte-u9bgzb",document.head);p=o(t,"META",{name:!0,content:!0}),t.forEach(s),y=n(e),r=o(e,"P",{}),et(r).forEach(s),T=n(e),d(j.$$.fragment,e),te=n(e),d($.$$.fragment,e),se=n(e),U=o(e,"P",{"data-svelte-h":!0}),u(U)!=="svelte-56e4si"&&(U.innerHTML=Se),le=n(e),b=o(e,"UL",{"data-svelte-h":!0}),u(b)!=="svelte-kgb90w"&&(b.innerHTML=Le),ae=n(e),_=o(e,"P",{"data-svelte-h":!0}),u(_)!=="svelte-4nulv6"&&(_.innerHTML=Re),ne=n(e),I=o(e,"P",{"data-svelte-h":!0}),u(I)!=="svelte-1i8w0iv"&&(I.innerHTML=We),pe=n(e),d(C.$$.fragment,e),ie=n(e),v=o(e,"P",{"data-svelte-h":!0}),u(v)!=="svelte-2lerxq"&&(v.innerHTML=Ee),oe=n(e),d(H.$$.fragment,e),ue=n(e),d(Z.$$.fragment,e),re=n(e),X=o(e,"P",{"data-svelte-h":!0}),u(X)!=="svelte-1wp4535"&&(X.innerHTML=Ae),ce=n(e),G=o(e,"OL",{"data-svelte-h":!0}),u(G)!=="svelte-1ntjoon"&&(G.innerHTML=ke),de=n(e),B=o(e,"P",{"data-svelte-h":!0}),u(B)!=="svelte-1qlsvc6"&&(B.innerHTML=xe),me=n(e),d(S.$$.fragment,e),fe=n(e),L=o(e,"P",{"data-svelte-h":!0}),u(L)!=="svelte-omkprw"&&(L.innerHTML=ze),Me=n(e),d(R.$$.fragment,e),he=n(e),d(w.$$.fragment,e),ye=n(e),W=o(e,"P",{"data-svelte-h":!0}),u(W)!=="svelte-197r93s"&&(W.innerHTML=Ne),Te=n(e),E=o(e,"P",{"data-svelte-h":!0}),u(E)!=="svelte-p9oz8p"&&(E.innerHTML=Ye),we=n(e),d(A.$$.fragment,e),ge=n(e),k=o(e,"P",{"data-svelte-h":!0}),u(k)!=="svelte-1lz62vo"&&(k.innerHTML=qe),Je=n(e),d(x.$$.fragment,e),je=n(e),z=o(e,"P",{"data-svelte-h":!0}),u(z)!=="svelte-rn3ru8"&&(z.textContent=Ve),$e=n(e),d(N.$$.fragment,e),Ue=n(e),Y=o(e,"P",{"data-svelte-h":!0}),u(Y)!=="svelte-3oz27i"&&(Y.textContent=De),be=n(e),q=o(e,"OL",{"data-svelte-h":!0}),u(q)!=="svelte-6f8v09"&&(q.innerHTML=Qe),_e=n(e),d(V.$$.fragment,e),Ie=n(e),D=o(e,"P",{"data-svelte-h":!0}),u(D)!=="svelte-rdi9ac"&&(D.innerHTML=Fe),Ce=n(e),g=o(e,"OL",{start:!0,"data-svelte-h":!0}),u(g)!=="svelte-119mulz"&&(g.innerHTML=Pe),ve=n(e),d(Q.$$.fragment,e),He=n(e),d(J.$$.fragment,e),Ze=n(e),d(F.$$.fragment,e),Xe=n(e),K=o(e,"P",{}),et(K).forEach(s),this.h()},h(){Be(p,"name","hf:doc:metadata"),Be(p,"content",ft),Be(g,"start","2")},m(e,t){ot(document.head,p),l(e,y,t),l(e,r,t),l(e,T,t),m(j,e,t),l(e,te,t),m($,e,t),l(e,se,t),l(e,U,t),l(e,le,t),l(e,b,t),l(e,ae,t),l(e,_,t),l(e,ne,t),l(e,I,t),l(e,pe,t),m(C,e,t),l(e,ie,t),l(e,v,t),l(e,oe,t),m(H,e,t),l(e,ue,t),m(Z,e,t),l(e,re,t),l(e,X,t),l(e,ce,t),l(e,G,t),l(e,de,t),l(e,B,t),l(e,me,t),m(S,e,t),l(e,fe,t),l(e,L,t),l(e,Me,t),m(R,e,t),l(e,he,t),m(w,e,t),l(e,ye,t),l(e,W,t),l(e,Te,t),l(e,E,t),l(e,we,t),m(A,e,t),l(e,ge,t),l(e,k,t),l(e,Je,t),m(x,e,t),l(e,je,t),l(e,z,t),l(e,$e,t),m(N,e,t),l(e,Ue,t),l(e,Y,t),l(e,be,t),l(e,q,t),l(e,_e,t),m(V,e,t),l(e,Ie,t),l(e,D,t),l(e,Ce,t),l(e,g,t),l(e,ve,t),m(Q,e,t),l(e,He,t),m(J,e,t),l(e,Ze,t),m(F,e,t),l(e,Xe,t),l(e,K,t),Ge=!0},p(e,[t]){const Oe={};t&2&&(Oe.$$scope={dirty:t,ctx:e}),w.$set(Oe);const Ke={};t&2&&(Ke.$$scope={dirty:t,ctx:e}),J.$set(Ke)},i(e){Ge||(f(j.$$.fragment,e),f($.$$.fragment,e),f(C.$$.fragment,e),f(H.$$.fragment,e),f(Z.$$.fragment,e),f(S.$$.fragment,e),f(R.$$.fragment,e),f(w.$$.fragment,e),f(A.$$.fragment,e),f(x.$$.fragment,e),f(N.$$.fragment,e),f(V.$$.fragment,e),f(Q.$$.fragment,e),f(J.$$.fragment,e),f(F.$$.fragment,e),Ge=!0)},o(e){M(j.$$.fragment,e),M($.$$.fragment,e),M(C.$$.fragment,e),M(H.$$.fragment,e),M(Z.$$.fragment,e),M(S.$$.fragment,e),M(R.$$.fragment,e),M(w.$$.fragment,e),M(A.$$.fragment,e),M(x.$$.fragment,e),M(N.$$.fragment,e),M(V.$$.fragment,e),M(Q.$$.fragment,e),M(J.$$.fragment,e),M(F.$$.fragment,e),Ge=!1},d(e){e&&(s(y),s(r),s(T),s(te),s(se),s(U),s(le),s(b),s(ae),s(_),s(ne),s(I),s(pe),s(ie),s(v),s(oe),s(ue),s(re),s(X),s(ce),s(G),s(de),s(B),s(me),s(fe),s(L),s(Me),s(he),s(ye),s(W),s(Te),s(E),s(we),s(ge),s(k),s(Je),s(je),s(z),s($e),s(Ue),s(Y),s(be),s(q),s(_e),s(Ie),s(D),s(Ce),s(g),s(ve),s(He),s(Ze),s(Xe),s(K)),s(p),h(j,e),h($,e),h(C,e),h(H,e),h(Z,e),h(S,e),h(R,e),h(w,e),h(A,e),h(x,e),h(N,e),h(V,e),h(Q,e),h(J,e),h(F,e)}}}const ft='{"title":"DeepSpeed for HPUs","local":"deepspeed-for-hpus","sections":[{"title":"Setup","local":"setup","sections":[],"depth":2},{"title":"Using DeepSpeed with Optimum for Intel Gaudi","local":"using-deepspeed-with-optimum-for-intel-gaudi","sections":[{"title":"DeepSpeed configuration","local":"deepspeed-configuration","sections":[],"depth":3},{"title":"The deepspeed training argument","local":"the-deepspeed-training-argument","sections":[],"depth":3},{"title":"Launching your script","local":"launching-your-script","sections":[],"depth":3}],"depth":2}],"depth":1}';function Mt(P){return at(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Jt extends nt{constructor(p){super(),pt(this,p,Mt,mt,lt,{})}}export{Jt as component};
