Možná vám vrtalo hlavou, proč jsou všechna AI PC a Copilot+ PC s funkcemi umělé inteligence, která nyní prosazuje Microsoft na platformě Windows, založená na procesorech od Qualcommu, Intelu a AMD, když největším lídrem v hardwaru pro AI je globálně Nvidia? To je ovšem ve spojení s Linuxem na serverech. Z různých důvodů není ve Windows akcelerace AI na GPU až tak snadná, takže je nevyužívá zas tolik aplikací. Ovšem to se teď může změnit.
Možná vás také zarazilo, že ač je dnes (respektive už pár posledních let) všude slyšet o umělé inteligenci, ve světě osobních počítačů to jako by nebylo moc vidět. AI aplikace mnohem častěji potkáte na webu, kdy běží na serverech (například generátory obrázků) nebo na mobilech. Vývojáři už sice zavádějí hardwarovou akcelerovanou AI do aplikací (například různé kreativní programy), ale není to nějak všudypřítomný trend.
AI aplikace konečně snadno a jednoduše?
Za tímto asi částečně stojí to, že využití GPU akcelerace umělé inteligence na Windows doteď nebylo až tak přímočaré. Běžní uživatelé potřebují snadno instalovatelnou aplikaci, zatímco obvyklý přístup v serverovém použití na Linuxu je více „vývojářský“ s kompilováním nástrojů a podobně a doteď nebyl na takové jednoduše rozběhnutelné aplikace pro běžného uživatele moc vybaven. Nvidia s Microsoftem ale teď během Computexu a konference Build uvádějí novou softwarovou základnu pojmenovanou TensorRT for RTX (neplést s obyčejným TensorRT) pro AI, která by tento problém mohla ukončit.
V čem je přínosná? Problém s akcelerací AI je, že hardware k ní určený má velmi rozdílné architektury a aplikace pro něj nelze psát a přeložit univerzálně kompatibilně jako u procesorů. Dokonce i při omezení jen na GPU Nvidie existuje několik architektur Tensor jader lišících se mezi různými GPU. A aplikace umělé inteligence musela doteď být zkompilována vždy pro konkrétní architekturu GPU, protože dosavadní programovací rozhraní TensorRT generovalo kód, který byl specifický pro jednu architekturu.
Vývojář, který by chtěl takový program distribuovat, by tedy v instalátoru musel aplikaci zabalit zvlášť pro každou z architektur, kterou má program podporovat. Rozhraní pro jednotlivá GPU totiž bylo odlišné – pro každé z GPU se musel vygenerovat specifický tzv. inference engine (či také TensorRT engine).
„Build once, run on any GeForce RTX“
TensorRT for RTX je univerzálnější evoluce či nadstavba TensorRT a místo toho poskytuje unifikovaný cíl pro takové aplikace – vývojář bude už muset vyrobit jen jedinou „agnostickou“ verzi aplikace s jediným univerzálním AI modelem, která přes rozhraní TensorRT for RTX poběží na všech generacích grafik GeForce RTX od Nvidie. Knihovny TensorRT for RTX, které musí být přibalené, mají mít asi jen 100 MB. Windows si k nim automaticky stáhne potřebné další knihovny.
TensorRT for RTX si při instalaci vezme onen unifikovaný „agnostický“ AI model a automaticky už provede potřebnou optimalizaci na konkrétní GPU přímo na uživatelově zařízení. Tato optimalizace běží na CPU, takže nemá žádné další speciální požadavky, ale měla by dosáhnout toho, že výkon aplikace bude velmi blízký tomu, co by dokázal speciální engine specifický pro dané GPU – nejprve se vytvoří tzv. intermediate engine a poté JIT kompilací finální engine optimalizovaný plně na Cuda architekturu konkrétního GPU. A tato optimalizace při instalaci by neměla trvat dlouho (podle Nvidie se čas měří v sekundách).
Z pohledu uživatele půjde o transparentní instalaci aplikace, kdy stáhnete balíček (nebo ho vyberete přes aplikační obchod) a vše se jednoduše samo dokončí, jako by šlo o konvenční program. Aby to takto fungovalo, musel doteď autor aplikace program vytvořit pro všechny architektury a všechny tyto verze pak zapakovat do instalátoru, což by s většími AI modely rychle narazilo na problémy s velikostí takového souboru.
Tato technologie TensorRT for RTX je dostupná pro všechny grafiky Nvidia GeForce RTX (od generace RTX 2000 výš) a pro operační systém Windows 11. Nvidia teď vydala, respektive v červnu vydá její preview verzi, která bude veřejně přístupná. Zatím bude samozřejmě zajímavá hlavně pro vývojáře, kteří na jejím základě teď mohou založit svůj software.
Je třeba říct, že tato funkcionalita TensorRT for RTX, která abstrahuje aplikace od použitého hardwaru a umožňuje, aby jedna aplikace cílila na všechna GPU (od Nvidie) najednou, není úplně unikátní. Stejnou službu už by alespoň teoreticky mělo umožnit například API DirectML (respektive jeho nyní uvedená vylepšená verze Windows ML) od Microsoftu, které také mohou programy využít pro „mluvení s hardwarem“ v univerzálně použitelné formě. DirectML a Windows ML ale má obecně nižší výkon, i kvůli tomu, jak širokou škálu hardwaru a souvisejících softwarových backendů musí pokrývat.
Až dvakrát lepší výkon
TensorRT for RTX je backend, který funguje právě v rámci DirectML / Windows ML, ale na grafikách GeForce RTX dosahuje výrazně lepšího výkonu, než pokud byste používali AI software nad generickou vrstvou DirectML. Podle firmy může výkon v AI aplikacích být s knihovnami TensorRT for RTX díky optimálnímu využití GPU až dvojnásobný. A přitom je vývoj a instalace těchto programů stále snadná. Alespoň pokud se bavíme o instalaci na počítače s grafikou GeForce RTX – AI hardware dalších výrobců bude v rámci technologie Windows ML muset být pokrytý podobnými softwarovými komponentami dodanými zase těmito firmami.
Nvidia NIM for RTX a AI Blueprints
Současně Nvidia uvádí něco, co má pro vývojáře softwaru, nebo i pro amatérské zájemce a nadšence usnadnit tvorbu AI aplikací. Pod názvem Nvidia NIM firma zpřístupňuje předpřipravené a již optimalizované (čímž se asi myslí optimalizované pro GPU Nvidia) AI modely pro různé účely (jazykové modely, generování obrázků, atd), které mohou zájemci vzít a postavit na nich nějakou aplikaci nebo nástroj – pro vlastní účely, nebo i pro širší publikum.
Spolu s těmito modely pak budou dostupné vzorové implementace a tzv. AI Blueprints. To už jsou nejen modely, ale rovnou templaty či příkladové projekty s kódem, který lze použít jako referenci, inspiraci, nebo dokonce i základ pro vlastní aplikaci (AI Blueprinty by měly být open-source).
Například takto bude možné vyvíjet vlastní pluginy do nástroje Nvidia G-Assist. Nvidia dokonce uvádí, že to pomocí generativní AI (nástroj Plugin Builder založený na ChatGPT) bude možné i pro uživatele, kteří nemají žádné programátorské schopnosti.
Jedním z takových příkladových projektů je dokonce i aplikace Chat with RTX, kterou před časem Nvidia vydala. Také ta by měla být uvolněna jako příkladový open-source a Nvidia uvádí, že je dostupná pro komunitu jak zdroj pro další aplikace nebo jako referenční kód.