Upravit

Sdílet prostřednictvím


Použití služby Azure Kubernetes Service k hostování úloh založených na GPU

Azure Kubernetes Service (AKS)

Tento článek popisuje, jak efektivně spouštět úlohy, které používají uzly GPU v clusteru Azure Kubernetes Service (AKS). Zjistěte, jak zvolit správnou skladovou položku, používat uzly GPU k trénování modelů strojového učení a používat uzly GPU ke spouštění odvozování v AKS.

Scénáře

Spouštění úloh GPU může být nákladné. Abyste se vyhnuli zbytečným nákladům, zjistěte, kdy nasazovat uzly založené na GPU v clusterech AKS.

Gpu jsou účelově sestavená pro grafiku, AI a strojové učení a specializované úlohy, díky kterým jsou ideální pro úlohy náročné na výpočetní výkon. Procesory efektivně spravují složitou logiku a větvení. Gpu jsou optimalizovaná pro propustnost. Mohou efektivně zpracovávat jednoduché aritmetické a vektorové operace.

Pokud chcete určit, kdy použít GPU pro úlohy AKS, musíte porozumět optimalizaci GPU a intenzitě výpočetních prostředků, ale měli byste zvážit i další faktory. Pokud chcete získat lepší přehled o využití GPU pro úlohy AKS, zvažte následující příklady úloh, které využívají uzly GPU v clusteru AKS.

Datové vědy a analýzy

Grafické procesory můžete použít k urychlení předběžného zpracování dat, přípravy funkcí a trénování modelů v pracovních postupech datových věd. Aby bylo možné efektivně používat GPU, architektury, jako jsou RAPIDS a Dask GPU , rozšiřují oblíbené knihovny pro zpracování dat, jako jsou pandas a scikit-learn.

Opensourcový software (OSS) akcelerovaný moduly dotazů SQL a sloupcové databáze, jako je BlazingSQL a HeavyDB , používají grafické procesory k rychlému provádění dotazů a analýz velkých datových sad.

Strojové učení a hluboké učení

Oblíbené architektury strojového učení a hlubokého učení, jako jsou TensorFlow a PyTorch , využívají gpu, protože můžou zrychlit trénování a odvozování úkolů.

Modely hlubokého učení mají komplexní neurální sítě. Paralelní zpracování gpu urychlí výpočty modelu. Gpu poskytují vysoce efektivní násobení matic a konvoluce, což jsou základní operace hlubokého učení.

Grafické procesory můžete také použít k urychlení úloh, jako je klasifikace obrázků, rozpoznávání objektů, zpracování přirozeného jazyka a rozpoznávání řeči.

Počítačové zpracování obrazu a obrazu

Úlohy počítačového zpracování obrazu interpretují vizuální data za účelem extrakce smysluplných informací. Tyto úlohy jsou stále častější v aplikacích využívajících AI, autonomních vozidlech, lékařských snímaních, sledovacích systémech a rozšířené realitě. Gpu používají paralelní zpracování, aby mohly efektivně zpracovávat rozsáhlá data obrázků a složité výpočty pro úlohy, jako je detekce objektů, klasifikace obrázků a extrakce funkcí.

Zpracování videa a streamování

Videa jsou ve firmě stále častější, takže organizace potřebují hardware využívající GPU místo procesorů. Úlohy zpracování videa, včetně překódování, kódování a streamování, jsou náročné na výpočetní výkon, zejména pokud mají obsah s vysokým rozlišením nebo 4K. Grafické procesory poskytují efektivní platformu, která poskytuje vysoce výkonné video s nízkou latencí napříč různými aplikacemi, jako jsou streamování sportovních událostí nebo firemních videí.

Uzly agentů s podporou GPU poskytují bohaté prostředí pro zákazníky v prostředích virtuálních klientů, protože přesměrovávají úlohy náročné na grafiku na GPU. Funkce kódování a dekódování videa akcelerované gpu pomáhají zlepšit streamování videa v reálném čase, překódování videa a analýzu videa.

Pokud chcete zrychlit úlohy počítačového zpracování obrazu, jako je rozpoznávání objektů, sledování objektů a zpracování obrazu nebo videa, můžete použít architektury, jako jsou OpenCV, OpenCL, NVIDIA CUDA a NVIDIA cuDNN.

Herní platformy a cloudové herní služby spoléhají na GPU, aby poskytovaly vysoce kvalitní grafiku a hladké herní prostředí.

Vysokovýkonné výpočetní prostředí

