YKSITYINEN OFFSHORE-INFRASTRUKTUURI
Dedikoidut ja GPUEdistynyt · 6 min lukuaika

Rakenna GPU VRAM-budjetti ennen laitteiston valintaa

Ota huomioon painot, aktivoinnit, välimuistit ja väliaikaiset puskurit ja testaa sitten huippukuormitus eikä pelkkä mallitiedosto.

Kirjoittaja SwissOctet Editorial
SUORA VASTAUS

GPU-muistin tarve sisältää käytössä olevat tiedot ja painot, välitulokset, suorituksen aikaiset työtilat ja kuormituksesta riippuvat välimuistit. Mittaa huippukäyttö aiotulla tarkkuudella, eräkoolla ja samanaikaisuudella; tallennetun mallin koko on vain yksi tekijä.

01

Valitse työkuorma ennen GPU:n valintaa

GPU-määrittelystä tulee hyödyllinen, kun tunnet ohjelmiston ja sen suorittaman työn. Renderöinti, kuvankäsittely, koulutus ja päättely vaativat erilaisia muisti- ja laskentamalleja. Tarkista sovelluksen tukema GPU-arkkitehtuuri, ajurit ja suoritusympäristö ennen kapasiteetin vertailua. Kortti, jossa on riittävästi muistia, voi silti olla sopimaton, jos vaadittua ohjelmistopolkua tai ominaisuutta ei tueta.

Kuvaile suurin syöttökoko, tarkkuus, eräkoko ja samanaikainen työ, jonka aiot sallia. Sisällytä päättelyyn pisin tuettu pyyntö ja samanaikaiset istunnot. Sisällytä renderöintiin edustava näkymä ja tekstuurit. Onnistunut pieni esittely on todiste siitä, että pino voi käynnistyä; se ei ole todiste siitä, että koko tuotantokuormitus mahtuu.

02

Erota pysyvä data työmuistista

Painot tai syöttöresurssit voivat jäädä laitteeseen, kun taas välitulokset ja väliaikaiset puskurit ilmestyvät suorituksen aikana. Koulutus voi lisäksi vaatia gradientteja ja optimoijan tilaa. Päättelykuormitukset voivat ylläpitää välimuisteja, joiden koko muuttuu pyynnön mukaan. Tarkka järjestely riippuu mallista, kehyksestä ja toteutuksesta. Älä käytä yhtä yleistä kerrointa kaikkiin tehtäviin ja pidä sitä kapasiteettitakuuna.

Yksinkertaisena laskentaesimerkkinä hypoteettinen seitsemän miljardin parametrin malli, joka esitetään kahdella tavulla parametria kohden, tarvitsee noin neljätoista miljardia tavua pelkästään näille parametreille. Tämä laskelma ei sisällä suorituksen aikaisia varauksia, aktivaatioita, välimuisteja ja muotokohtaista ylikuormitusta. Se on alemman tason suunnittelu esimerkki, ei väite siitä, että tällainen kuormitus mahtuu tiettyyn SwissOctet-kokoonpanoon.

Muistin osaMikä muuttaa sitäMiten tutkia
Painot tai näkymäresurssitMallin koko, esitystapa ja ladatut resurssitTarkista käyttöön otettu muoto ja todellinen ladattu varaus
VälituloksetSyötteen muoto ja eräkokoMittaa täysi edustava toiminto
VälimuistitPyynnön pituus ja samanaikaisuusKuormita tuettua enimmäiskuormitusta
Työtilat ja suoritusympäristöKirjastot, ytimet ja suoritusstrategiaTarkkaile laitteen ja kehyksen huippukäyttöä
03

Mittaa huippukäyttö oikeasta näkymästä

Kehyksen mittarit ja laitetason mittarit voivat kuvata eri asioita. PyTorch erottaa tensoreille varatun muistin sen välimuistiin varaajalta varatusta muistista ja tarjoaa huippumittareita. Sen muistin visualisointidokumentaatio selittää myös, että sen varaajan ulkopuolella tehdyt varaukset eivät välttämättä näy siinä näkymässä. Vertaa kehyksen raporttia laajempaan laitteen tilaan sen sijaan, että olettaisit yhden luvun kattavan kaikki varaukset.

Lämmitä todellinen toiminto ja mittaa sitten koko tehtävä ja tehtävien välinen realistinen päällekkäisyys. Tallenna ohjelmistoversiot ja tarkat syöttöolosuhteet. Muistin loppuminen voi tapahtua väliaikaisessa huipussa, joten hiljainen lopputilanne voi jättää ongelman huomaamatta. Pidä diagnostiikkatallenteet yksityisinä, jos ne voivat sisältää mallin yksityiskohtia tai tietoja sovelluksesi syötteistä.

04

Käsittele eräkokoa ja tarkkuutta suunnitteluvalintoina

Suuremmat erät voivat muuttaa sekä käyttöastetta että muistintarvetta. NVIDIA:n suorituskykyohjeet käsittelevät toiminnon muodon, aritmeettisen intensiteetin ja laitteistokykyjen välistä vuorovaikutusta. Hyödyllinen eräkoko riippuu kuormituksen viive tavoitteesta sekä läpäisystä. Eräkäytäntö, joka maksimoi suoritetun työn sekunnissa, voi saada yksittäiset käyttäjät odottamaan kauemmin kuin sovellus sallii.

