Nvidia překvapivě uvolnila PhysX jako open source. Chce ho uplatnit ve vědě a AI

6. 12. 2018

Sdílet

 Autor: Redakce

PhysX, technologie pro hardwarovou akceleraci výpočtů herní fyziky, měla Nvidia dlouhá léta jako jednu ze svých exkluzivních výhod. Firma ji získala koupí stejnojmenné firmy (která pro ni původně vyráběla vlastní akcelerátory, jejichž podporu pak Nvidia ale celkem rychle utnula). Protože šlo podobně jako u G-Sync o určitou formu připoutávání si zákazníků k vlastní značce, vzbudil docela velké překvapení krok, který nyní s PhysX Nvidia podniká. Otevírá totiž tuto technologii jako open source, což by mohlo umožnit, aby začala fungovat i mimo GPU GeForce.  

PhysX volně pod BSD licencí

Nvidia oznámila otevření PhysX na svém blogu. „Fyzikální simulace je ještě důležitější technologie, než jsme si dřív mysleli,“ podotýká se v tomto textu, a proto Nvidia PhysX uvolňuje pro širokou veřejnost. Kód by skutečně měl být otevřen v duchu open source, a to pod velmi permisivní licencí BSD (jde o tříbodovou verzi). Ta zjednodušeně řečeno umožňuje prakticky jakékoliv další využití v komerčním i nekomerčním produktu, a to jak v uzavřeném, tak v otevřeném.

Kód, představující SDK PhysX nyní ve verzi 3.4 se už nachází na GitHubu, kde by tedy zřejmě měl být hostován. Samozřejmě se teprve ukáže, zda bude Nvidia správně vést open source vývoj, aktualizovat repozitář o své vlastní změny, a zda bude dobře probíhat spolupráce s nezávislými a také přímo konkurenčními přispěvateli (a jak bude situace vypadat, když mezi zájmy těchto stran ve věci nějakého rozhodnutí nebude shoda). Uvolnění kódu ale otevírá možnost, aby se akcelerace efektů PhysX dostaly i na konkurenční grafické karty.

PhysX SDK na GitHubu

Akcelerace na konkurenčních grafikách?

Nebude to ovšem zas tak snadné, jak by se mohlo zdát. Kód SDK asi neobsahuje nic z ovladačů Nvidie, pokud by tyto součásti také byly pro implementaci v ovladačích pro jiná GPU potřebné. Zejména je zde ale asi problém s jazykem. Otevření kódu je jedna věc, ale kód pro výpočty běžící na GPU je zřejmě psaný v jazyce Cuda, který je stále exkluzivní věcí Nvidie. Ta tedy sice na jednu stranu technologii otevřela, ale navázanost na GPU GeForce se tímto vlastně nijak nemění. Akcelerované PhysX tak zůstane výsadou fanoušků značky Nvidia. S Radeonem nebo grafikou Intel tedy budete odkázáni stále jen na CPU výpočty.

Otevření kódu otevírá možnosti, jak toto změnit. Intel/AMD (potažmo další hráči třeba z ekosystému ARM) by mohli do SDK přidat vlastní nástroje, které by jazyk Cuda překládaly na standardní kód, jenž je přenositelný, tedy asi OpenCL (překlad Cuda kódu pro kompatibilitu s Radeony vyvíjelo AMD, takže by jej zde mohlo využít). Nebo se takovou mezivrstvu pokusit implementovat v ovladačích, každopádně ale asi nebude snadné zajistit, aby PhysX fungovalo se stejným výkonem jako při nativním běhu v Cuda na platformně Nvidie, pro níž bylo vyladěno.

Eventuální kompatibilitu Radeonů a grafik Intel s GPU akcelerací PhysX tedy není radno očekávat nějak rychle, pokud na ní vůbec dojde. Je také nicméně možné, že otevření PhysX může přispět k vývoji jiných projektů implementujících herní fyziku, jako jsou třeba knihovny Havok, nebo budoucí podobné projekty. Je možné, že programátoři z kódu nebudou pro hry čerpat celou platformu PhysX, ale třeba jen dílčí algoritmy, které mohou přepsat do OpenCL či Direct Compute. Otevřený kód tedy může být užitečný i pokud pomineme otázku svázanosti s Cuda. Kromě toho se v řadě, pokud ne rovnou většine her dnes používá PhysX běžící na CPU, kde problém s Cuda není. A otevření celého SDK by mělo umožnit fyziku počítanou na CPU ještě více vylepšit a optimalizovat, takže by se vázanost na GPU Nvidie mohla zmírnit touto cestou.

Nvidia

bitcoin_skoleni

Pro hry, nebo spíš pro jiné oblasti?

Zajímavý detail tohoto oznámení ale je, že se v něm zdaleka nemluví jen o hrách. Herní fyzika je pro nás sice na PhysX to hlavní, ale Nvidia v tiskovce jako o přínosech této technologie hovoří například o jejím uplatnění ve fyzikálních simulacích pro seriózní účely (v sektoru HPC). A zejména pak v simulovaném trénování autonomních vozů, robotů a obecně AI. PhysX tedy zdá se má být i komponenta pro tvorbu virtuální reality nikoliv pro simulování herní akce, ale pro vytváření virtuální reality, v které by se trénovaly neuronové sítě autonomních vozů a podobně. Z pěti bodů, které na blogu Nvidia vypisuje, pokrývají tři toto určení, jeden zmíněné HPC výpočty a jen jeden vývoj počítačových her. A také ilustrační obrázky blogu se týkají robotické simulace.

Oznámení Nvidie se zaměřuje hlavně na využití v simulacích pro roboty a umělou inteligenci, dokládají to i ilustrace z blogpostu

Toto nemusí nutně nic znamenat. Je možné, že tyto sektory prostě jen chtěl maximálně vypíchnout marketing, jelikož jsou vděčné pro investory a analytiky. Nicméně je možné, že je zde signalizována změna zaměření PhysX. Možná, že Nvidia už tolik nebude tlačit na herní využití a raději se bude zabývat oněmi auty a roboty. Došlo-li k takové reorientaci, pak je možná právě i hlavním důvodem onoho neočekávaného otevření celé dlouhých deset let (od roku 2008) exkluzivní technologie. Nicméně to ještě nemusí znamenat, že použití PhysX ve hrách bude odstrčeno na vedlejší kolej nebo utlumeno, Nvidia ho stále může udržovat a rozvíjet parelelně ke svým AI ambicím. Pro hráče se tedy klidně nemusí nic změnit – uvidíme, jak se situace bude vyvíjet.