Ինչպես օգտագործել NVIDIA GPU-ները արհեստական ​​ինտելեկտի մարզումների համար

Ինչպես օգտագործել NVIDIA GPU-ները արհեստական ​​ինտելեկտի մարզումների համար

Կարճ պատասխան. Օգտագործեք NVIDIA GPU-ները արհեստական ​​ինտելեկտի մարզումների համար՝ նախ nvidia-smi-ի միջոցով ստուգելով, որ դրայվերը և GPU-ն տեսանելի են , այնուհետև տեղադրելով համատեղելի framework/CUDA stack և գործարկելով փոքրիկ «model + batch on cuda» թեստը: Եթե հիշողությունը սպառվել է, նվազեցրեք batch-ի չափը և օգտագործեք խառը ճշգրտություն՝ միաժամանակ վերահսկելով օգտագործումը, հիշողությունը և ջերմաստիճանը:

Հիմնական եզրակացություններ՝

Հիմնական ստուգումներ. Սկսեք nvidia-smi-; շտկեք դրայվերի տեսանելիությունը նախքան շրջանակները տեղադրելը։

Ստեքի համատեղելիություն. Պահպանեք դրայվերի, CUDA-ի գործարկման և շրջանակի տարբերակների համապատասխանությունը՝ խափանումներից և անկայուն տեղադրումներից խուսափելու համար։

Փոքրիկ հաջողություն. փորձարկումները մասշտաբավորելուց առաջ հաստատեք CUDA-ի վրա մեկ առաջ անցման կատարումը։

VRAM կարգապահություն. հենվեք խառը ճշգրտության, գրադիենտային կուտակման և ստուգիչ կետերի վրա՝ ավելի մեծ մոդելներին համապատասխանելու համար։

Մոնիթորինգի սովորություն. հետևեք օգտագործմանը, հիշողության օրինաչափություններին, հզորությանը և ջերմաստիճաններին, որպեսզի վաղ հայտնաբերեք խոչընդոտները:

Հոդվածներ, որոնք կարող են ձեզ դուր գալ կարդալ սրանից հետո

🔗 Ինչպես ստեղծել արհեստական ​​բանականության գործակալ
Նախագծեք ձեր գործակալի աշխատանքային հոսքը, գործիքները, հիշողությունը և անվտանգության միջոցները։.

🔗 Ինչպես տեղակայել արհեստական ​​բանականության մոդելները
Հուսալիորեն կարգավորեք միջավայրերը, փաթեթավորեք մոդելները և առաքեք արտադրության։.

🔗 Ինչպես չափել արհեստական ​​բանականության արդյունավետությունը
Ընտրեք չափանիշներ, անցկացրեք գնահատումներ և հետևեք արդյունավետությանը ժամանակի ընթացքում։.

🔗 Ինչպես ավտոմատացնել առաջադրանքները արհեստական ​​բանականության միջոցով
Ավտոմատացրեք կրկնվող աշխատանքը՝ օգտագործելով հուշումներ, աշխատանքային հոսքեր և ինտեգրացիաներ։.


1) Ընդհանուր պատկերը՝ ինչ եք անում, երբ «մարզվում եք GPU-ով» 🧠⚡

Երբ դուք մարզում եք արհեստական ​​բանականության մոդելներ, դուք հիմնականում կատարում եք մատրիցային մաթեմատիկայի մի ամբողջ լեռ։ Գրաֆիկական պրոցեսորները նախատեսված են նման զուգահեռ աշխատանքի համար, ուստի PyTorch-ի, TensorFlow-ի և JAX-ի նման շրջանակները կարող են ծանր բեռը թեթևացնել գրաֆիկական պրոցեսորի վրա։ (PyTorch CUDA փաստաթղթեր, TensorFlow տեղադրում (pip), JAX արագ մեկնարկ)

Գործնականում «NVIDIA GPU-ների օգտագործումը մարզումների համար» սովորաբար նշանակում է

  • Ձեր մոդելի պարամետրերը (հիմնականում) գտնվում են GPU VRAM-ում

  • Ձեր խմբաքանակները RAM-ից տեղափոխվում են VRAM յուրաքանչյուր քայլով

  • Ձեր առաջ և հետընթաց փոխանցումները կատարվում են CUDA միջուկների վրա (CUDA ծրագրավորման ուղեցույց)

  • Ձեր օպտիմիզատորի թարմացումները տեղի են ունենում GPU-ի վրա (իդեալականում)

  • Դուք վերահսկում եք ջերմաստիճանը, հիշողությունը, օգտագործումը, որպեսզի ոչինչ չեփեք 🔥 (NVIDIA nvidia-smi փաստաթղթեր)

Եթե ​​դա շատ է թվում, մի անհանգստացեք։ Դա հիմնականում ստուգաթերթիկ է և մի քանի սովորություններ, որոնք դուք ժամանակի ընթացքում եք ձեռք բերում։.


2) Ի՞նչն է NVIDIA GPU AI մարզումների համակարգի լավ տարբերակը դարձնում 🤌

Սա «մի՛ կառուցեք տուն ժելեի վրա» բաժինն է։ NVIDIA GPU-ների արհեստական ​​ինտելեկտի մարզումների համար է այն, որը ցածր դրամա է։ Ցածր դրամա է կայունը։ Կայուն է արագը։ Արագը… լավ, արագ է 😄

Հաստատուն մարզման համակարգը սովորաբար ներառում է

  • Բավարար VRAM ձեր խմբաքանակի չափի + մոդելի + օպտիմիզատորի վիճակների համար

    • VRAM-ը նման է ճամպրուկի տարածքի։ Կարող ես ավելի խելացիորեն փաթեթավորել, բայց անվերջ չես կարող փաթեթավորել։.

  • Համապատասխան ծրագրային ապահովման փաթեթ (դրայվեր + CUDA runtime + framework համատեղելիություն) (PyTorch Get Started (CUDA selector), TensorFlow install (pip))

  • Արագ պահեստավորում (NVMe-ն շատ է օգնում մեծ տվյալների հավաքածուների համար)

  • Լավ CPU + RAM, այնպես որ տվյալների բեռնումը չի ծանրաբեռնում GPU-ն (PyTorch-ի կատարողականի կարգավորման ուղեցույց)

  • Սառեցման և հզորության հզորություն (չգնահատված մինչև վերջ 😬)

  • Վերարտադրելի միջավայր (venv/conda կամ կոնտեյներներ), որպեսզի թարմացումները չվերածվեն քաոսի (NVIDIA կոնտեյներների գործիքակազմի ակնարկ)