Aplikace vysokovýkonných výpočetních prostředí (HPC) často vyžadují složité simulace, numerickou analýzu a vědecké výpočty. Pokud chcete tyto úlohy rychle spustit, můžete pomocí GRAFICKÝch procesorů paralelizovat úlohy napříč několika jádry. Mezi příklady aplikací PROSTŘEDÍ HPC, které potřebují obrovský výkon paralelního zpracování, patří vědecké simulace, předpověď počasí, výpočetní dynamika tekutin a molekulární modelování. Grafické procesory jsou ideální pro paralelní výpočty a výrazně urychlují úlohy PROSTŘEDÍ HPC. Vědecké a výzkumné úsilí přináší prospěch z GRAFICKÝch procesorů.

K urychlení aplikací HPC poskytují rozhraní, jako jsou NVIDIA CUDA, OpenCL a OpenACC , rozhraní API a knihovny s podporou GPU.

Genomická analýza a bioinformatika

Úlohy zdravotních a životních věd, jako jsou genomické analýzy a aplikace bioinformatiky, jsou stále častější. Tyto úlohy zahrnují zpracování genetických dat, jako jsou sekvence DNA a proteinové struktury, a vyžadují složité algoritmy pro sekvenci zarovnání, volání variant a dolování genomických dat. Gpu urychlují pracovní postupy pro analýzu genomiky, aby vědci mohli zpracovávat data a odhalit přehledy rychleji.

Než nasadíte uzly GPU v clusterech AKS, zvažte dopad na náklady. Seznamte se s optimalizací GPU pro úlohy náročné na výpočetní výkon, jako jsou počítačové zpracování obrazu, zpracování videa, prostředí HPC a úlohy analýzy genomu. Při porovnání prostředků GPU a prostředků procesoru v clusterech AKS zvažte tyto faktory.

Generování modelů AI

Velké jazykové modely (LLM), jako jsou OpenAI GPT, Meta Llama, Falcon nebo Mistral, můžou využívat možnosti paralelního zpracování GPU. Ke zlepšení výkonu používejte gpu s těmito modely.

Gpu můžou urychlit trénování a odvozování úkolů, které zahrnují složité výpočty a velké objemy dat. Gpu mají možnosti paralelního zpracování, které rozdělují velké výpočetní úlohy daného modelu na menší dílčí úkoly, které běží souběžně. Tento proces přináší rychlé výsledky a zlepšuje výkon.

Jazykové modely často mají komplexní neurální sítě s několika vrstvami a parametry, které můžou zvýšit výpočetní poptávku. Gpu urychlují klíčové operace při zpracování jazyka, jako je násobení matic a konvoluce, což urychluje trénování a odvozování časů.

Gpu poskytují dostatečnou kapacitu paměti, šířku pásma a výpočetní výkon pro zpracování aplikací založených na LLM, které mají konverzační rozhraní a generování textu. Například vylepšení GPU poskytují uživatelům, kteří pracují s chatovacími roboty a asistenty umělé inteligence, rychlou dobu odezvy.

Ne všechny úlohy využívají uzly agenta s podporou GPU a v některých případech jsou procesory dostatečné. Například úlohy, které jsou primárně vázané na vstup a výstup nebo nevyžadují náročné výpočty, se nemusí zlepšit s grafickými procesory.

Případové studie

Mnoho zákazníků Microsoftu využívá úlohy GPU k inovacím pro své zákazníky. Zvažte následující příklady:

Osvědčené postupy pro nasazení úloh GPU

AKS nabízí různé možnosti nasazení fondů a úloh uzlů s podporou GPU a Windows. Pokud chcete zajistit hladký provoz úloh GPU, postupujte podle těchto osvědčených postupů.

Nasazení úloh v Linuxu

Nasazení úloh Systému Windows

  • Vytvořte fond uzlů s podporovaným virtuálním počítačem s podporou GPU pro nasazení fondů uzlů Windows s podporou GPU. AKS automaticky nainstaluje ovladače a potřebné komponenty NVIDIA. Tato metoda nepodporuje aktualizaci existujícího fondu uzlů pro přidání gpu.

    Když vyberete podporovaný virtuální počítač s podporou GPU, AKS automaticky nainstaluje příslušný ovladač NVIDIA CUDA nebo GRID. Některé úlohy závisí na konkrétním ovladači, který může ovlivnit vaše nasazení. Pro velikosti virtuálních počítačů řady NC a ND-series nainstaluje AKS ovladač CUDA. Pro velikosti virtuálních počítačů řady NV-series nainstaluje AKS ovladač GRID.

  • Prohlédněte si podporované virtuální počítače s podporou GPU v Azure. Pro fondy uzlů AKS doporučujeme použít minimální velikost Standard_NC6s_v3 . AKS nepodporuje řadu NVv4 na základě grafických procesorů AMD.

  • Seznamte se s omezeními při používání fondu uzlů Windows. Kubernetes verze 1.28 a novější nepodporují grafické procesory Windows.

  • Při plánování úloh ve fondech uzlů s podporou GPU používejte selektory uzlů, spřažení uzlů, tainty a tolerance.

Poznámka:

