Tali pu'upu'u: Fa'aaoga NVIDIA GPUs mo a'oa'oga AI e ala i le fa'amaonia muamua o lo'o va'aia le aveta'avale ma le GPU i le nvidia-smi, ona fa'apipi'i lea o se fa'avae/CUDA fa'aputuga fetaui ma fa'atino se suega la'ititi "fa'ata'ita'iga + vaega i luga o le cuda". Afai e te pa'ū i le leai o se manatua, fa'aitiitia le tele o le vaega ma fa'aaoga le sa'o fa'afefiloi, a'o mata'ituina le fa'aaogaina, manatua, ma le vevela.
Manatu autū:
Siakiga faavae: Amata i le nvidia-smi; fa'aleleia le va'aia o le aveta'avale a'o le'i fa'apipi'iina ni fa'avae.
Feso'ota'iga o le fa'aputuga: Tausia le aveta'avale, taimi e fa'agaoioi ai le CUDA, ma fa'asologa o le fa'avae ina ia puipuia ai fa'alavelave ma fa'apipi'iga vaivai.
Manuia la'ititi: Fa'amaonia e tamo'e se pasi e tasi i luma i le CUDA a'o le'i fa'ateleina fa'ata'ita'iga.
Matā'upu fa'atino o le VRAM: Fa'alagolago i le sa'o fa'afefiloi, fa'aputuga o le gradient, ma le siakiina ina ia fetaui ma fa'ata'ita'iga tetele.
Masani ona mata'ituina: Siaki le fa'aaogaina, mamanu o manatuaga, le malosi, ma le vevela ina ia e vave iloa ai fa'alavelave.