Եվս մեկ բան, որը մարդիկ բաց են թողնում

  • Մոնիթորինգի սովորություն . դուք ստուգում եք GPU հիշողությունը և օգտագործումը, ինչպես հայելիները նայում եք վարելիս: (NVIDIA nvidia-smi փաստաթղթեր)


3) Համեմատական ​​աղյուսակ - NVIDIA GPU-ներով մարզվելու հայտնի եղանակներ (առանձնահատկություններով) 📊

Ստորև բերված է արագ «որն է համապատասխանում» խորամանկ հարցաթերթիկը։ Գները մոտավոր են (քանի որ իրականությունը տարբեր է), և այո, այս բջիջներից մեկը մի փոքր անկապ է, միտումնավոր։.

Գործիք / մոտեցում Լավագույնը Գինը Ինչու է այն աշխատում (հիմնականում)
PyTorch (վանիլային) PyTorch մարդկանց մեծ մասը, նախագծերի մեծ մասը Անվճար Ճկուն, հսկայական էկոհամակարգ, հեշտ վրիպազերծում - նաև բոլորն ունեն կարծիքներ
PyTorch Lightning Lightning փաստաթղթերը թիմեր, կառուցվածքային մարզումներ Անվճար Նվազեցնում է ստանդարտ, ավելի մաքուր ցիկլերը. երբեմն թվում է «կախարդանք», մինչև որ այլևս չի գործում
Գրկախառնվող դեմք Տրանսֆորմերներ + Մարզիչ Մարզիչի փաստաթղթեր NLP + LLM նուրբ կարգավորում Անվճար Մարտկոցներով հագեցած մարզում, հիանալի կարգավորումներ, արագ հաղթանակներ 👍
Արագացնել Արագացնել փաստաթղթերը բազմա-GPU առանց ցավի Անվճար DDP-ն դարձնում է պակաս նյարդայնացնող, հարմար է մասշտաբը մեծացնելու համար՝ առանց ամեն ինչ վերաշարադրելու։
DeepSpeed ​​ZeRO փաստաթղթեր մեծ մոդելներ, հիշողության հնարքներ Անվճար ZeRO, բեռնաթափում, մասշտաբավորում - կարող են լինել բարդ, բայց բավարարող, երբ սեղմում են
TensorFlow + Keras TF տեղադրում արտադրական խողովակաշարեր Անվճար Հզոր գործիքակազմ, լավ տեղակայման պատմություն. ոմանց դուր է գալիս, ոմանց՝ աննկատ՝ ոչ
JAX + Flax JAX արագ մեկնարկ / Flax փաստաթղթեր հետազոտություն + արագության սիրահարներ Անվճար XLA կոմպիլյացիան կարող է աներևակայելի արագ լինել, բայց վրիպազերծումը կարող է թվալ… աբստրակտ
NVIDIA NeMo NeMo-ի ակնարկ խոսքի + իրավունքի կառավարման աշխատանքային հոսքեր Անվճար NVIDIA-ի համար օպտիմալացված հավաքածու, լավ բաղադրատոմսեր՝ զգացողություն է, կարծես թե պատրաստում եք շքեղ ջեռոցում 🍳
Docker + NVIDIA Container Toolkit գործիքակազմի ակնարկ վերարտադրելի միջավայրեր Անվճար «Աշխատում է իմ մեքենայի վրա» դառնում է «աշխատում է մեր մեքենաների վրա» (կրկին, հիմնականում)

4) Քայլ մեկ՝ համոզվեք, որ ձեր GPU-ն ճիշտ է երևում 🕵️♂️

Մինչև տասնյակ բաներ տեղադրելը, ստուգեք հիմունքները։.

Բաներ, որոնք դուք կցանկանայիք, որ իրական լինեն

  • Մեքենան տեսնում է գրաֆիկական պրոցեսորը

  • NVIDIA դրայվերը ճիշտ է տեղադրված

  • GPU-ն ուրիշ բանով չի զբաղված

  • Դուք կարող եք հուսալիորեն հարցնել այն

Դասական ստուգումը հետևյալն է

Ինչ եք փնտրում՝

  • GPU-ի անվանումը (օրինակ՝ RTX, A-սերիա և այլն)

  • Վարորդի տարբերակը

  • Հիշողության օգտագործումը

  • Գործող գործընթացներ (NVIDIA nvidia-smi փաստաթղթեր)

Եթե ​​nvidia-smi-ն ձախողվի, կանգ առեք այստեղ։ Դեռ մի տեղադրեք շրջանակներ։ Դա նման է հաց թխելու փորձին, երբ ձեր վառարանը միացված չէ։ (NVIDIA համակարգի կառավարման ինտերֆեյս (NVSMI))

Փոքր մարդկային նշում. երբեմն nvidia-smi-ն աշխատում է, բայց ձեր մարզումը դեռևս ձախողվում է, քանի որ ձեր շրջանակի կողմից օգտագործվող CUDA runtime-ը չի համապատասխանում դրայվերի սպասումներին: Դուք հիմարություն չեք անում: Ահա թե ինչպես է… պարզապես այդպես է 😭 (PyTorch Get Start (CUDA selector), TensorFlow install (pip))


5) Կառուցեք ծրագրային ապահովման փաթեթը՝ դրայվերներ, CUDA, cuDNN և «համատեղելիության պարը» 💃

Ահա թե որտեղ են մարդիկ ժամեր կորցնում։ Հնարքն այն է, որ ընտրեք ուղի և հետևեք դրան։

Ընտրանք A. Framework-ի հետ համատեղելի CUDA (հաճախ ամենահեշտը)

Շատ PyTorch համակարգեր ունեն իրենց սեփական CUDA runtime-ը, ինչը նշանակում է, որ ձեզ անհրաժեշտ չէ համակարգում տեղադրված CUDA գործիքակազմի ամբողջական փաթեթ։ Հիմնականում ձեզ անհրաժեշտ է միայն համատեղելի NVIDIA դրայվեր։ (PyTorch-ի մեկնարկ (CUDA selector), PyTorch-ի նախորդ տարբերակներ (CUDA wheels))

Առավելություններ՝

  • Ավելի քիչ շարժվող մասեր

  • Ավելի հեշտ տեղադրումներ

  • Ավելի վերարտադրելի է յուրաքանչյուր միջավայրի համար