Windows GPU je funkce ve verzi Preview. Musíte zaregistrovat WindowsGPUPreview příznak funkce.

Nvidia GPU – operátor

Operátor NVIDIA GPU je nástroj, který můžete použít k efektivnímu nasazování a správě prostředků GPU v clusterech Kubernetes. Operátor můžete použít k automatizaci instalace, konfigurace a údržby softwarových komponent. Tento přístup zajišťuje optimální využití grafických procesorů NVIDIA pro náročné úlohy, jako jsou AI a úlohy strojového učení.

Operátor NVIDIA GPU automaticky spravuje všechny softwarové komponenty NVIDIA, které potřebujete k nasazení GPU, jako je modul plug-in zařízení NVIDIA pro Kubernetes a modul runtime kontejneru NVIDIA. Operátor ovladač automaticky nainstaluje. Další informace naleznete v přehledu NVIDIA.

Pokud chcete zvýšit kontrolu a flexibilitu pro pokročilé úlohy GPU, můžete pomocí operátoru NVIDIA GPU s uzly s podporou GPU v AKS. Operátor NVIDIA GPU nepodporuje grafické procesory Windows.

Zvažte následující osvědčené postupy:

  • Pomocí operátoru NVIDIA GPU můžete provádět pokročilé konfigurace GPU, jako je výběr verze ovladače a časové řezy.

  • Před použitím operátoru GPU přeskočte automatickou instalaci ovladače.

  • Při použití operátoru GPU s automatickým škálováním clusteru nastavte minimální počet na 1.

Poznámka:

Microsoft nepodporuje ani nespravuje údržbu a kompatibilitu ovladačů NVIDIA v rámci nasazení bitové kopie uzlu při použití operátoru GPU.

Nasazení úloh GPU pro LLM

Operátor nástroje Kubernetes AI (KAITO) je operátor Kubernetes, který zjednodušuje spouštění opensourcových LLM, jako je Falcon a Llama2, v clusteru Kubernetes. KaiTO můžete nasadit do clusteru AKS jako spravovaný doplněk pro AKS. KaiTO používá Karpenter k automatickému zřizování a nasazování uzlů GPU na základě specifikace ve vlastní definici prostředku pracovního prostoru zvoleného modelu. KaiTO vytvoří odvozovací server jako koncový bod pro váš LLM a snižuje celkovou dobu připojování, abyste mohli provádět operace strojového učení místo nastavení a údržby infrastruktury.

Pro zlepšení operací strojového učení poskytuje KAITO následující možnosti:

  • Správa imagí kontejneru: Správa LLM pomocí imagí kontejnerů KAITO poskytuje server HTTP, abyste mohli použít podporovanou knihovnu modelů k provádění volání odvozování.

  • Konfigurace hardwaru GPU: KAITO poskytuje přednastavené konfigurace, které se automaticky použijí na základě požadavků na model. Nemusíte ručně ladit parametry nasazení tak, aby odpovídaly hardwaru GPU.

  • Automatické zřizování uzlů GPU: KaiTO automaticky zřizuje uzly GPU na základě požadavků na model a doporučuje nižší velikosti virtuálních počítačů GPU ke konfiguraci distribuovaného odvozování.

  • Integrace s Registr artefaktů Microsoft: Pokud vaše licence LLM umožňuje, může KAITO hostovat image modelů ve veřejném registru artefaktů. Tato metoda zjednodušuje přístup k podporovaným modelům a jejich nasazení. U opensourcových modelů s licencemi MIT nebo Apache2, které úložiště KAITO nepodporuje, můžete odeslat žádost o nasazení nového modelu.

Další informace o KAITO najdete v následujících zdrojích informací:

Škálování úloh a clusterů

V případě scénářů umělé inteligence a strojového učení musíte rozlišovat mezi trénovacími úlohami a odvozováním pomocí předem natrénovaných modelů. Při sestavování a trénování modelu strojového učení zvažte použití výpočetních prostředků GPU, které jsou navržené pro hluboké učení a paralelizaci výpočtů AI. Trénování často vyžaduje postupné škálování a distribuci velkých objemů dat napříč GPU, aby bylo dosaženo vysoké přesnosti pomocí datového paralelismu.

Horizontální dělení modelů je běžná pokročilá technika, kterou můžete použít k rozdělení fází trénování modelu. Grafické procesory můžete přiřadit různým úkolům a maximalizovat jejich použití. Gpu můžou škálovat a škálovat úlohy PROSTŘEDÍ HPC, jako jsou virtuální počítače řady NV nebo ND-series v Azure. Tato funkce pomáhá udržovat vysoké využití prostředků a snižovat zásah uživatelů u procesů trénování strojového učení, které jsou zdlouhavé a nákladné.

