NVIDIA hat den GPU-beschleunigten Quelltext seiner Simulationsbibliotheken PhysX und Flow komplett offengelegt und damit die letzte verbliebene Lücke in der Open-Source-Strategie geschlossen. Wie das Unternehmen im offiziellen GitHub-Diskussionsforum bekannt gegeben hat, stehen ab sofort sämtliche GPU-Simulationskernel unter der BSD-3-Clause-Lizenz bereit. Bis dahin war seit Dezember 2018 nur der CPU-Code öffentlich, die GPU-Beschleunigung kam als geschlossene Binärkomponente.
Der freigegebene Code umfasst über 500 CUDA-Kernel. Sie bilden Funktionen wie die Dynamik starrer Körper, Fluidsimulation und verformbare Objekte ab. Dazu kommt die vollständige GPU-Compute-Shader-Implementierung des Flow SDK, einer Bibliothek für Echtzeit-Fluidsimulation auf Basis dünn besetzter Gitter (sparse grid). Erstmals liegen damit beide Pakete samt der hardwarenahen Beschleunigungsschicht im Quelltext vor. Die Öffnung passt zum bisherigen Kurs von NVIDIA, das seine Entwicklerwerkzeuge zunehmend frei zugänglich macht.
Was im Code steckt und unter welcher Lizenz
Die GPU-Quelltexte sind in die jeweils aktuellen Veröffentlichungen der SDKs eingeflossen. PhysX läuft über das Repository NVIDIA-Omniverse/PhysX, das neben dem Physikkern auch Flow für Fluid- und Feuersimulation sowie Blast für Zerstörungs- und Fraktureffekte beherbergt. NVIDIA selbst nennt GPU PhysX einen der anspruchsvollsten Anwendungsfälle für CUDA- und GPU-Programmierung in der Echtzeitsimulation. Die einheitliche BSD-3-Clause-Lizenz erlaubt eine weitgehend freie Nutzung, Modifikation und Weiterverbreitung des Codes, auch in kommerziellen Projekten.
Mit den offenen CUDA-Kernel bekommen Entwickler vollständige Einsicht in die GPU-Pipeline. Das schafft die technische Grundlage, die Beschleunigung über die bisherige Bindung an NVIDIA-Hardware hinaus auf andere GPU-Architekturen zu portieren. Eine Anpassung an AMD- oder Intel-Hardware ist damit grundsätzlich machbar, kostet aber erheblichen Portierungsaufwand, weil die Kernel auf CUDA aufsetzen.
Was Studios und Tool-Hersteller davon haben
PhysX steckt seit Jahren als Physik-Middleware in zahlreichen Spiele-Engines und Produktionswerkzeugen, unter anderem in etablierten kommerziellen Engines. Mit der kompletten Quelltextöffnung taugen die Bibliotheken jetzt auch für Lehre, Experiment und Eigenentwicklung. Studios und Werkzeughersteller können die Simulationskernel analysieren, anpassen und in eigene Renderpipelines einbauen, ohne an vorkompilierte Binärkomponenten gebunden zu sein.
Für die GPU-Programmierung allgemein ist die Freigabe ein umfangreicher Fundus, denn die Kernel enthalten praxiserprobte Implementierungen komplexer Simulationsverfahren. Die permissive Lizenz senkt die Hürde für die Weiterentwicklung physikbasierter Echtzeitsysteme. NVIDIA öffnet die PhysX-Codebasis seit 2018 Stück für Stück, und mit den GPU-Kernel ist dieser Prozess nun abgeschlossen.