Թերություններ՝

  • Եթե ​​​​միջավայրերը պատահականորեն խառնեք, կարող եք շփոթվել

Ընտրանք B. Համակարգի CUDA գործիքակազմ (ավելի շատ վերահսկողություն)

Դուք տեղադրում եք CUDA գործիքակազմը համակարգի վրա և ամեն ինչ համապատասխանեցնում դրան։ (CUDA Toolkit փաստաթղթեր)

Առավելություններ՝

  • Ավելի շատ վերահսկողություն պատվերով կառուցվածքների համար, որոշ հատուկ գործիքակազմ

  • Հարմար է որոշակի գործողությունների կոմպիլյացիայի համար

Թերություններ՝

  • Ավելի շատ եղանակներ՝ տարբերակները չհամապատասխանելու և լուռ լաց լինելու համար

cuDNN և NCCL, մարդկային առումով

  • cuDNN-ը արագացնում է խորը ուսուցման պրիմիտիվները (փաթաթումներ, RNN բիթեր և այլն) (NVIDIA cuDNN փաստաթղթեր)

  • NCCL-ը արագ «GPU-ից GPU հաղորդակցության» գրադարան է բազմա-GPU մարզումների համար (NCCL-ի ակնարկ):

Եթե ​​դուք մարզվում եք բազմաթիվ գրաֆիկական պրոցեսորներով, NCCL-ը ձեր լավագույն ընկերն է, իսկ երբեմն՝ նաև ձեր քմահաճ սենյակակիցը։ (NCCL-ի ակնարկ)


6) Ձեր առաջին GPU մարզումը (PyTorch-ի օրինակով մտածելակերպ) ✅🔥

NVIDIA GPU-ների արհեստական ​​ինտելեկտի մարզումների համար օգտագործման ուղեցույցը հետևելու համար ձեզ նախ մեծ նախագիծ պետք չէ։ Ձեզ անհրաժեշտ է փոքրիկ հաջողություն։

Հիմնական գաղափարներ՝

  • Սարքի հայտնաբերում

  • Տեղափոխել մոդելը GPU-ի վրա

  • Տեղափոխել թենզորները GPU

  • Հաստատեք առաջ անցումները այնտեղ (PyTorch CUDA փաստաթղթեր)

Բաներ, որոնցով ես միշտ շուտ եմ ստուգում իմ ողջամտությունը

Հաճախ հանդիպող «ինչու՞ է դանդաղ» հարցերը

  • Ձեր տվյալների բեռնիչը չափազանց դանդաղ է (GPU-ն անգործուն է) (PyTorch-ի աշխատանքի կարգավորման ուղեցույց)

  • Դուք մոռացել եք տվյալները տեղափոխել GPU (վա՜յ):

  • Փաթեթի չափը փոքր է (GPU-ն թերօգտագործված է)

  • Դուք մարզման փուլում ծանրաբեռնված եք CPU նախնական մշակմամբ

Այո՛, ձեր գրաֆիկական պրոցեսորը հաճախ «այնքան էլ զբաղված» չի թվում, եթե խնդիրը տվյալները են։ Դա նման է մրցարշավորդ վարձելուն, ապա նրան ամեն շրջանի վառելիքի սպասեցնելուն։.


7) VRAM խաղը՝ խմբաքանակի չափ, խառը ճշգրտություն և ոչ պայթուցիկ 💥🧳

Գործնական մարզման խնդիրների մեծ մասը հանգում է հիշողությանը։ Եթե դուք սովորում եք մեկ հմտություն, սովորեք VRAM կառավարում։.

Հիշողության օգտագործումը կրճատելու արագ եղանակներ

  • Խառը ճշգրտություն (FP16/BF16)

  • Գրադիենտային կուտակում

  • Ավելի փոքր հաջորդականության երկարություն / կտրվածքի չափ

    • Դաժան, բայց արդյունավետ

  • Ակտիվացման ստուգիչ ստուգում

    • Փոխանակեք հաշվարկը հիշողության հետ (վերահաշվարկեք ակտիվացումները հետընթացի ընթացքում) (torch.utils.checkpoint)

  • Օգտագործեք ավելի թեթև օպտիմիզատոր

    • Որոշ օպտիմիզատորներ պահպանում են լրացուցիչ վիճակներ, որոնք կլանում են VRAM-ը։

«Ինչո՞ւ է VRAM-ը դեռ լիքը, երբ ես կանգ եմ առնում» պահը

Ֆրեյմվորքները հաճախ քեշավորում են հիշողությունը ՝ կատարողականության համար։ Սա նորմալ է։ Սա սարսափելի է թվում, բայց միշտ չէ, որ արտահոսք է։ Դուք սովորում եք կարդալ օրինաչափությունները։ (PyTorch CUDA semantics: caching allocator)

Գործնական սովորություն

  • Հատկացված և պահուստավորված հիշողության դիտում (շրջանակին հատուկ) (PyTorch CUDA semantics: caching allocator)

  • Մի՛ խուճապի մատնվեք առաջին սարսափելի թվից 😅


8) Իրականացրեք GPU-ի աշխատունակությունը՝ ժամանակի արժեք ունեցող կատարողականի կարգավորում 🏎️

«GPU-ի մարզումը աշխատեցնելը» առաջին քայլն է։ Այն արագացնելը ՝ երկրորդ քայլը։

Բարձր ազդեցության օպտիմալացումներ

  • Մեծացրեք խմբաքանակի չափը (մինչև ցավը սկսվի, ապա մի փոքր նվազեցրեք)

  • Օգտագործեք ամրացված հիշողություն տվյալների բեռնիչներում (հոսթից սարք ավելի արագ պատճեններ) (PyTorch-ի աշխատանքի կարգավորման ուղեցույց, PyTorch pin_memory/non_blocking ձեռնարկ)

  • Ավելացրեք տվյալների բեռնիչի աշխատողների քանակը (զգույշ եղեք, չափազանց շատերը կարող են հակառակ արդյունք տալ) (PyTorch-ի կատարողականի կարգավորման ուղեցույց)

  • Նախնական ներբեռնումը խմբաքանակներով է կատարվում , որպեսզի GPU-ն չաշխատի անգործուն վիճակում

  • Օգտագործեք միաձուլված գործողություններ / օպտիմիզացված միջուկներ , երբ հասանելի է

  • Օգտագործեք խառը ճշգրտություն (կրկին, դա այդքան լավ է) (PyTorch AMP փաստաթղթեր)

