Grendel: Uma Nova Abordagem para Splatting Gaussiano 3D
Grendel melhora a renderização de imagens 3D utilizando múltiplas GPUs para melhor qualidade e velocidade.
― 6 min ler
Índice
3D Gaussian Splatting (3DGS) é um método usado para criar imagens tridimensionais a partir de fotos bidimensionais. Essa abordagem ganhou popularidade porque produz visuais de alta qualidade rapidamente. No entanto, geralmente é limitada ao treinamento em uma única unidade de processamento gráfico (GPU). Essa restrição prejudica a capacidade de trabalhar com imagens maiores e cenas mais complexas, principalmente devido aos limites de memória de uma única GPU.
Para resolver esses problemas, apresentamos um sistema chamado Grendel, que foi criado para permitir que múltiplas GPUs trabalhem juntas. Ao fazer isso, podemos lidar com tarefas mais complexas na reconstrução 3D sem ser limitados pelas limitações de memória. Grendel ajuda a distribuir o trabalho uniformemente entre as GPUs e acelera o processamento de cenas em grande escala.
O Problema com Sistemas Atuais
Atualmente, ao usar 3DGS, o treinamento ocorre em uma GPU, o que significa que só podemos trabalhar com um certo número de componentes chamados Gaussianos. Cada Gaussiano representa uma pequena parte de uma cena e ajuda na renderização da imagem final. No entanto, uma única GPU só pode lidar com um número limitado de Gaussianos antes que sua memória se esgote. Esse limite restringe a qualidade e o tamanho das imagens que podemos criar.
Em particular, conjuntos de dados grandes como o conjunto de dados Rubble podem ser problemáticos. Esse conjunto de dados consiste em muitas imagens de alta resolução e requer significativamente mais Gaussianos do que uma única GPU pode gerenciar. Métodos atuais que tentam contornar essa limitação geralmente envolvem a compressão de dados ou a renderização seletiva de partes da cena. Infelizmente, esses métodos ainda enfrentam desafios significativos devido às restrições de memória e computação.
Apresentando Grendel
Grendel foi projetado para enfrentar essas limitações, dividindo o trabalho em partes menores e gerenciáveis. Ele distribui os Gaussianos entre múltiplas GPUs e permite que elas trabalhem juntas para renderizar a cena. Cada Gaussiano afeta apenas uma pequena área da imagem final, o que significa que podemos fazer uso de comunicação esparsa entre as GPUs para manter tudo funcionando suavemente.
Uma característica chave do Grendel é sua capacidade de suportar múltiplas vistas durante o treinamento. Ao contrário de sistemas anteriores que só treinavam usando um ângulo de câmera por vez, Grendel permite que múltiplos ângulos sejam processados em Lotes. Isso torna o processo de treinamento mais rápido e eficiente, já que cada GPU pode fazer uma parte do trabalho simultaneamente.
Como o Grendel Funciona
Grendel divide o trabalho em duas categorias principais: computação baseada em Gaussianos e computação baseada em pixels. A computação baseada em Gaussianos envolve trabalhar diretamente com os Gaussianos distribuídos entre as GPUs, enquanto a computação baseada em pixels analisa os pixels individuais nas imagens renderizadas.
Ao usar essa abordagem mista, Grendel minimiza a comunicação necessária entre as GPUs e otimiza o desempenho. O sistema também se adapta dinamicamente durante o treinamento, ajustando a carga de trabalho em cada GPU com base nas necessidades em andamento da tarefa. Isso evita que qualquer GPU fique sobrecarregada enquanto outras estão subutilizadas.
Treinamento em Lotes
Nos métodos de treinamento tradicionais, cada GPU processa uma imagem de cada vez. Isso leva a ineficiências, especialmente em sistemas distribuídos com múltiplas GPUs. No Grendel, o treinamento ocorre em lotes, permitindo que várias imagens sejam processadas ao mesmo tempo. Isso aumenta a velocidade e a eficiência geral do processo de treinamento.
No entanto, ao aumentar o tamanho do lote, é crucial ajustar as configurações que governam como o sistema aprende. O Grendel inclui um método automatizado para escalar hiperparâmetros ao usar lotes maiores. Isso garante que o processo de aprendizagem permaneça estável e eficaz, mesmo com mudanças no tamanho do lote.
Testes de Desempenho
Para avaliar o desempenho do Grendel, testes extensivos foram realizados utilizando grandes conjuntos de dados. Por exemplo, no conjunto de dados Rubble, o Grendel distribuiu mais de 40 milhões de Gaussianos entre 16 GPUs, alcançando uma melhor qualidade de imagem em comparação com métodos tradicionais que podem lidar apenas com uma fração disso em uma única GPU.
Com o Grendel, registramos melhorias significativas na qualidade da imagem e na velocidade de renderização. O sistema foi capaz de lidar com conjuntos de dados maiores que anteriormente não eram gerenciáveis, provando sua eficácia em aplicações do mundo real.
Benefícios do Grendel
A principal vantagem de usar o Grendel é sua capacidade de escalabilidade. À medida que mais GPUs são adicionadas, tanto o desempenho quanto a memória disponível aumentam. Isso permite que o sistema lide com um maior número de Gaussianos, o que, por sua vez, leva a imagens de melhor qualidade.
Além disso, o Grendel processa imagens mais rapidamente do que métodos tradicionais. Isso é essencial para aplicações que necessitam de resultados rápidos, como realidade virtual e jogos. A capacidade de trabalhar com lotes de imagens faz um uso eficiente do hardware disponível, garantindo que os recursos sejam bem utilizados.
Enfrentando Desafios
Ao longo do desenvolvimento do Grendel, vários desafios foram encontrados. Um problema significativo foi a necessidade de manter as cargas de trabalho equilibradas entre as GPUs. Como diferentes partes de uma cena podem requerer diferentes quantidades de poder de processamento, foi crucial desenvolver um método para ajustar a distribuição do trabalho dinamicamente.
O Grendel utiliza um sistema de monitoramento para registrar os tempos de renderização e ajustar as cargas de trabalho de acordo com as necessidades de cada GPU. Isso garante uma distribuição uniforme de tarefas e evita gargalos que poderiam desacelerar o processo de renderização.
Conclusão
O Grendel oferece uma atualização significativa no processo de renderização de imagens 3D usando Gaussian Splatting. Ao aproveitar múltiplas GPUs, supera os limites impostos por configurações de treinamento de dispositivo único. O sistema melhora a qualidade da renderização, aumenta a velocidade de processamento e permite o manuseio eficaz de conjuntos de dados maiores.
À medida que a tecnologia continua a evoluir, sistemas como o Grendel se tornarão cada vez mais importantes para campos que dependem da geração de imagens de alta qualidade. Com seu design escalável e uso eficiente de recursos, o Grendel está preparado para liderar os avanços em métodos de reconstrução 3D.
Ao tornar essa tecnologia de código aberto, esperamos incentivar mais experimentação e melhorias na comunidade, facilitando novas aplicações em computação visual e além.
Título: On Scaling Up 3D Gaussian Splatting Training
Resumo: 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
Autores: Hexu Zhao, Haoyang Weng, Daohan Lu, Ang Li, Jinyang Li, Aurojit Panda, Saining Xie
Última atualização: 2024-06-26 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2406.18533
Fonte PDF: https://arxiv.org/pdf/2406.18533
Licença: https://creativecommons.org/licenses/by/4.0/
Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.
Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.