Alennettu tarkkuus tai kvantisointi voi vähentää joitakin muistivaatimuksia, mutta yhteensopivuus ja tulosten laatu on testattava. Pidä arviointitietojoukko ja vertaa olennaisia tuloksia muodon muutoksen jälkeen. Älä muuta mallin esitystapaa pelkästään sen sovittamiseksi tarkistamatta projektin riippuvaa käyttäytymistä. Muistin optimoinnin tulee säilyttää vaadittu lopputulos, ei vain välttää varaamisvirhettä.

05

Pidä muukin kone budjetissa

CPU, isäntä RAM ja tallennuspolku valmistelevat ja syöttävät GPU-työtä. Hidas syötteen purku tai riittämätön isäntämuisti voi jättää kiihdyttimen odottamaan. Suuret mallitiedostot ja tietojoukot tarvitsevat myös riittävästi levytilaa asennusta, väliaikaisia muunnoksia ja päivityksiä varten. Arvioi koko putki sen sijaan, että ostaisit GPU:n ja odottaisit jokaisen edeltävän vaiheen nopeutuvan.

Useat GPU:t eivät automaattisesti toimi yhtenä yhdistettynä muistilaitteena. Sovelluksen on käytettävä sopivaa rinnakkaisstrategiaa, ja viestintä ylikuormitus voi olla merkittävää. Vahvista, kuinka monta laitetta tarjotaan, kunkin muisti ja ohjelmiston tuettu järjestely. Luettelo GPU-päivitysnimistä ei ole vahvistettu kuvaus yhdelle muuttumattomalle prosessille käytettävissä olevasta muistista.

06

Käytä edustavaa hyväksymistestiä

Määritä testi valitulla ohjelmistopinolla, odotetulla enimmäissyötteellä ja sallitulla samanaikaisuudella. Mittaa huippumuisti, valmistumisaika, virheet ja tulosteen laatu. Jätä hieman pelivaraa normaaliin suorituksen vaihteluun ja ylläpitoon, määrä perusteltuna havainnoilla. Jos kuormitus ei mahdu, päätä, vähennetäänkö samanaikaisuutta, muutetaanko toteutusta vai valitaanko eri laitteisto.

Tensor GPU esittää GPU-aiheisia valintoja SwissOctet-luettelossa. Vahvista tarkka laite, laitekohtainen VRAM, ajurien yhteensopivuus ja valittu kokoonpano ennen siihen luottamista. Sivusto ei tarjoa sovelluskohtaista sopivuustakuuta. Dokumentoitu hyväksymistesti yhdistää nämä laitteistotiedot työhön, jonka koneen on suoritettava.

MUUNNA SE TOIMINNAKSI

Käytännön tarkistuslistasi.

  • Vahvista tuettu GPU-arkkitehtuuri ja suoritusympäristö.
  • Budjetoi painot, välitulokset, välimuistit ja työtilat.
  • Mittaa huiput suurimmalla aiotulla syötteellä ja samanaikaisuudella.
  • Vertaa kehyksen ja laitetason muistinäkymiä.
  • Vahvista tuloste tarkkuuden tai muodon muutosten jälkeen.
  • Vahvista tarkka laitekohtainen VRAM ennen tilaamista.
YLEISET KYSYMYKSET

Olennaiset yksityiskohdat.

Vastaako tallennetun mallin koko VRAM-tarvetta?+

Ei. Suoritus lisää välituloksia, työtiloja, välimuisteja ja muita varauksia, kun taas tallennusmuodot voivat poiketa muistissa olevista esityksistä.

Kaksinkertaistaako toisen GPU:n lisääminen automaattisesti käytettävissä olevan muistin?+

Ei. Sovellus tarvitsee sopivan rinnakkaisstrategian. Laitekohtaiset rajat ja viestintäkäyttäytyminen ovat edelleen merkityksellisiä.

Voiko alennettu tarkkuus aina ratkaista muistin loppumisen?+

Ei. Se voi vähentää joitakin varauksia, mutta tuki, jäljellä olevat puskurit ja hyväksyttävä tulosteen laatu on testattava.

ENSISIJAISET LÄHTEET

Mene lähteelle.

Nämä lähteet tukevat tämän oppaan teknisiä käsitteitä. Noudata ajantasaisia dokumentaatioita ennen tuotantojärjestelmän muuttamista.

  1. NVIDIA: Aloita syväoppimisen suorituskyvyllä docs.nvidia.com
  2. PyTorch: CUDA-muistin käytön ymmärtäminen docs.pytorch.org
  3. PyTorch: CUDA-muistinhallinta docs.pytorch.org

Toimituksellinen ohjaus: SwissOctet. Esimerkit ovat havainnollistavia. Palvelumääritykset, saatavilla olevat vaihtoehdot ja sopimusehdot on tarkistettava erikseen.

YHDISTÄ TIETO

Aiheeseen liittyvä infrastruktuuri.

PIDÄ LANGANPÄÄ

Seuraavat kenttämuistiinpanosi.

Tutustu kaikkiin oppaisiin
KENTTÄMUISTIINPANO / 02
Tallennus ja palautusPerusta

Milloin NVMe vaikuttaa sovellukseesi

Erota kapasiteetti, viive ja läpäisy, jotta nopeamman tallennustilan merkintä vastaa todelliseen sovellusongelmaan.

4 min lukuLue opas