Ամենաանտեսված խոչընդոտը

Ձեր պահեստավորման և նախնական մշակման խողովակաշարը։ Եթե ձեր տվյալների բազմությունը հսկայական է և պահվում է դանդաղ սկավառակի վրա, ձեր գրաֆիկական պրոցեսորը դառնում է թանկարժեք տարածքային ջեռուցիչ։ Շատ առաջադեմ, շատ փայլուն տարածքային ջեռուցիչ։.

Նաև, մի փոքրիկ խոստովանություն. ես մեկ ժամ «օպտիմալացրել» եմ մոդելը, միայն թե հասկացա, որ գրանցման գործընթացը խոչընդոտ է։ Շատ տպագրելը կարող է դանդաղեցնել մարզումը։ Այո, կարող է։.


9) Բազմա-GPU մարզում - DDP, NCCL և մասշտաբավորում առանց քաոսի 🧩🤝

Երբ ուզում եք ավելի մեծ արագություն կամ ավելի մեծ մոդելներ, ապա օգտագործում եք բազմա-տեսա-կարող։ Ահա թե որտեղ է ամեն ինչ ավելի բարդանում։.

Ընդհանուր մոտեցումներ

  • Տվյալների զուգահեռ (DDP)

    • Բաժանեք խմբաքանակները GPU-ների միջև, համաժամեցրեք գրադիենտները

    • Սովորաբար լռելյայն «լավ» տարբերակն է (PyTorch DDP փաստաթղթեր)

  • Մոդելային զուգահեռ / Տենզորային զուգահեռ

    • Մոդելը բաժանեք GPU-ների միջև (շատ մեծ մոդելների համար)

  • Խողովակաշարի զուգահեռ

    • Մոդելի շերտերը բաժանել փուլերի (ինչպես հավաքման գծում, բայց թենզորների համար)

Եթե ​​նոր եք սկսում, DDP ոճի մարզումը լավագույն տարբերակն է: (PyTorch DDP ձեռնարկ)

Գործնական խորհուրդներ բազմա-GPU-ի համար

  • Համոզվեք, որ գրաֆիկական պրոցեսորները նմանապես կարող են աշխատել (խառնումը կարող է խոչընդոտ լինել)

  • Դիտեք միջկապը. NVLink-ը և PCIe-ն կարևոր են համաժամեցման ծանրաբեռնվածության դեպքում (NVIDIA NVLink-ի ակնարկ, NVIDIA NVLink փաստաթղթեր)

  • Պահպանեք մեկ GPU-ի համար խմբաքանակների չափերի հավասարակշռությունը

  • Մի անտեսեք պրոցեսորը և պահեստը. բազմա-տեսախցիկ պրոցեսորը կարող է մեծացնել տվյալների խցանումները

Եվ այո, NCCL սխալները կարող են թվալ հանելուկ, որը փաթաթված է «ինչու՞ հիմա» հարցի մեջ։ Դուք անիծված չեք։ Հավանաբար։ (NCCL-ի ակնարկ)


10) Մոնիթորինգ և պրոֆիլավորում՝ ոչ հմայիչ բաներ, որոնք ձեզ ժամեր են խնայում 📈🧯

Սկսելու համար ձեզ պետք չեն շքեղ վահանակներ։ Դուք պետք է նկատեք, երբ ինչ-որ բան սխալ է։.

Հիմնական ազդանշաններ, որոնք պետք է դիտարկել

  • GPU-ի օգտագործումը. այն մշտապես բարձր է, թե՞ կտրուկ։

  • Հիշողության օգտագործումը. կայուն, բարձրացող, թե՞ տարօրինակ։

  • Էլեկտրաէներգիայի սպառում. անսովոր ցածրը կարող է նշանակել թերօգտագործում

  • Ջերմաստիճաններ. բարձր ջերմաստիճանի կայունությունը կարող է դանդաղեցնել աշխատանքի արդյունավետությունը

  • CPU-ի օգտագործումը. տվյալների փոխանցման խողովակաշարի խնդիրները երևում են այստեղ (PyTorch-ի աշխատանքի կարգավորման ուղեցույց)

Պրոֆիլավորման մտածելակերպ (պարզ տարբերակ)

  • Եթե ​​GPU-ն ցածր է օգտագործվում՝ տվյալների կամ CPU-ի խցանում

  • Եթե ​​GPU-ն բարձր է, բայց դանդաղ՝ միջուկի անարդյունավետություն, ճշգրտություն կամ մոդելի ճարտարապետություն

  • Եթե ​​մարզման արագությունը պատահականորեն նվազում է՝ ջերմային սահմանափակում, ֆոնային գործընթացներ, մուտքի/ելքի խափանումներ

Գիտեմ, մոնիթորինգը զվարճալի չի թվում։ Բայց դա նման է ատամնաթել օգտագործելուն։ Նյարդայնացնող է, բայց հանկարծ կյանքդ լավանում է։.


11) Անսարքությունների լուծում՝ սովորական կասկածյալներ (և ոչ այնքան սովորականներ) 🧰😵💫

Այս բաժինը հիմնականում հետևյալն է. «նույն հինգ հարցերը՝ ընդմիշտ»։

Խնդիր՝ CUDA-ի հիշողությունը սպառվել է

Շտկումներ՝

Խնդիր. Մարզումը պատահաբար է աշխատում պրոցեսորի վրա

Շտկումներ՝

  • համոզվեք, որ մոդելը տեղափոխվել է CUDA

  • համոզվեք, որ թենզորները տեղափոխվել են CUDA

  • Ստուգեք շրջանակային սարքի կարգավորումը (PyTorch CUDA փաստաթղթեր)

Խնդիր՝ Տարօրինակ խափանումներ կամ հիշողությանը անօրինական մուտք

Շտկումներ՝

  • հաստատել դրայվերի + գործարկման ժամանակի համատեղելիությունը (PyTorch Get Started (CUDA selector), TensorFlow install (pip))

  • փորձեք մաքուր միջավայր

  • նվազեցնել հատուկ գործողությունները

  • վերագործարկել դետերմինիստական ​​​​կարգավորումներով՝ վերարտադրելու համար

Խնդիր՝ Ավելի դանդաղ, քան սպասվում էր

Շտկումներ՝

Խնդիր. Բազմա-տեսախցիկի կախումներ