O tala e te ono fia faitauina pe a uma lenei:
🔗 Auala e fausia ai se sui o le AI
Fuafua le faiga o galuega a lau sui, meafaigaluega, manatua, ma leoleo saogalemu.
🔗 Auala e fa'atino ai fa'ata'ita'iga AI
Fa'atulaga ni siosiomaga, afifiina fa'ata'ita'iga, ma lafo atu i le gaosiga ma le fa'atuatuaina.
🔗 Auala e fuaina ai le faatinoga o AI
Filifili fua fa'atatau, fa'atino iloiloga, ma siaki le fa'atinoga i le aluga o taimi.
🔗 Auala e fa'aautomatika ai galuega fa'atasi ai ma le AI
Fa'aautomatika galuega faifai pea e ala i fa'atonuga, faiga o galuega, ma feso'ota'iga.
1) O le ata lautele - o le mea o loʻo e faia pe a e "aʻoaʻo i le GPU" 🧠⚡
A e aʻoaʻoina faʻataʻitaʻiga AI, o le tele lava o mea o loʻo e faia o le tele o matematika matrix. O GPU ua fausia mo lena ituaiga o galuega tutusa, o lea e mafai ai e faʻavae e pei o le PyTorch, TensorFlow, ma le JAX ona faʻaititia le mamafa o galuega i le GPU. (PyTorch CUDA docs, TensorFlow install (pip), JAX Quickstart)
I le faʻatinoga, o le "faʻaaogaina o NVIDIA GPUs mo aʻoaʻoga" e masani ona faauigaina:
-
O au faʻatulagaga faʻataʻitaʻi e ola (tele lava) i le GPU VRAM
-
E siitia au vaega mai le RAM i le VRAM i la'asaga ta'itasi
-
O lau pasi i luma ma le backprop e tamo'e i luga o kernels CUDA (Taiala Polokalame CUDA)
-
O au faʻafouga faʻaleleia e faia i luga o le GPU (e sili atu)
-
E te mata'ituina le vevela, le manatua, ma le fa'aaogaina ina ia e le kukaina se mea 🔥 (pepa fa'amatalaga a NVIDIA nvidia-smi)
Afai e foliga mai e tele naua, aua le popole. O le tele lava o mea e fai o se lisi siaki ma ni nai masaniga e te fausia i le aluga o taimi.
2) O le ā le mea e avea ai o se fa'atulagaga lelei o a'oa'oga NVIDIA GPU AI 🤌
O le vaega lea o le "aua le fausia se fale i luga o le jelly". O se seti lelei mo le Auala e fa'aaoga ai NVIDIA GPU mo A'oa'oga AI o se seti e le tele se fa'alavelave. O le tele o le fa'alavelave e mautu. O le mautu e vave. O le vave e…ia, vave 😄
O se faʻatulagaga malosi o aʻoaʻoga e masani ona i ai:
-
Lava le VRAM mo le tele o lau batch + faʻataʻitaʻiga + tulaga faʻaleleia
-
E pei le VRAM o le avanoa i atopa'u. E mafai ona e teuina ma le atamai mea uma, ae e le mafai ona e teuina ma le le gata.
-
-
O se fa'aputuga polokalama fa'afetaui (aveta'avale + CUDA runtime + framework compatibility) (PyTorch Get Started (CUDA selector), TensorFlow install (pip))
-
Teuina vave (e fesoasoani tele le NVMe mo faʻamaumauga tetele)
-
CPU + RAM lelei ina ia le matelaina le GPU ona o le utaina o faʻamaumauga (PyTorch Performance Tuning Guide)
-
Malūlū ma le malosi o le ulu (e le o fa'atauva'aina se'ia vagana ua leai 😬)
-
Siosiomaga e mafai ona toe gaosia (venv/conda po'o koneteina) ina ia 'aua ne'i avea fa'aleleiga ma fa'alavelave (Aotelega o le NVIDIA Container Toolkit)
Ma le isi mea e misia e tagata:
-
O se masaniga o le mata'ituina - e te siakiina le manatua ma le fa'aaogaina o le GPU e pei ona e siakiina fa'ata a'o e ave ta'avale. (pepa fa'amaonia a NVIDIA nvidia-smi)
3) Siata Fa'atusatusaga - auala lauiloa e toleni ai ma NVIDIA GPUs (fa'atasi ai ma ni mea uiga ese) 📊
O lo'o i lalo se fa'ata'ita'iga pu'upu'u "o fea e fetaui?". O tau e foliga mai e le'i mafaufauina (auā e eseese mea moni), ma ioe, o se tasi o nei sela e fai si le mautonu, ma le fa'amoemoe.
| Meafaigaluega / Auala | Sili ona lelei mo | Tau | Aiseā e aogā ai (tele lava) |
|---|---|---|---|
| PyTorch (vanilla) PyTorch | le toatele o tagata, le tele o galuega faatino | Sa'oloto | Fetuutuuna'i, tele le si'osi'omaga, faigofie ona fa'aleleia mea - e tofu fo'i tagata ma o latou manatu |
| Pepa o le Uila a PyTorch | 'au, a'oa'oga fa'atulagaina | Sa'oloto | Fa'aitiitia le fa'agasologa masani, fa'amama le fa'asologa o mea; o nisi taimi e foliga mai o se "togafiti", se'ia o'o ina leai |
| O le Fusi o Foliga o Tagata Suiga + Faia'oga pepa fa'amaumau | Fa'aleleia atili o le NLP + LLM | Sa'oloto | A'oa'oga e aofia ai maa, fa'amaumauga tuai lelei, manumalo vave 👍 |
| Fa'avavevave Fa'avavevave pepa aloaia | tele-GPU e aunoa ma se tiga | Sa'oloto | E fa'aitiitia ai le fa'alavelave o le DDP, lelei mo le fa'ateleina e aunoa ma le toe tusia o mea uma |
| a le DeepSpeed ZeRO | faʻataʻitaʻiga tetele, togafiti manatua | Sa'oloto | ZeroRO, offload, scaling - e mafai ona faigata ae faamalieina pe a kiliki |
| le TensorFlow + Keras TF | paipa gaosiga | Sa'oloto | Meafaigaluega malolosi, tala lelei o le faʻatinoina; o nisi tagata e fiafia i ai, o nisi e leai se uiga |
| JAX + Flax JAX Amata vave / pepa fa'amaumau a Flax | suʻesuʻega + tagata atamamai i le saoasaoa | Sa'oloto | E mafai ona matuā vave tele le tuufaatasiga o le XLA, ae e mafai ona lagona le faigata o le faaleleia o mea sese…e le o manino lelei |
| Aotelega o le NVIDIA NeMo NeMo | galuega faatino o le tautala + LLM | Sa'oloto | Fa'aputuga fa'alelei NVIDIA, fua o mea'ai lelei - e pei lava o le kuka i se ogaumu matagofie 🍳 |
| Aotelega o le Docker + NVIDIA Container Toolkit Toolkit | siosiomaga e mafai ona toe gaosia | Sa'oloto | "E galue i la'u masini" e avea ma "e galue i a matou masini" (tele lava, toe fai) |
4) Laasaga muamua - fa'amaonia ua va'aia lelei lau GPU 🕵️♂️
A'o le'i fa'apipi'iina ni mea se tele, siaki mea taua.
Mea e te manaʻo e moni:
-
Ua vaʻaia e le masini le GPU
-
Ua fa'apipi'i sa'o le aveta'avale NVIDIA
-
E le o pipii le GPU i le faia o se isi mea
-
E mafai ona e fesiligia ma le fa'atuatuaina
O le siaki masani e faapea:
-
nvidia-smi(pepa fa'amaumau a le NVIDIA nvidia-smi)
O le mea o loʻo e sailia:
-
Igoa o le GPU (e pei o le RTX, A-series, ma isi)
-
Fa'aliliuga aveta'avale
-
Fa'aaogaina o le manatua
-
Fa'agasologa o galuega (pepa NVIDIA nvidia-smi)
Afai le nvidia-smi , taofi loa iinā. Aua le fa'apipi'iina ni frameworks. E pei lava o le taumafai e tao falaoa ae le'i fa'apipi'iina lau ogaumu. (NVSMI)
Fa'amatalaga fa'aletagata la'ititi: o nisi taimi le nvidia-smi ae e le manuia lava lau a'oa'oga ona o le taimi e fa'agaoioia ai le CUDA e fa'aaogaina e lau fa'avae e le fetaui ma fa'amoemoega o aveta'avale. E le o lou valea lena. O le mea tonu lava lena 😭 (PyTorch Get Started (CUDA selector), TensorFlow install (pip))
5) Fausia le faaputuga polokalama - avetaavale, CUDA, cuDNN, ma le "siva fetaui" 💃
O iinei e maumau ai itula o tagata. O le togafiti: filifili se ala ma pipii i ai.
Filifiliga A: CUDA fa'apipi'i fa'avae (e masani ona faigofie)
E tele PyTorch e fausia fa'atasi ma a latou lava CUDA runtime, o lona uiga e te le mana'omia se CUDA toolkit atoa ua fa'apipi'iina i le system wide. E na'o le pau lava le mea e te mana'omia o se NVIDIA driver e fetaui. (PyTorch Get Started (CUDA selector), Previous PyTorch Versions (CUDA wheels))
Lelei:
-
Vaega fe'avea'i e itiiti ifo
-
Fa'apipi'i faigofie
-
E sili atu ona mafai ona toe gaosia i si'osi'omaga ta'itasi
Le lelei:
-
Afai e te fa'afefiloi fa'atasi si'osi'omaga, e mafai ona e fenumiai
Filifiliga B: Meafaigaluega a le System CUDA (sili atu le pulea)
E te fa'apipi'i le CUDA toolkit i luga o le polokalama ma fa'atulaga mea uma i ai. (CUDA Toolkit docs)
Lelei:
-
Pulea atili mo fausaga fa'apitoa, nisi meafaigaluega fa'apitoa
-
Aoga mo le tuufaatasia o nisi o galuega
Le lelei:
-
Isi auala e fa'afetaui ai fa'aliliuga ma tagi filemu
cuDNN ma le NCCL, i tulaga faaletagata
-
E fa'avavevave e le cuDNN ia fa'ata'ita'iga loloto o le a'oa'oina (convolutions, RNN bits, ma isi) ( pepa a le NVIDIA cuDNN )
-
le NCCL o le faletusi vave o le "fesoota'iga GPU-i-GPU" mo a'oa'oga e tele-GPU (NCCL overview)
Afai e te faia ni aʻoaʻoga e tele-GPU, o le NCCL o lau uo mamae - ma, o nisi taimi, o lau uo mamae e te nonofo faʻatasi ma oe. (Aotelega o le NCCL)
6) Lau uluai fa'atinoina o a'oa'oga GPU (fa'ata'ita'iga o le mafaufau o le PyTorch) ✅🔥
Mo le mulimuli i le Auala e faʻaaoga ai NVIDIA GPU mo Aʻoaʻoga AI, e te lē manaʻomia muamua se galuega tele. E te manaʻomia se manuia laʻititi.
Manatu autū:
-
Su'e le masini
-
Fesiita'i le fa'ata'ita'iga i le GPU
-
Fesiita'i tensors i le GPU
-
Fa'amaonia le fa'agasologa o le pasi i luma iina (PyTorch CUDA docs)
O mea ou te siaki muamua i taimi uma le soifua maloloina o le tino:
-
torch.cuda.is_available()e toefaafoi mai ai le Moni(torch.cuda.is_available) -
o lo'o fa'aalia e
le masinile cuda( PyTorch Forum: siaki le fa'ata'ita'iga i le CUDA ) -
E le sese se fa'asologa e tasi i luma
-
E fa'ateleina le manatua o le GPU pe a amata lau a'oa'oga (o se fa'ailoga lelei!) (pepa fa'amatalaga a le NVIDIA nvidia-smi)
O le fesili masani "aisea ua telegese ai?"
-
Ua telegese tele lau dataloader (GPU o loʻo faʻatali pea) (PyTorch Performance Tuning Guide)
-
Ua galo ia te oe ona siitia faʻamatalaga i le GPU (oops)
-
E laʻititi le tele o le vaega (e le lava le faʻaaogaina o le GPU)
-
O loʻo e faia se faʻagasologa mamafa o le CPU i le laʻasaga o aʻoaʻoga
E le gata i lea, ioe, o lau GPU e masani ona foliga mai "e le pisi tele" pe afai o faʻamaumauga o le faʻalavelave. E pei o le faʻafaigaluegaina o se avetaavale taʻavale tuʻuga ona faʻatali lea o ia mo le penisini i taʻamilosaga taʻitasi.
7) O le taaloga VRAM - tele o le batch, sa'o fefiloi, ma le le pa 💥🧳
O le tele o fa'afitauli fa'atino o a'oa'oga e fa'avae i le manatua. Afai e te a'oa'oina se tomai e tasi, a'oa'o le puleaina o le VRAM.
Auala vave e fa'aitiitia ai le fa'aaogaina o le manatua
-
Sa'o lelei fefiloi (FP16/BF16)
-
E masani lava ona tele se fa'aleleia atili o le saoasaoa. E manumalo uma tagata 😌 (PyTorch AMP docs, TensorFlow mixed precision guide)
-
-
Fa'aputuga o le gradient
-
Fa'ata'ita'i le tele o le vaega e ala i le fa'aputuina o gradients i luga o la'asaga eseese (Transformers training docs (gradient accumulation, fp16))
-
-
Umi la'ititi o le fa'asologa / tele o le seleselega
-
Saua ae aoga
-
-
Siakiina o le fa'agaoioiga
-
Fesuia'i le komepiuta mo le manatua (toe fa'atulaga le fa'agaoioiga i le taimi o le backward) (torch.utils.checkpoint)
-
-
Faaaoga se masini fa'aleleia mama
-
O nisi masini fa'aleleia e teu ai ni tulaga fa'aopoopo e lamuina ai le VRAM
-
O le taimi "aisea ua tumu ai pea le VRAM pe a uma ona ou taofi?"
E masani ona teuina e fa'avae le manatua i totonu o le cache mo le fa'atinoga. E masani lava lenei mea. E foliga mata'utia ae e le o taimi uma e pei o se tafega. E te a'oa'oina le faitauina o mamanu. (PyTorch CUDA semantics: caching allocator)
Masani faatino:
-
Mata'ituina le va o le manatua ua vaevaeina vs. le manatua ua teuina (fa'apitoa mo le fa'avae) (PyTorch CUDA semantics: caching allocator)
-
Aua le popole i le numera muamua e mata'utia 😅
8) Fa'atino le galuega moni a le GPU - fa'aleleia atili o le fa'atinoga e aoga i lou taimi 🏎️
O le fa'atinoina o le "a'oa'oga GPU" o le la'asaga muamua. O le fa'avaveina o le la'asaga lua.
Fa'aleleia atili o aafiaga
-
Fa'ateleina le tele o le batch (se'ia o'o ina tiga, ona fa'aitiitia teisi lea)
-
Faaaoga le pine manatua i totonu o dataloaders (kopi vave mai le host-to-device) (PyTorch Performance Tuning Guide, PyTorch pin_memory/non_blocking tutorial)
-
Fa'ateleina le aufaigaluega e utaina fa'amaumauga (fa'aeteete, e mafai ona afaina ai le tele naua) (PyTorch Performance Tuning Guide)
-
Fa'aulu muamua vaega ina ia 'aua ne'i fa'agaoioi le GPU
-
Faaaoga fused ops / optimized kernels pe a maua
-
Faaaoga le sa'o fefiloi (toe fai, e lelei tele) (pepa o le PyTorch AMP)
O le fa'afitauli e sili ona le amana'iaina
Lau auala e teu ai ma fa'agasolo ai muamua. Afai e tele lau fa'amaumauga ma teuina i luga o se tisiki e fai si gesegese, e avea lau GPU ma se mea e fa'avevela ai le avanoa e taugata. O se mea e fa'avevela ai le avanoa e matua'i alualu i luma ma susulu.
E le gata i lea, o se ta'utinoga puupuu: Sa ou "fa'aleleia" se fa'ata'ita'iga mo le itula e tasi ae ou iloa ai o le fa'amaumauga o le fa'alavelave lea. O le tele naua o le lolomiina e mafai ona fa'agesegese ai le a'oa'oga. Ioe, e mafai.
9) A'oa'oga e tele-GPU - DDP, NCCL, ma le fa'ateleina e aunoa ma le fa'alavelave 🧩🤝
O le taimi lava e te manaʻo ai i se saoasaoa tele pe ni faʻataʻitaʻiga tetele atu, e te faʻaaogaina le tele o GPU. O iʻinei e amata ai ona vevela mea.
Auala masani
-
Fa'asologa o Fa'amaumauga (DDP)
-
Vaevae vaega i luga o GPU, fa'afetaui le saoasaoa
-
E masani lava o le filifiliga "lelei" masani (PyTorch DDP docs)
-
-
Fa'ata'ita'iga Parallel / Tensor Parallel
-
Vaevae le faʻataʻitaʻiga i luga o GPU (mo faʻataʻitaʻiga tetele tele)
-
-
Paipa Fa'atasi
-
Vaevae vaega o le faʻataʻitaʻiga i ni vaega (e pei o se laina faʻapotopotoga, ae mo tensors)
-
Afai o oe o se tagata amata, o le a'oa'oga fa'a-DDP o le mea sili lea. (A'oa'oga PyTorch DDP)
Fautuaga aogā mo le tele o GPU
-
Ia mautinoa o loʻo tutusa le gafatia o GPU (e mafai e le faʻafefiloi ona faʻalavelaveina)
-
Matamata i le feso'ota'iga: E tāua le NVLink vs PCIe mo galuega mamafa o le feso'ota'iga (Aotelega NVIDIA NVLink, pepa fa'amaonia a NVIDIA NVLink)
-
Tausia le paleni o le tele o vaega ta'itasi o le GPU
-
Aua le fa'agaloina le CPU ma le teuina o fa'amaumauga - e mafai e le tele o GPU ona fa'ateleina ai le fa'alavelaveina o fa'amaumauga
Ioe, e mafai e mea sese a le NCCL ona lagona e pei o se tala fa'atusa ua afifiina i se mealilo ua afifiina i le "aisea nei". E te le'i malaia. Atonu. (Aotelega o le NCCL)
10) Mata'ituina ma fa'avasegaina - o mea e le matagofie e sefe ai ou itula 📈🧯
E te lē manaʻomia ni dashboards matagofie e amata ai. E tatau ona e mātauina pe a iai se mea e faaletonu.
Fa'ailoga autū e mata'ituina
-
Fa'aaogāina o le GPU: e maualuga pea pe ma'ai?
-
Fa'aaogāina o le manatua: mautu, a'e, pe uiga ese?
-
Fa'aaogāina o le malosi: e le masani ai le maualalo e mafai ona fa'aalia ai le le lava o le fa'aaogaina
-
Vevela: o le tumau pea o le vevela maualuga e mafai ona faʻaitiitia ai le faʻatinoga
-
Fa'aaogāina o le CPU: o fa'afitauli o le paipa o fa'amaumauga o lo'o fa'aalia iinei (PyTorch Performance Tuning Guide)
Mafaufauga fa'apitoa (fa'amatalaga faigofie)
-
Afai e maualalo le fa'aaogaina o le GPU - fa'afitauli o fa'amaumauga po'o le CPU
-
Afai e maualuga le GPU ae gesegese - le lelei o le kernel, sa'o, po'o le fausaga o le fa'ata'ita'iga
-
Afai e fa'afuase'i ona pa'ū le saoasaoa o a'oa'oga - fa'aitiitia o le vevela, fa'agasologa i tua, fa'alavelave I/O
Ou te iloa, e foliga mai e le malie le mata'ituina. Ae e pei lava o le fa'aaogaina o le floss. E fa'aita, ona fa'afuase'i lea ona fa'aleleia lou olaga.
11) Foia o Faafitauli - o mea e masani ona masalomia (ma mea e seasea ona tupu) 🧰😵💫
O lenei vaega e fa'atatau tonu lava i le: "o mataupu e lima lava e tasi, e fa'avavau."
Fa'afitauli: Ua leai se manatua o le CUDA
Fa'asa'oga:
-
fa'aitiitia le tele o le vaega
-
fa'aaoga le sa'o fefiloi (pepa fa'amaumau a le PyTorch AMP, ta'iala sa'o fefiloi a le TensorFlow)
-
fa'aputuga o le gradient (pepa o a'oa'oga a Transformers (fa'aputuga o le gradient, fp16))
-
fa'agaoioiga o siaki siaki (torch.utils.checkpoint)
-
tapuni isi faiga o le GPU
Fa'afitauli: E fa'afuase'i ona tamo'e le a'oa'oga i luga o le CPU
Fa'asa'oga:
-
ia mautinoa ua siitia le faʻataʻitaʻiga i
le cuda -
ia mautinoa ua siitia tensors i
le cuda -
siaki le fa'atulagaga o masini fa'avae (PyTorch CUDA docs)
Fa'afitauli: Fa'alavelave uiga ese pe fa'aaoga fa'asolitulafono le manatua
Fa'asa'oga:
-
fa'amaonia le fetaui o le aveta'avale + taimi fa'atino (PyTorch Get Started (CUDA selector), TensorFlow install (pip))
-
taumafai i se siosiomaga mamā
-
fa'aitiitia galuega fa'apitoa
-
toe fa'atino i ni fa'atulagaga fa'atulagaina e toe gaosia ai
Fa'afitauli: Fa'agesegese nai lo le mea na fa'amoemoeina
Fa'asa'oga:
-
siaki le saoasaoa o le dataloader (PyTorch Performance Tuning Guide)
-
fa'ateleina le tele o le vaega
-
fa'aitiitia le fa'aputuina o la'au
-
fa'agaoioia le sa'o fa'afefiloi (pepa fa'amaumau a le PyTorch AMP)
-
fa'asologa o taimi o la'asaga o le talaaga
Fa'afitauli: Ua tautau le tele o GPU
Fa'asa'oga:
-
fa'amaonia le sa'o o fa'atulagaga o le backend (pepa tufatufaina a PyTorch)
-
siaki fa'atulagaga o le siosiomaga NCCL (fa'aeteete) (NCCL overview)
-
fa'ata'ita'i muamua le GPU e tasi
-
ia mautinoa o lo'o lelei le feso'ota'iga / feso'ota'iga
Fa'amatalaga pu'upu'u e toe tepa i tua: o nisi taimi o le fofo o le toe amata lea. E foliga valea. E aoga. E fa'apena fo'i komepiuta.
12) Tau ma le aogā - filifilia o le NVIDIA GPU ma le seti sa'o e aunoa ma le mafaufau tele 💸🧠
E lē manaʻomia e galuega uma le GPU telē. O nisi taimi e te manaʻomia le lava o le GPU.
Afai o lo'o e fa'aleleia atili fa'ata'ita'iga feololo
-
Fa'amuamua le VRAM ma le mautu
-
E fesoasoani tele le sa'o fa'afefiloi (pepa fa'amaumauga a le PyTorch AMP, ta'iala sa'o fa'afefiloi a le TensorFlow)
-
E masani ona mafai ona e sao mai se tasi GPU malosi
Afai o loʻo e aʻoaʻoina ni faʻataʻitaʻiga tetele mai le amataga
-
E te manaʻo i le tele o GPU poʻo le VRAM tele tele
-
O le a e popole i le NVLink ma le saoasaoa o fesootaiga (Aotelega o le NVIDIA NVLink, Aotelega o le NCCL)
-
Atonu o le a e faʻaaogaina ni mea e faʻaleleia atili ai le manatua (ZeRO, offload, ma isi) (DeepSpeed ZeRO docs, Microsoft Research: ZeRO/DeepSpeed)
Afai o loʻo e faia ni faʻataʻitaʻiga
-
E te manaʻo i se faiga vave
-
Aua le fa'aaluina uma au tupe i le GPU ona fa'aumatia lea o le teuina o mea ma le RAM
-
E sili atu le paleni o se faiga nai lo se faiga e le paleni (i le tele o aso)
Ma o le mea moni, e mafai ona e fa'aumatia vaiaso e tulituliloa ai filifiliga "atoatoa" o masini. Fausia se mea e mafai ona aoga, fua, ona fetu'una'i lea. O le fili moni lava e leai se fa'asologa o manatu fa'aalia.
Fa'ai'uga - Auala e fa'aaoga ai NVIDIA GPU mo A'oa'oga AI e aunoa ma le leiloa o lou mafaufau 😌✅
Afai e leai se isi mea e te fa'aaogaina mai lenei ta'iala i le fa'aaogaina o NVIDIA GPU mo a'oa'oga AI, ia faia lenei mea:
-
Ia mautinoa
le nvidia-smi(pepa faʻamaumau a le NVIDIA nvidia-smi) -
Filifili se auala mama o polokalama faakomepiuta (e masani lava ona faigofie le fa'aogaina o le framework-bundled CUDA) (PyTorch Get Started (CUDA selector))
-
Fa'amaonia se fa'ata'ita'iga la'ititi o le GPU a'o le'i fa'ateleina (torch.cuda.is_available)
-
Pulea le VRAM e pei o se fata teuoloa fa'atapula'a
-
Faaaoga le sa'o fa'afefiloi i le amataga - e le na'o ni "mea fa'apitoa" (pepa fa'amatalaga a le PyTorch AMP, ta'iala sa'o fa'afefiloi a le TensorFlow)
-
Afai e gesegese, masalo i le dataloader ma le I/O a'o le'i tu'ua'ia le GPU (PyTorch Performance Tuning Guide)
-
E malosi le Multi-GPU ae e fa'aopoopoina le faigata - fa'ateleina malie (pepa o le PyTorch DDP, aotelega o le NCCL)
-
Mata'ituina le fa'aaogaina ma le vevela ina ia vave ona aliali mai fa'afitauli (pepa NVIDIA nvidia-smi)
O le aʻoaʻoina i luga o NVIDIA GPUs o se tasi o tomai e foliga mai e mataʻutia, ona faʻafuaseʻi lea ona pei ua…masani. E pei o le aʻoaʻoina e ave taʻavale. I le taimi muamua e pisapisao ma fenumiai mea uma ma e te uu malosi le uili. Ona oʻo lea i se tasi aso o loʻo e tietie taʻavale, inu kofe, ma faʻalelei le faʻafitauli o le tele o le batch e peiseaʻī e leai se mea tele.
Fa'ata'ita'iga moni: A'oa'oina o se tama'i fa'avasega ata i luga o le tasi NVIDIA GPU 🧪🖼️
Tulaga
Se'i faapea o se 'au faipisinisi laitiiti e mana'o e a'oa'o se fa'avasega ata e fa'avasega ai ata o oloa i vaega e lima: seevae, ato, peleue, uati, ma mea fa'aopoopo.
Latou te lē o toleniina se faʻataʻitaʻiga tele mai le amataga. O loʻo latou faʻaleleia atili se faʻataʻitaʻiga vaʻai ua uma ona aʻoaʻoina i luga o le NVIDIA GPU e tasi, ina ia mafai e le 'au ona vave faʻataʻitaʻi pe aoga le faʻalauteleina o le manatu.
E faigofie le sini: faʻamaonia le aoga o le faʻatulagaina o le GPU, ʻaloʻese mai le vevesi o le CUDA, ma fausia se taamilosaga o aʻoaʻoga e mafai ona toe faia aʻo leʻi faʻaaluina tupe i masini tetele poʻo le faʻaogaina o ao.
O mea e manaʻomia e le faʻatulagaga
Mo lenei ituaiga o suega, e te manaʻomia:
O se masini e tasi le NVIDIA GPU ma le VRAM e lava mo le tele o le batch
Ua fa'amaonia mai se aveta'avale NVIDIA o lo'o galue lelei ma le nvidia-smi
O se siosiomaga mama o le Python mo PyTorch, TensorFlow, po'o le JAX
O se seti fa'amaumauga la'ititi o ata ua fa'ailogaina, e mafai ona vaevaeina i ni faila o le toleniina, fa'amaoniga, ma le fa'ata'ita'iga
O se fa'asologa o taimi fa'avae o le CPU mo le fa'atusatusaga
O se pepa faigofie o fa'amaumauga ma le taimi e fa'agasolo ai, manatua o le GPU, fa'aaogaina o le GPU, vevela, ma le sa'o o le fa'amaoniga
A'o le'i faia a'oa'oga lelei, e tatau i le 'au ona fa'atino se tama'i suega asu a le CUDA: uta le tasi vaega, fa'anofo le fa'ata'ita'iga ma le vaega i le cuda, fa'atino le tasi pasi i luma, ma fa'amaonia le fa'ateleina o le manatua o le GPU i le nvidia-smi.
Fa'atonuga fa'ata'ita'i
O se faʻatonuga faʻatino mo se galuega faatino e mafai ona foliga faʻapenei:
Fa'aa'oa'o se fa'avasegaga ata la'ititi o oloa e fa'aaoga ai se fa'ata'ita'iga ResNet-style ua uma ona a'oa'oina. Muamua fa'amaonia e mafai e le nvidia-smi ona va'ai i le GPU. Ona fa'atino lea o se suega CUDA e tasi le vaega a'o le'i faia le a'oa'oga atoa. Fa'aaoga le sa'o fa'afefiloi pe afai e lagolagoina. Amata i le tele o le vaega 32, fa'ateleina pe afai e tumau le mautu o le manatua o le GPU, ma fa'amaumau le taimi o la'asaga, le fa'aaogaina o le manatua o le GPU, le fa'aaogaina o le GPU, le vevela, ma le sa'o o le fa'amaoniga pe a uma ta'itasi le fa'atinoina. Afai e aliali mai le CUDA ua leai se manatua, fa'aitiitia le tele o le vaega a'o le'i suia le fa'ata'ita'iga.
Auala e fa'ata'ita'i ai
O se fuafuaga talafeagai mo suʻega o le a:
-
Fa'agaoioi le nvidia-smi ma fa'amaumau le igoa o le GPU, le fa'asologa o le aveta'avale, le fa'aaogaina o le idle memory, ma le vevela.
-
Fa'atino se su'ega CPU e tasi le vaega e fa'amaonia ai le aoga o le seti o fa'amaumauga ma le fa'ailoga o le fa'ata'ita'iga.
-
Fa'atino le suega lava e tasi i le cuda.
-
Aoao mo la'asaga e 200 ma le lapo'a o le vaega e 32.
-
Toe fai ma ua fa'agaoioia le sa'o fefiloi.
-
Taumafai i le tele o le batch 64 pe afai e lava le avanoa e ulu ai le VRAM i le taimi muamua.
-
Faatusatusa le sa'o o le fa'amaoniga, le averesi o le taimi o la'asaga, le maualuga o le VRAM, ma le vevela o le GPU.
O se taunuuga lelei e lē na o le "toleniina". O se taunuuga lelei o le "toleniina i luga o le GPU, faaleleia le saoasaoa, tumau le mautu o le manatua, ma e mafai ona toe faia le tamoe taeao e aunoa ma le toe faapipiiina o mea uma".
I'uga
O le fa'ai'uga fa'ata'ita'i, e fa'avae i luga o le taimi e tolu fa'ata'ita'iga laiti e 200-la'asaga a'o le'i ma ina ua mae'a ona siitia a'oa'oga mai le CPU i le tasi NVIDIA GPU:
Fa'avae mo na'o le CPU: 3.4 sekone i la'asaga ta'itasi o a'oa'oga
GPU ma le FP32: 0.42 sekone i la'asaga ta'itasi o a'oa'oga
GPU ma le sa'o fefiloi: 0.28 sekone i la'asaga ta'itasi o a'oa'oga
Manatua sili ona maualuga o le GPU ma le tele o le batch 32: 5.8 GB
Manatua sili ona maualuga o le GPU ma le tele o le batch 64: 10.9 GB
Tele o le vaega 96: ua le manuia ona ua leai se manatua o le CUDA
Fa'aaogāina o le GPU i taimi o ta'amilosaga mautu: 76% i le 91%
Vevela i taimi e tumau ai le saoasaoa: 67°C i le 73°C
Sa'o le fa'amaoniga pe a uma le suega pu'upu'u: 82% ma le FP32, 82.4% ma le sa'o fefiloi
I lenei faʻataʻitaʻiga faʻatatau, o le faʻafefiloi o le saʻo na faʻaitiitia ai le taimi o laʻasaga e tusa ma le 33% pe a faʻatusatusa i le faʻagaoioiga o le FP32 GPU, aʻo faʻatumauina pea le saʻo o le faʻamaoniga. E mafai e le 'au ona faʻamaonia nei fuainumera e ala i le taimi o laʻasaga taʻitasi o aʻoaʻoga, siakiina o le nvidia-smi i le taimi o le faʻagaoioiga, ma sefeina le saʻo o le faʻamaoniga pe a uma suʻega taʻitasi.
O a mea e ono sese
O le mea sese e masani ona tupu o le vave tele o le fa'atulagaina. Afai e le manuia le suega CUDA e tasi le vaega, o le a le mafai e se fa'ata'ita'iga atoa ona fa'aleleia fa'afuase'i.
Isi mailei faigofie:
Fa'apipi'iina o le tele o fa'aliliuga CUDA ma le le iloa po'o fea o lo'o fa'aaogaina e le fa'avae
O le siiina o le faʻataʻitaʻiga i le cuda ae tuʻu ai vaega i luga o le CPU
Filifilia o se tele o le vaega e fetaui faatasi ae faaletonu pe a uma ni nai laasaga
Le amana'iaina o isi faiga o lo'o fa'aaogaina le VRAM
Tuua'ia le GPU pe a telegese tele le dataloader
O le fa'atusatusaina o le CPU ma le GPU e aunoa ma le fa'aaogaina o le seti fa'amaumauga tutusa, tele o le batch, ma le fa'ata'ita'iga
E tatau fo'i i se tagata ona toe iloilo ulua'i va'aiga. E leai se aogā o a'oa'oga vave pe afai e pisapisaō fa'ailoga, e le paleni vasega, pe o lo'o a'oa'oina e le fa'ata'ita'iga ni auala pupuu e pei o le lanu o le talaaga nai lo le ituaiga oloa.
Mea'ai aogā e 'ai fua
O se faiga fa'atino fa'atuatuaina o a'oa'oga a le NVIDIA GPU e amata mai i se mea itiiti: fa'amaonia le aoga o le aveta'avale, fa'amaonia le aoga o le CUDA, fa'amaonia le aoga o le tasi vaega, ona fa'asolosolo malie lea ona fa'ateleina le tele o le vaega ma le umi o a'oa'oga. O le setiina vave e le o le mea e sili ona mata'ina le GPU i luga o le pepa - ae o le mea e te maua ai ni fa'agaioiga mautu ma mafai ona fuaina e aunoa ma le fa'aumatia o itula i le lomiga e mafai ona 'alofia, VRAM, ma fa'afitauli o le utaina o fa'amaumauga.
Fesili e Masani Ona Fesiligia
O le uiga o le toleniina o se faʻataʻitaʻiga AI i luga o se NVIDIA GPU
O le a'oa'oina i luga o se NVIDIA GPU o lona uiga o au fa'atulagaga fa'ata'ita'i ma vaega a'oa'oga e ola i le GPU VRAM, ma o le matematika mamafa (forward pass, backprop, optimizer steps) e fa'atinoina e ala i CUDA kernels. I le fa'atinoina, e masani ona pa'u'ū lenei mea i le fa'amautinoaina o lo'o nofo le fa'ata'ita'iga ma tensors i luga o le cuda, ona mata'ituina lea o le manatua, fa'aaogaina, ma le vevela ina ia tumau pea le tutusa o le throughput.
Auala e fa'amaonia ai o lo'o galue se NVIDIA GPU a'o le'i fa'apipi'iina se isi mea
Amata i le nvidia-smi. E tatau ona faʻaalia ai le igoa o le GPU, le faʻataʻitaʻiga o le avetaʻavale, le faʻaaogaina o le manatua o loʻo iai nei, ma soʻo se faʻagasologa o loʻo faʻagaoioia. Afai le nvidia-smi , taofi le PyTorch/TensorFlow/JAX - faʻaleleia muamua le vaʻaia o le avetaʻavale. O le siaki autū lea "ua faʻapipiʻi le ogaumu" mo aʻoaʻoga GPU.
Filifiliga i le va o le system CUDA ma le CUDA ua fa'apipi'iina fa'atasi ma le PyTorch
O se auala masani o le faʻaaogaina lea o le framework-bundled CUDA (e pei o le tele o uili PyTorch) aua e faʻaitiitia ai vaega fealuaʻi - e te manaʻomia tele se avetaʻavale NVIDIA fetaui. O le faʻapipiʻiina o le polokalama atoa a le CUDA e ofoina atu ai le tele o le pulea (fausaga faʻapitoa, faʻasologa o galuega), ae e faʻalauiloa mai ai foʻi avanoa mo le le fetaui o lomiga ma le fenumiai o mea sese i le taimi e faʻatino ai.
Aiseā e mafai ai ona gesegese pea a'oa'oga e tusa lava pe iai se NVIDIA GPU
E masani lava, e leai se aogā o le GPU ona o le paipa o le input. O le tuai o le dataloaders, o le mamafa o le CPU preprocessing i totonu o le laasaga o aoaoga, o le laiti o le batch sizes, po o le telegese o le teuina e mafai ona avea ai se GPU malosi ma amio e pei o se space heater e leai se aoga. O le faateleina o tagata faigaluega o le dataloader, o le faagaoioia o le pinned memory, o le faaopoopoina o le prefetching, ma le teuteuina o le logging o ni laasaga muamua masani ia a o lei tuuaia le faataitaiga.
Auala e puipuia ai mea sese o le "CUDA out of memory" i le taimi o a'oa'oga a le NVIDIA GPU
O le tele o fofo o auala ia a le VRAM: fa'aitiitia le tele o le batch, fa'agaoioia le sa'o fa'afefiloi (FP16/BF16), fa'aaoga le fa'aputuga gradient, fa'apu'upu'u le umi o le fa'asologa/tele o le seleselega, pe fa'aaoga le siakiina o le fa'agaoioiga. Siaki fo'i mo isi fa'agasologa GPU e fa'aaogaina ai le manatua. O nisi fa'ata'ita'iga ma mea sese e masani ai - o le fa'atulagaina o le VRAM e avea ma masaniga autu i a'oa'oga fa'atino a le GPU.
Aiseā e mafai ai e le VRAM ona foliga tumu pe a uma se tusitusiga o aʻoaʻoga
E masani ona teuina e fa'avae le manatua o le GPU mo le saoasaoa, o lea e mafai ai ona tumau pea le maualuga o le manatua fa'asao e tusa lava pe pa'ū le manatua ua atofaina. E mafai ona foliga mai o se tafega, ae e masani lava o le caching allocator e amio e pei ona fuafuaina. O le masaniga aoga o le siakiina lea o le mamanu i le aluga o taimi ma fa'atusatusa le "fa'atulagaina vs fa'asao" nai lo le taula'i i se ata mata'utia e tasi.
Auala e fa'amaonia ai e le o toleni filemu se fa'ata'ita'iga i luga o le CPU
Siaki vave le mafaufau lelei: fa'amaonia le torch.cuda.is_available() e toe faafoi mai le True, fa'amaonia le next(model.parameters()).device e fa'aalia le cuda, ma fa'atino se pasi e tasi i luma e aunoa ma ni mea sese. Afai e foliga mai e lemu tele le fa'atinoga, fa'amaonia fo'i o lo'o si'itia au vaega i le GPU. E masani ona si'itia le fa'ata'ita'iga ma tu'ua fa'afuase'i fa'amatalaga.
O le auala faigofie i le aʻoaʻoga tele-GPU
O le Data Parallel (a'oa'oga fa'a-DDP) e masani lava o le la'asaga muamua sili lea: vaevae vaega i luga o GPU ma fa'asolosolo fa'asolosolo. O meafaigaluega e pei o le Accelerate e mafai ona fa'aitiitia ai le faigata o le tele o GPU e aunoa ma le toe tusia atoa. Fa'amoemoe i ni fesuia'iga fa'aopoopo - feso'ota'iga NCCL, eseesega o feso'ota'iga (NVLink vs PCIe), ma fa'ateleina o fa'alavelave fa'amaumauga - o lea e masani ona sili atu le fa'ateleina o le fa'ateleina pe a uma se fa'agaoioiga malosi o le GPU e tasi.
Mea e mata'ituina i le taimi o a'oa'oga NVIDIA GPU e vave iloa ai fa'afitauli
Mata'ituina le fa'aaogaina o le GPU, le fa'aaogaina o le manatua (mautu vs fa'ateleina), fa'aaogaina o le eletise, ma le vevela - e mafai e le fa'aitiitia o le saoasaoa ona fa'aitiitia filemu le saoasaoa. Ia mata'ituina fo'i le fa'aaogaina o le CPU, aua e masani ona muamua aliali mai fa'afitauli i le paipa o fa'amaumauga. Afai e ma'ai pe maualalo le fa'aaogaina, masalo i le I/O po'o le dataloaders; afai e maualuga ae o lo'o gese pea le taimi o la'asaga, fa'atulaga kernels, precision mode, ma le fa'asologa o la'asaga.
Fa'asinomaga
-
NVIDIA - NVIDIA nvidia-smi pepa fa'amaumau - docs.nvidia.com
-
NVIDIA - NVIDIA System Management Interface (NVSMI) - developer.nvidia.com
-
NVIDIA - Aotelega o le NVIDIA NVLink - nvidia.com
-
PyTorch - Amata le PyTorch (selector CUDA) - pytorch.org
-
PyTorch - PyTorch CUDA pepa aloaia - docs.pytorch.org
-
TensorFlow - Fa'apipi'iina o le TensorFlow (pip) - tensorflow.org
-
JAX - JAX Vave amata - docs.jax.dev
-
Foliga o le fusi - Fa'amaumauga a le faia'oga - huggingface.co
-
Uila AI - Pepa fa'amaumau uila - lightning.ai
-
DeepSpeed - pepa fa'amaumau a le ZeRO - deepspeed.readthedocs.io
-
Microsoft Research - Microsoft Research: ZeRO/DeepSpeed - microsoft.com
-
Fonotaga a le PyTorch - Fonotaga a le PyTorch: siaki le faʻataʻitaʻiga i le CUDA - discuss.pytorch.org