Efekty PhysX simulující fyzikální jevy jsou dobrý příklad rizik, spojených s integrováním proprietárních technologií (svázaných s produkty jen jedné firmy) do her. Nvidia z nich dřív udělala exkluzivní funkci dostupnou jen na grafikách GeForce, ale na nových kartách RTX 5000 podporu odebrala a efekty přestaly fungovat. Paradoxně to ale možná byl impulz k tomu, aby nezávisle vznikla emulace, která je po letech zprovozní na Radeonech.
Efekty PhysX vyhozené Nvidií se vrátí Radeonem?
Už několik let existuje open-source projekt ZLUDA, který vytváří emulační vrstvu či alternativní implementaci s téměř nativním výkonem, pomocí které by mohly volně na ostatních GPU běžet aplikace programované pro framework CUDA, který je exkluzivně nabízený jenom Nvidií na jejích GPU. Projekt ZLUDA měl původně jako sponzora AMD a později i další firmy, ale aktuálně na něm vývojář Andrzej Janik pracuje jen ve volném čase (oficiální záštita možná byla pro různé společnosti problematická kvůli hrozbě soudního popotahování).
Andrezj Janik nyní do ZLUDA ve verzi 6 přidal podporu her s PhysX používajících CUDA přes 32bitové knihovny, což jsou přesně ty hry, které Nvidia přestala podporovat. V prosinci sice částečně otočila, když přidala zpět speciální podporu pro některé populární hry, ale ta není univerzální. Pomocí ZLUDA by eventuálně mohl fungovat širší okruh her, paradoxně na konkurenčních grafikách Radeon. Ty by tím v dotyčných starších hrách získaly lepší výkon a také přístup k různým speciálním efektům, které byly doteď zamčené a přístupné jen (starším) GPU Nvidia.
Zatím ale ještě tato podpora není hotová, je v před-alfa verzi spíše jako demonstrace a podpora zřejmě také není kompletní (Janik uvádí, že zatím nefungují zcela korektně efekty chování kapalin, například). Implementace umožňuje běh ukázkových dem od Nvidie, ale podařilo se s ní spustit a obenchmarkovat hru Mafia II z roku 2010. Akcelerace přes ZLUDA zvýšila její snímkovou frekvenci z 26,2 FPS na 80,2 FPS (se zapnutou akcelerací přes ZLUDA).
Benchmark akcelerace PhysX pomocí ZLUDA ve hře Mafia II
Pro běžné použití ale asi bude třeba počkat, až se tato počáteční podpora dostane do stabilnějšího vydání softwaru ZLUDA a její další vylepšení. Vedle PhysX mimochodem tato veze ZLUDA má díky základní podpoře práce s texturami podporovat už i akceleraci vykreslování v Blenderu. A také má vylepšovat fungování ve Windows. ZLUDA ale podporuje také Linux a má fungovat i ve Wine nebo Protonu (pro účely spouštění dotyčných her na Linuxu).
ZLUDA nevyžaduje žádné zásahy do softwaru, cílem je, aby hry a programy používající CUDA běžely tak, jak jsou. Vývojář má za cíl podporu primárně na novějších GPU Radeon (architektury RDNA a novější), ale nejen na GPU od AMD, takže tento projekt by se měl dát využít na GPU od Intelu, aspoň teoreticky. Reálná použitelnost závisí i na ovladačích a architektuře daného GPU.
ZLUDA nemá zdaleka za cíl jenom běh her používajících CUDA, ale širokých vrstev programů. V minulosti se například soustředil na akceleraci umělé inteligence (což ale asi bez aktivního sponzorování komerčních uživatelů teď asi mít menší prioritu). Jak kvalitní a širokou podporu CUDA software se projektu povede vybudovat a zda případně ještě nevzniknou nějaké problémy s Nvidií, to ukáže až čas.
Zdroje: Andrzej Janik, Tom’s Hardware