Շտկումներ՝

  • հաստատեք ճիշտ backend կարգավորումները (PyTorch բաշխված փաստաթղթեր)

  • ստուգեք NCCL միջավայրի կարգավորումները (ուշադիր) (NCCL-ի ակնարկ)

  • նախ փորձարկեք մեկ GPU

  • համոզվեք, որ ցանցը / միջկապը առողջ է

Փոքրիկ հետադարձ նշում. երբեմն լուծումը բառացիորեն վերագործարկումն է։ Դա հիմարություն է թվում։ Այն աշխատում է։ Համակարգիչներն այդպիսին են։.


12) Արժեք և գործնականություն՝ ճիշտ NVIDIA GPU-ի ընտրություն և կարգավորում՝ առանց չափազանց շատ մտածելու 💸🧠

Ոչ բոլոր նախագծերն են պահանջում ամենամեծ GPU-ն։ Երբեմն ձեզ բավարար GPU է պետք։

Եթե ​​դուք մանրակրկիտ կարգավորում եք միջին չափի մոդելները

Եթե ​​դուք մարզում եք ավելի մեծ մոդելներ զրոյից

Եթե ​​դուք փորձարկումներ եք անում

  • Դուք ցանկանում եք արագ կրկնություն

  • Մի՛ ծախսեք ձեր ամբողջ գումարը GPU-ի վրա, իսկ հետո մի՛ սպառեք հիշողությունն ու օպերատիվ հիշողությունը

  • Հավասարակշռված համակարգը գերազանցում է անհավասար համակարգը (օրերի մեծ մասում)

Եվ իրականում, դուք կարող եք շաբաթներ վատնել «իդեալական» սարքավորումների ընտրության վրա։ Ստեղծեք ինչ-որ բան, չափեք, ապա կարգավորեք։ Իրական թշնամին հետադարձ կապի օղակ չունենալն է։.


Եզրափակիչ նշումներ - Ինչպես օգտագործել NVIDIA GPU-ները արհեստական ​​ինտելեկտի մարզումների համար՝ առանց խելագարվելու 😌✅

Եթե ​​այս ուղեցույցից ուրիշ ոչինչ չեք հասկանում, թե ինչպես օգտագործել NVIDIA GPU-ները արհեստական ​​ինտելեկտի մարզումների համար, ապա հետևեք հետևյալին.

NVIDIA գրաֆիկական պրոցեսորների վրա մարզվելը այն հմտություններից մեկն է, որը թվում է վախեցնող, ապա հանկարծ այն պարզապես… նորմալ է դառնում։ Ինչպես մեքենա վարել սովորելը։ Սկզբում ամեն ինչ աղմկոտ է և շփոթեցնող, և դուք չափազանց ուժեղ եք սեղմում ղեկը։ Հետո մի օր դուք վարում եք մեքենան, սուրճ եք խմում և անփույթ լուծում խմբաքանակի չափի խնդիրը, կարծես դա մեծ բան չէ։.

Իրական աշխարհի օրինակ՝ փոքր պատկերի դասակարգչի մարզում մեկ NVIDIA GPU-ի վրա 🧪🖼️

Սցենար

Պատկերացրեք, որ մի փոքր էլեկտրոնային առևտրի թիմ ցանկանում է մարզել պատկերների դասակարգչի, որը ապրանքների լուսանկարները դասակարգում է հինգ կատեգորիայի՝ կոշիկներ, պայուսակներ, բաճկոններ, ժամացույցներ և աքսեսուարներ։.

Նրանք չեն մարզում հսկա մոդել զրոյից։ Նրանք նուրբ կարգավորում են նախապես մարզված տեսողության մոդելը մեկ NVIDIA GPU-ի վրա, որպեսզի թիմը կարողանա արագ ստուգել, ​​թե արդյոք գաղափարը արժե մասշտաբավորել։.

Նպատակը պարզ է. ապացուցել, որ GPU-ի կարգավորումները աշխատում են, խուսափել CUDA քաոսից և կառուցել կրկնվող մարզումների ցիկլ՝ նախքան ավելի մեծ սարքավորումների կամ ամպային աշխատանքների վրա գումար ծախսելը։.

Ինչ է անհրաժեշտ կարգավորման համար

Այս տեսակի թեստի համար ձեզ հարկավոր կլինի

Մեքենա՝ մեկ NVIDIA GPU-ով և բավարար VRAM-ով՝ խմբաքանակի չափի համար։

Աշխատող NVIDIA դրայվերը հաստատվել է nvidia-smi-ի միջոցով

Մաքուր Python միջավայր PyTorch-ի, TensorFlow-ի կամ JAX-ի համար

Փոքր պիտակավորված պատկերի տվյալների հավաքածու, իդեալականորեն բաժանված վերապատրաստման, վավերացման և փորձարկման թղթապանակների

Համեմատության համար CPU-ի բազային ժամանակի հաշվարկ

Պարզ գրանցման աղյուսակ՝ քայլերի ժամանակի, GPU հիշողության, GPU-ի օգտագործման, ջերմաստիճանի և վավերացման ճշգրտության վերաբերյալ։

Մինչև պատշաճ մարզումը սկսելը, թիմը պետք է անցկացնի CUDA-ի փոքրիկ թեստ՝ բեռնելով մեկ խմբաքանակ, տեղափոխելով մոդելը և խմբաքանակը CUDA, կատարելով մեկ առաջխաղացում և հաստատելով GPU հիշողության ավելացումը nvidia-smi-ում։.

Օրինակային հրահանգ

Գործնական նախագծի հրահանգը կարող է այսպիսի տեսք ունենալ

Մարզեք փոքր ապրանքի պատկերի դասակարգիչ՝ օգտագործելով նախապես մարզված ResNet ոճի մոդել: Նախ հաստատեք, որ nvidia-smi-ն կարող է տեսնել գրաֆիկական պրոցեսորը: Այնուհետև լրիվ մարզումից առաջ անցկացրեք մեկ խմբաքանակով CUDA թեստ: Օգտագործեք խառը ճշգրտություն, եթե այն աջակցվում է: Սկսեք 32 խմբաքանակի չափից, մեծացրեք միայն այն դեպքում, եթե գրաֆիկական պրոցեսորի հիշողությունը մնա կայուն, և յուրաքանչյուր գործարկումից հետո գրանցեք քայլի ժամանակը, գրաֆիկական պրոցեսորի հիշողության օգտագործումը, գրաֆիկական պրոցեսորի օգտագործումը, ջերմաստիճանը և վավերացման ճշգրտությունը: Եթե հայտնվի CUDA-ի հիշողությունը սպառված է, մոդելը փոխելուց առաջ նվազեցրեք խմբաքանակի չափը:.

