Grendel : Une nouvelle approche du splatting gaussien 3D
Grendel améliore le rendu d'images 3D en utilisant plusieurs GPU pour une meilleure qualité et vitesse.
― 7 min lire
Table des matières
Le Splatting Gaussien 3D (3DGS) est une méthode utilisée pour créer des images tridimensionnelles à partir d'images bidimensionnelles. Cette approche a gagné en popularité car elle produit des visuels de haute qualité rapidement. Cependant, elle est généralement limitée à l'entraînement sur une seule unité de traitement graphique (GPU). Cette restriction entrave la capacité de travailler avec des images plus grandes et des scènes plus complexes, principalement en raison des limitations de mémoire d'un seul GPU.
Pour résoudre ces problèmes, nous introduisons un système nommé Grendel, conçu pour permettre à plusieurs GPU de travailler ensemble. Ce faisant, nous pouvons gérer des tâches plus complexes en reconstruction 3D sans être freinés par les limitations de mémoire. Grendel aide à répartir le travail de manière équitable entre les GPU et accélère le traitement de scènes à grande échelle.
Le Problème des Systèmes Actuels
Actuellement, lors de l'utilisation de 3DGS, l'entraînement se fait sur un GPU, ce qui signifie que nous ne pouvons travailler qu'avec un certain nombre de composants appelés Gaussiens. Chaque Gaussian représente une petite partie d'une scène et aide à rendre l'image finale. Cependant, un seul GPU ne peut gérer qu'un nombre limité de Gaussiens avant de manquer de mémoire. Cette limite restreint la qualité et la taille des images que nous pouvons créer.
En particulier, des ensembles de données volumineux comme l'ensemble de données Rubble peuvent poser problème. Cet ensemble de données se compose de nombreuses images haute résolution et nécessite de manière significative plus de Gaussiens qu'un seul GPU ne peut en gérer. Les méthodes actuelles qui tentent de contourner cette limitation impliquent souvent de compresser les données ou de rendre sélectivement des parties de la scène. Malheureusement, ces méthodes font toujours face à des défis significatifs en raison des contraintes de mémoire et de calcul.
Présentation de Grendel
Grendel est conçu pour s'attaquer à ces limitations en décomposant le travail en parties plus petites et gérables. Il répartit les Gaussiens entre plusieurs GPU et leur permet de travailler ensemble pour rendre la scène. Chaque Gaussian n'affecte qu'une petite zone de l'image finale, ce qui signifie que nous pouvons profiter d'une communication sparse entre les GPU pour que tout fonctionne sans heurts.
Une caractéristique clé de Grendel est sa capacité à prendre en charge plusieurs vues lors de l'entraînement. Contrairement aux systèmes précédents qui n'entraînaient qu'en utilisant un angle de caméra à la fois, Grendel permet à plusieurs angles d'être traités par lots. Cela rend le processus d'entraînement plus rapide et plus efficace, chaque GPU pouvant effectuer une partie du travail simultanément.
Comment Grendel Fonctionne
Grendel divise le travail en deux catégories principales : le calcul basé sur les Gaussiens et le calcul basé sur les pixels. Le calcul basé sur les Gaussiens implique de travailler directement avec les Gaussiens répartis sur les GPU, tandis que le calcul basé sur les pixels examine les pixels individuels des images rendues.
En utilisant cette approche mixte, Grendel minimise la communication nécessaire entre les GPU et optimise les performances. Le système s'adapte également dynamiquement pendant l'entraînement, ajustant la charge de travail sur chaque GPU en fonction des besoins en cours de la tâche. Cela empêche tout GPU d'être surchargé pendant que d'autres sont sous-utilisés.
Entraînement par Lots
Dans les méthodes d'entraînement traditionnelles, chaque GPU traite une image à la fois. Cela conduit à des inefficacités, en particulier dans les systèmes distribués avec plusieurs GPU. Dans Grendel, l'entraînement se fait par lots, permettant de traiter plusieurs images à la fois. Cela augmente la vitesse et l'efficacité globales du processus d'entraînement.
Cependant, en augmentant la taille des lots, il est crucial d'ajuster les paramètres qui régissent la manière dont le système apprend. Grendel inclut une méthode automatisée pour mettre à l'échelle les hyperparamètres lors de l'utilisation de plus grands lots. Cela garantit que le processus d'apprentissage reste stable et efficace même avec des variations de taille de lot.
Tests de Performance
Pour évaluer la performance de Grendel, des tests approfondis ont été effectués en utilisant de grands ensembles de données. Par exemple, sur l'ensemble de données Rubble, Grendel a réparti plus de 40 millions de Gaussiens sur 16 GPU, atteignant une meilleure qualité d'image par rapport aux méthodes traditionnelles qui ne peuvent gérer qu'une fraction de cela sur un seul GPU.
Avec Grendel, nous avons enregistré des améliorations significatives de la qualité d'image et de la vitesse de rendu. Le système a pu gérer de plus grands ensembles de données qui n'étaient auparavant pas gérables, prouvant son efficacité dans des applications réelles.
Avantages de Grendel
L'avantage principal de l'utilisation de Grendel est sa capacité à évoluer. À mesure que plus de GPU sont ajoutés, à la fois les performances et la mémoire disponible augmentent. Cela permet au système de gérer un plus grand nombre de Gaussiens, ce qui entraîne à son tour une meilleure qualité d'image.
De plus, Grendel traite les images plus rapidement que les méthodes traditionnelles. Cela est essentiel pour des applications nécessitant des résultats rapides, comme la réalité virtuelle et les jeux. La capacité de travailler avec des lots d'images permet d'utiliser efficacement le matériel disponible, garantissant que les ressources sont bien utilisées.
Résolution des Défis
Tout au long du développement de Grendel, plusieurs défis ont été rencontrés. Un problème majeur était la nécessité de garder les charges de travail équilibrées entre les GPU. Étant donné que différentes parties d'une scène peuvent nécessiter des quantités variables de puissance de traitement, il était crucial de développer une méthode pour ajuster dynamiquement la distribution du travail.
Grendel utilise un système de surveillance pour enregistrer les temps de rendu et ajuster les charges de travail en fonction des besoins de chaque GPU. Cela garantit une répartition équitable des tâches et empêche les goulets d'étranglement qui pourraient ralentir le processus de rendu.
Conclusion
Grendel offre une mise à niveau significative du processus de rendu d'images 3D utilisant le Splatting Gaussien. En tirant parti de plusieurs GPU, il dépasse les limites imposées par les configurations d'entraînement sur un seul appareil. Le système améliore la qualité de rendu, augmente la vitesse de traitement et permet de gérer efficacement de plus grands ensembles de données.
À mesure que la technologie continue d'évoluer, des systèmes comme Grendel deviendront de plus en plus importants pour les domaines dépendant de la génération d'images de haute qualité. Avec son design évolutif et son utilisation efficace des ressources, Grendel est prêt à mener les avancées dans les méthodes de reconstruction 3D.
En rendant cette technologie open-source, nous espérons encourager de nouvelles expérimentations et améliorations au sein de la communauté, facilitant de nouvelles applications en informatique visuelle et au-delà.
Titre: On Scaling Up 3D Gaussian Splatting Training
Résumé: 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
Auteurs: Hexu Zhao, Haoyang Weng, Daohan Lu, Ang Li, Jinyang Li, Aurojit Panda, Saining Xie
Dernière mise à jour: 2024-06-26 00:00:00
Langue: English
Source URL: https://arxiv.org/abs/2406.18533
Source PDF: https://arxiv.org/pdf/2406.18533
Licence: https://creativecommons.org/licenses/by/4.0/
Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.
Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.