Alternativně můžete k odvozování použít předem natrénované opensourcové modely umělé inteligence a strojového učení. Začněte s oblíbenými modely, jako je Llama, Falcon nebo Mistral, jako rychlejší a cenově výhodnější možnost v porovnání s vytvářením a trénováním LLM od nuly. Další informace najdete v tématu Jazykové modely v AKS.

Při použití předem natrénovaných modelů pro odvozování můžete zaznamenat dynamické a kolísající využití prostředků v závislosti na objemu zpracovávaných dat. Když prostřednictvím zvoleného modelu spouštíte živá data, špičky v provozu se někdy vyskytují v závislosti na velikosti modelu a požadavcích. V průběhu procesu odvozování musíte zachovat přijatelnou nízkou úroveň latence. Pokud chcete efektivně používat grafické procesory pro zajištění vysokého výkonu a nízké latence, můžete provádět distribuované odvozování s modely, které KAITO podporuje. Tento přístup rozšiřuje možnosti výpočetních prostředků tak, aby zahrnovaly nižší skladové položky GPU, které mají jednu nebo dvě GPU, poskytují vysokou dostupnost napříč oblastmi Azure a snižují náklady na údržbu.

Správa nákladů na úlohy GPU

Gpu můžou zvýšit náklady. Správně monitorujte úlohy, abyste pochopili, co řídí náklady na GPU, a identifikujte příležitosti optimalizace. Pokud chcete zvýšit viditelnost nákladů, můžete použít doplněk analýzy nákladů AKS.

Následující scénáře využívají přehled nákladů.

Náklady na velikost virtuálního počítače s podporou GPU

Vyberte správnou velikost virtuálního počítače s podporou GPU, abyste optimalizovali náklady na provoz grafických procesorů. Denní náklady se můžou lišit v závislosti na zvolené velikosti virtuálního počítače. Gpu A100 jsou nákladné. Pokud vaše úloha nemá specifické požadavky, měli byste se jim vyhnout. Analýza nákladů AKS ukazuje denní náklady na každý virtuální počítač a rozdělí související náklady na každou úlohu, která běží na virtuálním počítači s podporou GPU. Tato data použijte k vyhodnocení, jestli máte správnou velikost virtuálního počítače nebo jestli potřebujete cenově výhodnější možnost.

Náklady na nečinnost

Po vytvoření fondu uzlů s podporou GPU se účtují náklady na prostředek Azure, i když nespustíte úlohu GPU. Nečinné náklady představují náklady na dostupnou kapacitu prostředků, kterou úlohy nepoužívají. Tyto náklady se rychle sčítá, pokud máte několik nepoužívaných uzlů. Pokud se chcete vyhnout vysokým nákladům na nečinnost, vytvořte fondy uzlů jenom při spuštění úlohy a používejte metody, jako je funkce zastavení clusteru, když úlohu nespustíte. Analýza nákladů AKS zobrazuje nečinné náklady na každý z uzlů.

Nadměrné zřízení a nedostatečné využití

Nadměrné zřízení je, když přidělíte více prostředků, než je nutné pro pod. Nadměrné zřizování vede k plýtvání zdroji a nedostatečné využití. Nadbytečné prostředky zůstanou vyhrazené pro uzel, i když je nepoužíváte. Pokud chcete snížit nadměrné zřizování, nastavte přesné požadavky a limity na základě předchozích vzorů použití pomocí vertikálního automatického škálování podů.

K nedostatečnému využití může dojít v případě, že vaše úlohy plně nepoužívají gpu. Zvažte pokročilé techniky sdílení a dělení GPU. Místo použití více uzlů můžete k maximalizaci využití GPU použít jeden uzel s dělením. Tyto techniky vám můžou pomoct přidělit odpovídající množství akcelerace GPU pro každou úlohu, což může zvýšit využití a snížit provozní náklady na nasazení.

Nasazení úloh GPU s Linuxem v AKS podporují gpu s více instancemi. Tato funkce slouží k rozdělení GRAFICKÉho procesoru NVIDIA A100 do až sedmi nezávislých instancí. Každá instance má vlastní paměť a streamuje multiprocesor.

NVIDIA podporuje další techniky dělení, jako je dělení času a implementace multiprocesové služby. Pokud chcete tyto konfigurace použít ručně, použijte operátor NVIDIA GPU.

V případě pokročilých scénářů můžete zlepšit balení přihrádek prostředků na uzlech. Můžete nastavit konfigurace plánovače a spustit druhý plánovač. Nakonfigurujte a udržujte sekundární plánovač tak, aby používal strategie umístění úloh, které se liší od výchozího plánovače AKS. Další informace najdete v tématu Konfigurace více plánovačů v Kubernetes.

Přispěvatelé

Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.

Hlavní autor:

Další přispěvatelé:

Pokud chcete zobrazit nepublikované profily LinkedIn, přihlaste se na LinkedIn.

Další kroky