Ինչպես փորձարկել այն

Խելամիտ փորձարկման պլանը կլինի հետևյալը

  1. Գործարկեք nvidia-smi հրամանը և գրանցեք գրաֆիկական պրոցեսորի անունը, դրայվերի տարբերակը, անգործուն հիշողության օգտագործումը և ջերմաստիճանը։.

  2. Գործարկեք CPU-ի մեկ խմբաքանակի թեստ՝ տվյալների հավաքածուի և մոդելի կոդի աշխատանքը հաստատելու համար։.

  3. Գործարկեք նույն մեկ խմբաքանակի թեստը Cuda-ի վրա։.

  4. Մարզվեք 200 քայլով՝ 32 խմբաքանակով։.

  5. Կրկնեք խառը ճշգրտությունը միացված վիճակում։.

  6. Փորձեք 64-րդ խմբաքանակի չափը միայն այն դեպքում, եթե առաջին գործարկումը բավարար VRAM ազատ տարածք է թողնում։.

  7. Համեմատեք ստուգման ճշգրտությունը, միջին քայլի ժամանակը, գագաթնակետային VRAM-ը և GPU ջերմաստիճանը։.

Լավ արդյունքը պարզապես «մարզվելը» չէ։ Լավ արդյունքը «մարզվել է գրաֆիկական պրոցեսորի վրա, արագությունը բարելավվել է, հիշողությունը մնացել է կայուն, և աշխատանքը կարող է կրկնվել վաղը առանց ամեն ինչ վերատեղադրելու»։.

Արդյունք

Նկարազարդ արդյունք, որը հիմնված է երեք փոքր 200 քայլանոց թեստերի ժամանակագրման վրա՝ պրոցեսորից մեկ NVIDIA GPU-ի վրա մարզումը տեղափոխելուց առաջ և հետո։

Միայն CPU-ի բազային արժեքը՝ 3.4 վայրկյան յուրաքանչյուր մարզման քայլի համար

GPU FP32-ով. 0.42 վայրկյան մարզման յուրաքանչյուր քայլի համար

GPU խառը ճշգրտությամբ՝ 0.28 վայրկյան մարզման յուրաքանչյուր քայլի համար

Առավելագույն GPU հիշողություն 32 խմբաքանակի չափսով՝ 5.8 ԳԲ

GPU-ի առավելագույն հզորության հիշողություն՝ 64 խմբաքանակի չափսով՝ 10.9 ԳԲ

Փաթեթի չափս 96. ձախողվեց CUDA-ի հիշողության պակասի պատճառով

Գրաֆիկական պրոցեսորի օգտագործումը կայուն աշխատանքի ժամանակ՝ 76%-ից մինչև 91%

Ջերմաստիճանը կայուն պայմաններում՝ 67°C-ից մինչև 73°C

Կարճ փորձարկումից հետո վավերացման ճշգրտությունը՝ 82% FP32-ի դեպքում, 82.4% խառը ճշգրտությամբ։

Այս օրինակի գնահատման մեջ, խառը ճշգրտությունը կրճատել է քայլի ժամանակը մոտ 33%-ով՝ համեմատած FP32 GPU-ի աշխատանքի հետ, միաժամանակ պահպանելով վավերացման ճշգրտությունը մոտավորապես նույնը: Թիմը կարողացել է ստուգել այս թվերը՝ ժամանակացույց սահմանելով յուրաքանչյուր մարզման քայլի համար, ստուգելով nvidia-smi-ն աշխատանքի ընթացքում և պահպանելով վավերացման ճշգրտությունը յուրաքանչյուր փորձարկումից հետո:.

Ի՞նչը կարող է սխալ ընթանալ

Ամենատարածված սխալը չափազանց վաղ մասշտաբավորումն է։ Եթե մեկ խմբաքանակով CUDA թեստը ձախողվի, ամբողջական մարզումը կախարդականորեն չի լուծի խնդիրը։.

Այլ հեշտ թակարդներ

CUDA-ի մի քանի տարբերակների տեղադրում և չիմանալ, թե որ տարբերակն է օգտագործում շրջանակը։

Մոդելը տեղափոխում ենք CUDA, բայց խմբաքանակները թողնում ենք CPU-ի վրա։

Ընտրելով խմբաքանակի չափ, որը մեկ անգամ է տեղավորվում, բայց մի քանի քայլից հետո ձախողվում է

VRAM-ն արդեն օգտագործող այլ գործընթացների անտեսում

Մեղադրել GPU-ին, երբ տվյալների բեռնիչը չափազանց դանդաղ է

CPU-ի և GPU-ի համեմատությունը՝ առանց նույն տվյալների հավաքածուի, խմբաքանակի չափի և մոդելի օգտագործման

Մարդը պետք է վերանայի նաև առաջին մի քանի կանխատեսումները։ Արագ ուսուցումը քիչ արժեք ունի, եթե պիտակները աղմկոտ են, դասերը՝ անհավասարակշիռ, կամ մոդելը սովորում է կարճ ճանապարհներ, ինչպիսիք են ֆոնի գույնը՝ ապրանքի տեսակի փոխարեն։.

Գործնական ուսուցողական նյութ

NVIDIA GPU-ի հուսալի մարզման աշխատանքային հոսքը սկսվում է փոքրից. ապացուցեք, որ դրայվերն աշխատում է, ապացուցեք, որ CUDA-ն աշխատում է, ապացուցեք, որ մեկ խմբաքանակն աշխատում է, ապա աստիճանաբար մեծացրեք խմբաքանակի չափը և մարզման տևողությունը: Ամենաարագ կարգավորումը այն չէ, որն ունի թղթի վրա ամենատպավորիչ GPU-ն, այլ այն է, որը ձեզ ապահովում է կայուն, չափելի աշխատանք՝ առանց ժամեր վատնելու խուսափելի տարբերակի, VRAM-ի և տվյալների բեռնման խնդիրների վրա:.

Հաճախակի տրվող հարցեր

Ի՞նչ է նշանակում արհեստական ​​բանականության մոդել մարզել NVIDIA GPU-ի վրա

