Simple Science

Hochmoderne Wissenschaft einfach erklärt

# Computerwissenschaften# Computer Vision und Mustererkennung

Grendel: Ein neuer Ansatz zur 3D-Gaussian-Splatting

Grendel verbessert die 3D-Bilderstellung durch die Verwendung mehrerer GPUs für bessere Qualität und Geschwindigkeit.

― 6 min Lesedauer


Grendel: 3D-RenderingGrendel: 3D-Renderingtransformieren3D-Bildqualität und Geschwindigkeit.Neues System verbessert die
Inhaltsverzeichnis

3D Gaussian Splatting (3DGS) ist eine Methode zur Erstellung von dreidimensionalen Bildern aus zweidimensionalen Bildern. Dieser Ansatz hat an Popularität gewonnen, da er hochqualitative Grafiken schnell produziert. Allerdings ist es normalerweise auf das Training auf einer einzigen Grafikprozessor-Einheit (GPU) beschränkt. Diese Einschränkung behindert die Fähigkeit, mit grösseren Bildern und komplexeren Szenen zu arbeiten, hauptsächlich aufgrund der Speicherkapazität einer einzelnen GPU.

Um diese Probleme zu lösen, stellen wir ein System namens Grendel vor, das entwickelt wurde, um mehrere GPUs zusammenarbeiten zu lassen. Dadurch können wir komplexere Aufgaben in der 3D-Rekonstruktion bewältigen, ohne durch Speicherbeschränkungen eingeschränkt zu werden. Grendel hilft, die Arbeit gleichmässig auf die GPUs zu verteilen und beschleunigt die Verarbeitung grossflächiger Szenen.

Das Problem mit aktuellen Systemen

Derzeit erfolgt das Training bei der Verwendung von 3DGS auf einer GPU, was bedeutet, dass wir nur mit einer bestimmten Anzahl von Komponenten arbeiten können, die als Gauss'sche Verteilungen bezeichnet werden. Jede Gauss'sche Verteilung repräsentiert einen kleinen Teil einer Szene und hilft bei der Erstellung des endgültigen Bildes. Eine einzelne GPU kann jedoch nur eine begrenzte Anzahl von Gauss'schen Verteilungen verarbeiten, bevor der Speicher erschöpft ist. Diese Grenze schränkt die Qualität und Grösse der Bilder ein, die wir erstellen können.

Insbesondere grosse Datensätze wie der Rubble-Datensatz können problematisch sein. Dieser Datensatz besteht aus vielen hochauflösenden Bildern und erfordert erheblich mehr Gauss'sche Verteilungen, als eine einzelne GPU verwalten kann. Aktuelle Methoden, die versuchen, diese Einschränkung zu umgehen, beinhalten oft die Komprimierung von Daten oder die selektive Verarbeitung von Teilen der Szene. Leider stehen diese Methoden weiterhin vor erheblichen Herausforderungen aufgrund von Speicher- und Rechenbeschränkungen.

Einführung von Grendel

Grendel ist so konzipiert, dass es diese Einschränkungen angeht, indem die Arbeit in kleinere, handhabbare Teile zerlegt wird. Es verteilt die Gauss'schen Verteilungen über mehrere GPUs und ermöglicht ihnen, zusammenzuarbeiten, um die Szene zu rendern. Jede Gauss'sche Verteilung beeinflusst nur einen kleinen Bereich des endgültigen Bildes, was bedeutet, dass wir sparse Kommunikation zwischen den GPUs nutzen können, um alles reibungslos laufen zu lassen.

Ein Schlüsselmerkmal von Grendel ist seine Fähigkeit, mehrere Ansichten während des Trainings zu unterstützen. Im Gegensatz zu früheren Systemen, die nur mit einem Kamerawinkel gleichzeitig trainierten, ermöglicht Grendel die Verarbeitung mehrerer Winkel in Batches. Dies macht den Trainingsprozess schneller und effizienter, da jede GPU einen Teil der Arbeit gleichzeitig erledigen kann.

Wie Grendel funktioniert

Grendel teilt die Arbeit in zwei Hauptkategorien auf: Gauss'sche Berechnung und pixelweise Berechnung. Die Gauss'sche Berechnung umfasst die direkte Arbeit mit den Gauss'schen Verteilungen, die über die GPUs verteilt sind, während die pixelweise Berechnung die einzelnen Pixel der gerenderten Bilder betrachtet.

Durch die Verwendung dieses gemischten Ansatzes minimiert Grendel die benötigte Kommunikation zwischen den GPUs und optimiert die Leistung. Das System passt sich auch während des Trainings dynamisch an und passt die Arbeitslast auf jeder GPU basierend auf den laufenden Anforderungen der Aufgabe an. Dies verhindert, dass eine GPU überlastet wird, während andere ungenutzt bleiben.

Training in Batches

Bei herkömmlichen Trainingsmethoden bearbeitet jede GPU ein Bild nach dem anderen. Dies führt zu Ineffizienzen, insbesondere in verteilten Systemen mit mehreren GPUs. Bei Grendel erfolgt das Training in Batches, wodurch mehrere Bilder gleichzeitig verarbeitet werden können. Dies erhöht die Gesamtgeschwindigkeit und Effizienz des Trainingsprozesses.

Beim Erhöhen der Batch-Grösse ist es jedoch entscheidend, die Einstellungen anzupassen, die regeln, wie das System lernt. Grendel enthält eine automatisierte Methode zur Skalierung von Hyperparametern bei der Verwendung grösserer Batches. Dies stellt sicher, dass der Lernprozess stabil und effektiv bleibt, selbst bei Änderungen der Batch-Grösse.

