프로젝트, 연구/3DGS 구현

[3DGS 구현] 1. 환경 세팅

CSE 2026. 3. 4. 16:50

이전 글 중 3DGS라는 3D분야의 혁신적인 논문을 리뷰한 글이 있다.

2026.02.24 - [AI/컴퓨터비전(CV)] - [CV 논문] 3D Gaussian Splatting for Real-Time Radiance Field Rendering

 

[CV 논문] 3D Gaussian Splatting for Real-Time Radiance Field Rendering

아래 글에서 이 블로그에서 리뷰한 논문들의 흐름과 분야별 분류를 한 눈에 볼 수 있다.읽은 논문들 정리 3D 가우시안이라는 새로운 아이디어로 기존의 여러 문제들을 해결하고 실시간성을 확보

april2901.tistory.com

 

 

3DGS에 대한 이해를 돕기 위해 직접 3DGS 구현을 해보기로 하였다.

 

기본적으로 conda 가상환경을 사용하는 것을 전제로 글이 작성되었다.

miniconda에 대한 소개 및 설명은 아래 글을 참고하면 좋을 것 같다.

2026.03.03 - [AI] - miniconda를 사용한 가상환경 관리법

 

miniconda를 사용한 가상환경 관리법

블로그의 글 중 colab을 사용한 글이 있었는데, 시간이 좀 지나면 연결이 끊기고, 사용량 제한까지 있어 여러모로 불편했기 때문에 내가 가지고 있는 로컬 GPU를 사용해 걱정없이 학습을 진행해보

april2901.tistory.com

 


 

 

먼저 해당 링크에서 CUDA 툴킷 11.8 버전을 다운받는다.

 

CUDA Toolkit 11.8 Downloads

 

developer.nvidia.com

설치 중 사용자 정의 설치를 클릭해 진행한다.

대부분 그래픽 드라이버는 깔려있을 것이므로 아래처럼 display driver는 해제하고 설치한다.

 설치 후 아래 링크로 들어간다.

https://developer.nvidia.com/rdp/cudnn-archive

 

cuDNN Archive

Download releases from the GPU-accelerated primitive library for deep neural networks.

developer.nvidia.com

아래와 같은 창이 뜨는데 나는 위에서 두 번째의 8.9.7 버전을 다운받았다.

다운을 받은 zip파일을 압축해제한다.
이 파일안에는 lib , bin , include 세 개의 폴더가 있는데 각 폴더의 내용물(폴더 자체가 아님)을 아래 경로의 동일한 파일 하위에 붙여넣는다.

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8

 

그리고 터미널에서 아래 명령어를 통해 필요한 것들을 설치한다.

conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

 

모든 설정이 잘 되었는지, 즉 정말 gpu를 사용해서 계산을 잘 하는지 확인하기 위해 ai가 알려준 아래 코드를 통해 테스트해보자.

import torch
import time

# 1. 환경 확인
print(f"PyTorch 버전: {torch.__version__}")
print(f"CUDA 사용 가능 여부: {torch.cuda.is_available()}")
print(f"cuDNN 활성화 여부: {torch.backends.cudnn.is_available()}")
print(f"사용 중인 GPU: {torch.cuda.get_device_name(0)}\n")

if not torch.cuda.is_available():
    print("GPU를 찾을 수 없습니다. 환경 설정을 다시 확인해주세요.")
    exit()

# 2. 대규모 행렬 생성 (GPU 메모리 점유 유도)
# 약 10,000 x 10,000 크기의 float32 행렬은 약 400MB를 차지합니다.
size = 10000
print(f"[{size} x {size}] 크기의 행렬을 GPU 메모리에 생성 중...")
tensor_a = torch.randn(size, size, device='cuda')
tensor_b = torch.randn(size, size, device='cuda')

# 3. 반복 연산 수행 (GPU 사용량 상승 유도)
print("GPU 부하 테스트 시작 (약 10초간 진행)...")
print("지금 '작업 관리자'의 GPU 성능 탭을 확인하세요!")

start_time = time.time()
count = 0

# 10초 동안 무한 루프로 행렬 곱셈 수행
while time.time() - start_time < 10:
    # cuDNN이 주로 가속하는 행렬 연산
    result = torch.matmul(tensor_a, tensor_b)
    
    # 100번 연산마다 출력
    count += 1
    if count % 10 == 0:
        print(f"현재 {count}번째 연산 중...", end='\r')

print(f"\n\n테스트 종료! 총 {count}번의 대규모 행렬 곱셈을 완료했습니다.")
print(f"소요 시간: {time.time() - start_time:.2f}초")

 

이때 작업관리자 - 성능 창을 켜고 보면 gpu의 사용량을 실시간으로 볼 수 있다.

연산 중일 때 gpu사용량이 확 올라가는 것을 볼 수 있다.

실행 전 , 실행 중 , 실행 후

실행 후 터미널의 내용이다.

(3dgs) C:\Users\CVLAB>C:/Users/CVLAB/miniconda3/envs/3dgs/python.exe c:/Users/CVLAB/Desktop/3DGS/test.py
PyTorch 버전: 2.5.1
CUDA 사용 가능 여부: True
cuDNN 활성화 여부: True
사용 중인 GPU: NVIDIA GeForce RTX 2060

[10000 x 10000] 크기의 행렬을 GPU 메모리에 생성 중...
GPU 부하 테스트 시작 (약 10초간 진행)...
지금 '작업 관리자'의 GPU 성능 탭을 확인하세요!
현재 1040번째 연산 중...

테스트 종료! 총 1047번의 대규모 행렬 곱셈을 완료했습니다.
소요 시간: 10.34초

 

다음 글에서는 3DGS의 모든 내용을 from scratch로 구현하는 것을 시도해보자.