NVIDIA GPU-ի վրա մարզումը նշանակում է, որ ձեր մոդելի պարամետրերը և մարզման խմբերը պահվում են GPU VRAM-ում, իսկ ծանր մաթեմատիկական գործողությունները (forward pass, backprop, optimizer steps) կատարվում են CUDA միջուկների միջոցով: Գործնականում սա հաճախ կախված է մոդելի և թենզորների CUDA-ի, այնուհետև հիշողության, օգտագործման և ջերմաստիճանի վրա հսկողությունից, որպեսզի թողունակությունը մնա կայուն:

Ինչպես ստուգել, ​​որ NVIDIA GPU-ն աշխատում է, նախքան որևէ այլ բան տեղադրելը

Սկսեք nvidia-smi-։ Այն պետք է ցույց տա GPU-ի անունը, դրայվերի տարբերակը, հիշողության ընթացիկ օգտագործումը և բոլոր գործող գործընթացները։ Եթե nvidia-smi-ն ձախողվի, սպասեք PyTorch/TensorFlow/JAX-ի վրա՝ նախ շտկեք դրայվերի տեսանելիությունը։ Սա GPU-ի մարզման համար բազային ստուգում է՝ «միացված է վառարանը» հարցով։

Ընտրություն համակարգային CUDA-ի և PyTorch-ի հետ համատեղելի CUDA-ի միջև

Տարածված մոտեցում է framework-ի հետ կապված CUDA-ի օգտագործումը (ինչպես շատ PyTorch անիվներ), քանի որ այն նվազեցնում է շարժվող մասերի քանակը. ձեզ հիմնականում անհրաժեշտ է համատեղելի NVIDIA դրայվեր: Համակարգի ամբողջական CUDA գործիքակազմի տեղադրումը ապահովում է ավելի մեծ վերահսկողություն (պատվերով կառուցվածքներ, գործողությունների կոմպիլյացիա), բայց այն նաև ավելի շատ հնարավորություններ է ստեղծում տարբերակների անհամապատասխանությունների և շփոթեցնող գործարկման սխալների համար:.

Ինչու՞ մարզումը կարող է դանդաղ լինել նույնիսկ NVIDIA GPU-ով

Հաճախ GPU-ն ծանրաբեռնված է մուտքային հոսքագծի պատճառով։ Տվյալների բեռնիչները, որոնք դանդաղում են, մարզման փուլում CPU-ի ծանր նախնական մշակումը, փոքր խմբաքանակների չափերը կամ դանդաղ պահեստավորումը կարող են հզոր GPU-ին ստիպել գործել որպես պարապ տարածքի ջեռուցիչ։ Տվյալների բեռնիչների ավելացումը, ամրացված հիշողության միացումը, նախնական բեռնման ավելացումը և գրանցումների կրճատումը մոդելին մեղադրելուց առաջ տարածված առաջին քայլերն են։.

Ինչպես կանխել «CUDA-ն հիշողությունից դուրս է» սխալները NVIDIA GPU-ի մարզման ժամանակ

Լուծումների մեծ մասը VRAM մարտավարություն է՝ կրճատել խմբաքանակի չափը, միացնել խառը ճշգրտությունը (FP16/BF16), օգտագործել գրադիենտային կուտակում, կրճատել հաջորդականության երկարությունը/կտրման չափը կամ օգտագործել ակտիվացման ստուգիչ ստուգում: Ստուգեք նաև հիշողությունը սպառող այլ GPU պրոցեսների առկայությունը: Որոշակի փորձարկումներ և սխալներ նորմալ են. VRAM բյուջետավորումը դառնում է GPU-ի գործնական մարզումների հիմնական սովորություն:.

Ինչու՞ VRAM-ը կարող է դեռ լիքը թվալ մարզման սկրիպտի ավարտից հետո

Ֆրեյմվորքները հաճախ քեշավորում են GPU հիշողությունը՝ արագության համար, ուստի պահուստավորված հիշողությունը կարող է բարձր մնալ նույնիսկ այն դեպքում, երբ հատկացված հիշողությունը նվազում է: Սա կարող է նմանվել արտահոսքի, բայց հաճախ քեշավորման բաշխիչն է գործում ըստ նախատեսվածի: Գործնական սովորությունն այն է, որ ժամանակի ընթացքում հետևեք օրինաչափությանը և համեմատեք «հատկացվածն ու պահուստավորվածը», այլ ոչ թե կենտրոնանաք մեկ տագնապալի պատկերի վրա:.

Ինչպես ստուգել, ​​որ մոդելը լուռ չի մարզվում պրոցեսորի վրա

Վաղ ստուգում՝ հաստատեք, որ torch.cuda.is_available()- ը վերադարձնում է True, ստուգեք, որ next(model.parameters()).device-ը ցուցադրում է cuda, և առանց սխալների կատարում է մեկ առաջխաղացում։ Եթե աշխատանքը կասկածելիորեն դանդաղ է, հաստատեք նաև, որ ձեր խմբաքանակները տեղափոխվում են GPU։ Հաճախակի է լինում մոդելը տեղափոխելը և պատահաբար տվյալները թողնելը։

Բազմա-GPU մարզման ամենապարզ ուղին

Տվյալների զուգահեռ մշակումը (DDP ոճի ուսուցում) հաճախ լավագույն առաջին քայլն է. բաժանեք խմբաքանակները GPU-ների միջև և համաժամեցրեք գրադիենտները: Accelerate-ի նման գործիքները կարող են բազմա-GPU-ն ավելի քիչ ցավոտ դարձնել առանց լրիվ վերաշարադրման: Ակնկալեք լրացուցիչ փոփոխականներ՝ NCCL հաղորդակցություն, միջկապակցման տարբերություններ (NVLink vs PCIe) և տվյալների ուժեղացված խցանումներ, ուստի մեկ GPU-ով ամուր աշխատանքից հետո աստիճանական մասշտաբավորումը, որպես կանոն, ավելի լավ է ընթանում:.

Ինչին հետևել NVIDIA GPU-ի մարզման ժամանակ՝ խնդիրները վաղ հայտնաբերելու համար

Հետևեք GPU-ի ծանրաբեռնվածությանը, հիշողության ծանրաբեռնվածությանը (կայուն կամ բարձրացող), էներգիայի սպառմանը և ջերմաստիճաններին. սահմանափակումը կարող է աննկատորեն սպառել արագությունը: Ուշադրություն դարձրեք նաև CPU-ի ծանրաբեռնվածությանը, քանի որ տվյալների խողովակաշարի խնդիրները հաճախ առաջին հերթին այնտեղ են ի հայտ գալիս: Եթե ծանրաբեռնվածությունը կտրուկ կամ ցածր է, կասկածեք I/O կամ տվյալների բեռնիչներին. եթե այն բարձր է, բայց քայլի ժամանակը դեռ դանդաղ է, պրոֆիլավորեք միջուկները, ճշգրտության ռեժիմը և քայլի ժամանակի բաշխումը:.