Leistungstest

Um die Leistung von Grendel zu bewerten, wurden umfangreiche Tests mit grossen Datensätzen durchgeführt. Zum Beispiel verteilte Grendel im Rubble-Datensatz über 40 Millionen Gauss'sche Verteilungen über 16 GPUs und erreichte eine bessere Bildqualität im Vergleich zu herkömmlichen Methoden, die nur einen Bruchteil davon auf einer einzigen GPU verarbeiten können.

Mit Grendel verzeichneten wir erhebliche Verbesserungen in der Bildqualität und der Rendergeschwindigkeit. Das System konnte grössere Datensätze verarbeiten, die zuvor nicht handhabbar waren, und bewies damit seine Effektivität in der Praxis.

Vorteile von Grendel

Der Hauptvorteil der Verwendung von Grendel ist seine Fähigkeit zur Skalierung. Wenn mehr GPUs hinzugefügt werden, steigen sowohl die Leistung als auch der verfügbare Speicher. Dies ermöglicht es dem System, mit grösseren Mengen von Gauss'schen Verteilungen umzugehen, was wiederum zu qualitativ besseren Bildern führt.

Darüber hinaus verarbeitet Grendel Bilder schneller als herkömmliche Methoden. Dies ist entscheidend für Anwendungen, die schnelle Ergebnisse benötigen, wie virtuelle Realität und Gaming. Die Fähigkeit, mit Batches von Bildern zu arbeiten, nutzt die verfügbaren Hardware-Ressourcen effizient und stellt sicher, dass diese gut genutzt werden.

Herausforderungen angehen

Während der Entwicklung von Grendel traten mehrere Herausforderungen auf. Ein erhebliches Problem war die Notwendigkeit, die Arbeitslasten gleichmässig über die GPUs zu verteilen. Da verschiedene Teile einer Szene unterschiedliche Mengen an Rechenleistung benötigen können, war es entscheidend, eine Methode zu entwickeln, um die Verteilung der Arbeit dynamisch anzupassen.

Grendel verwendet ein Überwachungssystem, um die Renderzeiten aufzuzeichnen und die Arbeitslasten entsprechend den Bedürfnissen jeder GPU anzupassen. Dies gewährleistet eine gleichmässige Verteilung der Aufgaben und verhindert Engpässe, die den Renderprozess verlangsamen könnten.

Fazit

Grendel bietet ein bedeutendes Upgrade für den Prozess der Erstellung von 3D-Bildern mithilfe von Gaussian Splatting. Durch die Nutzung mehrerer GPUs überwindet es die Grenzen, die von einzelnen Geräteeinrichtungen auferlegt werden. Das System verbessert die Renderingqualität, erhöht die Verarbeitungsgeschwindigkeit und ermöglicht eine effektive Verarbeitung grösserer Datensätze.

Mit dem fortschreitenden technologischen Fortschritt werden Systeme wie Grendel zunehmend wichtig für Bereiche, die auf hochwertige Bildgenerierung angewiesen sind. Mit seinem skalierbaren Design und der effizienten Nutzung von Ressourcen wird Grendel eine führende Rolle bei den Fortschritten in den Methoden der 3D-Rekonstruktion einnehmen.

Indem wir diese Technologie als Open Source bereitstellen, hoffen wir, weitere Experimente und Verbesserungen in der Gemeinschaft zu fördern und neue Anwendungen in der visuellen Datenverarbeitung und darüber hinaus zu erleichtern.

Originalquelle

Titel: On Scaling Up 3D Gaussian Splatting Training

Zusammenfassung: 3D Gaussian Splatting (3DGS) is increasingly popular for 3D reconstruction due to its superior visual quality and rendering speed. However, 3DGS training currently occurs on a single GPU, limiting its ability to handle high-resolution and large-scale 3D reconstruction tasks due to memory constraints. We introduce Grendel, a distributed system designed to partition 3DGS parameters and parallelize computation across multiple GPUs. As each Gaussian affects a small, dynamic subset of rendered pixels, Grendel employs sparse all-to-all communication to transfer the necessary Gaussians to pixel partitions and performs dynamic load balancing. Unlike existing 3DGS systems that train using one camera view image at a time, Grendel supports batched training with multiple views. We explore various optimization hyperparameter scaling strategies and find that a simple sqrt(batch size) scaling rule is highly effective. Evaluations using large-scale, high-resolution scenes show that Grendel enhances rendering quality by scaling up 3DGS parameters across multiple GPUs. On the Rubble dataset, we achieve a test PSNR of 27.28 by distributing 40.4 million Gaussians across 16 GPUs, compared to a PSNR of 26.28 using 11.2 million Gaussians on a single GPU. Grendel is an open-source project available at: https://github.com/nyu-systems/Grendel-GS

Autoren: Hexu Zhao, Haoyang Weng, Daohan Lu, Ang Li, Jinyang Li, Aurojit Panda, Saining Xie

Letzte Aktualisierung: 2024-06-26 00:00:00

Sprache: English

Quell-URL: https://arxiv.org/abs/2406.18533

Quell-PDF: https://arxiv.org/pdf/2406.18533

Lizenz: https://creativecommons.org/licenses/by/4.0/

Änderungen: Diese Zusammenfassung wurde mit Unterstützung von AI erstellt und kann Ungenauigkeiten enthalten. Genaue Informationen entnehmen Sie bitte den hier verlinkten Originaldokumenten.

Vielen Dank an arxiv für die Nutzung seiner Open-Access-Interoperabilität.

Mehr von den Autoren

Ähnliche Artikel