Հղումներ

  1. NVIDIA - NVIDIA nvidia-smi փաստաթղթեր - docs.nvidia.com

  2. NVIDIA - NVIDIA համակարգի կառավարման ինտերֆեյս (NVSMI) - developer.nvidia.com

  3. NVIDIA - NVIDIA NVLink-ի ակնարկ - nvidia.com

  4. PyTorch - PyTorch-ի մեկնարկ (CUDA ընտրիչ) - pytorch.org

  5. PyTorch - PyTorch CUDA փաստաթղթեր - docs.pytorch.org

  6. TensorFlow - TensorFlow-ի տեղադրում (pip) - tensorflow.org

  7. JAX - JAX արագ մեկնարկ - docs.jax.dev

  8. Գրկախառնվող դեմք - Մարզչի փաստաթղթեր - huggingface.co

  9. Lightning AI - Lightning-ի փաստաթղթեր - lightning.ai

  10. DeepSpeed ​​- ZeRO փաստաթղթեր - deepspeed.readthedocs.io

  11. Microsoft Research - Microsoft Research: ZeRO/DeepSpeed ​​- microsoft.com

  12. PyTorch Ֆորումներ - PyTorch Ֆորում. մոդելի ստուգում CUDA-ում - discuss.pytorch.org

Գտեք արհեստական ​​բանականության վերջին նորույթները պաշտոնական արհեստական ​​բանականության օգնականների խանութում

Մեր մասին

Վերադառնալ բլոգ

Լրացուցիչ Հաճախակի տրվող հարցեր

  • Ինչպե՞ս կարող եմ համոզվել, որ իմ NVIDIA GPU-ն տեսանելի է արհեստական ​​ինտելեկտի մարզումների համար։

    Դուք կարող եք ստուգել, ​​թե արդյոք ձեր NVIDIA GPU-ն տեսանելի է՝ օգտագործելով տերմինալում «nvidia-smi» հրամանը: Այս հրամանը ձեզ կցուցադրի մանրամասներ, ինչպիսիք են GPU-ի անվանումը, դրայվերի տարբերակը, հիշողության օգտագործումը և ցանկացած գործող գործընթաց: Եթե այն ձախողվի, ապա դուք պետք է լուծեք դրայվերի տեղադրման խնդիրը՝ նախքան արհեստական ​​ինտելեկտի ուսուցումը շարունակելը:.

  • Ի՞նչ կարևորություն ունի դրայվերների և շրջանակների համատեղելիությունը NVIDIA GPU-ների վրա մարզվելու համար։

    Կարևոր է NVIDIA դրայվերի, CUDA runtime-ի և framework-ի տարբերակները համապատասխանեցնել՝ խափանումներից խուսափելու և կայուն տեղադրումներ ապահովելու համար: Անհամատեղելի տարբերակները կարող են հանգեցնել անսպասելի սխալների ուսուցման ընթացքում:.

  • Ի՞նչ քայլեր պետք է ձեռնարկեմ մարզումների ընթացքում VRAM-ը արդյունավետ կառավարելու համար։

    VRAM-ը արդյունավետ կառավարելու համար կարող եք կիրառել այնպիսի տեխնիկաներ, ինչպիսիք են խառը ճշգրտությունը (FP16/BF16), գրադիենտային կուտակումը, փոքր խմբաքանակների չափերը և ակտիվացման ստուգիչ կետերը: Այս ռազմավարությունները օգնում են նվազագույնի հասցնել հիշողության օգտագործումը և տեղավորել ավելի մեծ մոդելները առկա VRAM-ի մեջ:.

  • Ի՞նչ նախապայմաններ պետք է հաշվի առնեմ բազմա-գրաֆիկական պրոցեսորների հետ մարզում անցկացնելուց առաջ։

    Մինչև բազմաթիվ գրաֆիկական պրոցեսորներով մարզվելը, համոզվեք, որ ձեր գրաֆիկական պրոցեսորներն ունեն նմանատիպ հնարավորություններ՝ խցանումներից խուսափելու համար: Դուք պետք է նաև վերահսկեք միջմիացման արագությունը (NVLink vs PCIe) և պահպանեք հավասարակշռված խմբաքանակների չափսեր յուրաքանչյուր գրաֆիկական պրոցեսորի համար՝ արտադրողականությունը օպտիմալացնելու համար:.

  • Ինչպե՞ս կարող եմ լուծել CUDA-ի տարածված սխալները մարզման ընթացքում։

    CUDA-ի տարածված սխալների դեպքում, ինչպիսիք են «հիշողությունը բավարար չէ», նվազեցրեք խմբաքանակի չափը, օգտագործեք խառը ճշգրտություն կամ ստուգեք այլ պրոցեսների առկայությունը, որոնք սպառում են GPU հիշողությունը: CPU-ի վրա պատահաբար կատարվող մարզումները կանխելու համար համոզվեք, որ և՛ մոդելը, և՛ թենզորները տեղափոխված են GPU:.

  • Ի՞նչ մոնիթորինգի մեթոդներ են խորհուրդ տրվում կիրառել NVIDIA GPU-ների վրա մարզվելիս։

    Կարևոր է հետևել GPU-ի օգտագործմանը, հիշողության օգտագործմանը, էներգիայի սպառմանը և ջերմաստիճաններին: Այս չափանիշների մոնիթորինգը օգնում է վաղ փուլում բացահայտել հնարավոր խոչընդոտները՝ ապահովելով ձեր մարզման գործընթացի արդյունավետությունը:.

  • Ինչպե՞ս կարող եմ խուսափել NVIDIA GPU-ներ օգտագործելիս մարզումների դանդաղ արագությունից։

    Դանդաղ մարզումից խուսափելու համար ստուգեք ձեր տվյալների խողովակաշարը տվյալների բեռնման դանդաղեցման համար և համոզվեք, որ մարզման ընթացքում ծանր նախնական մշակում չեք կատարում: Դիտարկեք տվյալների բեռնման աշխատողների քանակը մեծացնելու, ամրացված հիշողություն օգտագործելու և խմբաքանակների չափերը օպտիմալացնելու ծրագրերը:.