# Gaussian splatting GPU cloud: train 3DGS without a local card

URL: https://cloudj.net/blog/gaussian-splatting-gpu-cloud
Published: 2026-11-12 · Updated: 2026-11-12

> Run a Gaussian splatting GPU cloud workflow: size VRAM for 3DGS, upload photos efficiently, pick a region by upload size, train headless and export the splat.

3D Gaussian splatting turns a set of photos or a video into a photorealistic 3D scene you can orbit in real time. Training one needs a capable NVIDIA GPU with plenty of VRAM, which is exactly what many photographers, architects, game artists and students do not have on their desk. A Gaussian splatting GPU cloud workflow solves that: rent a card for the hours you need, train headless over SSH, and bring the finished scene home. This article covers VRAM sizing, getting your photos onto the machine, choosing a region by upload size rather than habit, and exporting results.

## What the pipeline looks like

A typical 3DGS (or NeRF) project has four stages:

1. **Capture:** a few dozen to a few hundred overlapping photos, or frames extracted from a video.
2. **Camera poses:** structure-from-motion (commonly COLMAP) estimates where each photo was taken.
3. **Training:** the splatting optimiser fits millions of Gaussians to the images on the GPU.
4. **Export and view:** you get a `.ply` (or similar) file that a viewer, game engine or web player can display.

Stages 2 and 3 are the heavy ones. All of it runs headless; there is no graphical desktop on Cloudj GPU instances, so you train on the server and view on your own computer.

## How much VRAM you need

VRAM decides how many images, at what resolution, you can train on before running out of memory. As general guidance:

| Card | VRAM | Typical fit |
|---|---|---|
| [RTX 3090](https://cloudj.net/gpu-cloud/rtx-3090) | 24 GB | Most room-scale and object scenes at moderate resolution |
| [RTX 4090](https://cloudj.net/gpu-cloud/rtx-4090) | 24 GB | Same memory, noticeably faster training |
| [RTX A6000](https://cloudj.net/gpu-cloud/rtx-a6000) | 48 GB | Large outdoor scenes, many high-resolution images, fewer compromises; needs a higher account level |

Reference implementations of 3DGS commonly recommend around 24 GB for full-quality training on standard datasets. With less memory you can downscale images or reduce densification, at some cost in detail. If you hit out-of-memory errors on 24 GB, downscaling the input by half is the quickest fix; moving to a 48 GB card is the cleaner one.

## Choosing a region by upload size

For training, nobody is waiting on each frame, so GPU location does not affect speed. What it affects is how long your photo set takes to upload and how long results take to come back. A simple rule:

- **Small sets** (a few hundred MB): location hardly matters. Remove the country filter and pick on price, reliability and max duration.
- **Large sets** (many GB of high-resolution RAW or video): prefer a host closer to you, and one with a high listed download speed. The path from your connection matters more than the host's own bandwidth.
- **Data rules** (client property, restricted sites): filter to the countries you are allowed to use.

GPU location on Cloudj is a country filter over a live list of host machines. Open the [RTX 4090 deploy page](https://app.cloudj.net/deploy/gpu?model=rtx-4090), optionally type country codes into the **Country** field, and read the results. If a machine is listed, you can deploy it; stock changes during the day. If the US is close to you, the [RTX 4090 in the USA](https://cloudj.net/blog/rtx-4090-usa) article covers that search. Live "from" prices are on [GPU cloud](https://cloudj.net/gpu-cloud).

## Sizing the disk

Disk size is chosen at deploy and cannot be changed later. Add up: the photo set (or video plus extracted frames), COLMAP's database and undistorted images, several training checkpoints and the exported scenes, plus the software environment. Image sets are often duplicated during preprocessing, so allow at least two to three times the raw input size. The [GPU disk size guide](https://cloudj.net/blog/choose-gpu-disk-size) has a worksheet.

## Uploading the photo set

Many small files upload slowly. Pack them first and use a resumable transfer:

```bash
tar -cf capture.tar capture/
rsync -avP -e "ssh -p <port>" capture.tar root@<host>:/workspace/
```

If your source is a video, upload the video rather than extracted frames and extract on the server with ffmpeg. That is usually far smaller. The [moving models and data between GPU regions](https://cloudj.net/blog/move-models-data-between-gpu-regions) guide covers compression, checksums and resuming failed transfers.

## Training headless

Deploy with the Ubuntu + CUDA template and an SSH key, then connect with the host and port from the **Connection** tab. Install your chosen toolkit (the original 3DGS reference code, or a library such as gsplat or nerfstudio) following its instructions. Cloudj does not preinstall these.

A typical session:

```bash
ssh -p <port> root@<host>
nvidia-smi
cd /workspace && tar -xf capture.tar
tmux new -s splat
```

Inside `tmux`, run pose estimation, then training. Keep it in `tmux` so a dropped SSH connection does not kill a long run. Watch GPU memory with `nvidia-smi` in a second pane during the first minutes; if it is near the limit, restart with downscaled images before wasting an hour.

Some toolkits include a web viewer that streams training progress. If you use one, bind it to localhost and forward the port over SSH instead of exposing it:

```bash
ssh -p <port> -L 7007:localhost:7007 root@<host>
```

## Exporting and finishing

Copy results home as soon as training finishes:

```bash
rsync -avP -e "ssh -p <port>" root@<host>:/workspace/output/ ./splat-output/
```

Then view the `.ply` in a desktop or web viewer, or import it into a game engine or Blender add-on. If you also plan to render animations of the scene, the [Blender rendering on a cloud GPU](https://cloudj.net/blog/blender-rendering-gpu-europe) article shows a headless render workflow.

Each machine is an independent host with an "available until" date, so do not leave your only copy on it. When you are done, destroy the instance; stopping keeps charging for storage and releases the GPU.

## FAQ

### Can I watch training live in a graphical app on the server?

No desktop is available. Use a toolkit's web viewer through an SSH tunnel, or view exported checkpoints locally.

### Is 24 GB enough for Gaussian splatting?

For most object and room-scale scenes at moderate resolution, yes. Large high-resolution outdoor scenes may need downscaling or a 48 GB card.

### Does the GPU's country affect training quality or speed?

No. It affects upload and download time and which data rules you meet.

### Should I upload frames or the video?

Upload the video and extract frames on the server. It is usually much smaller to send.

## Train your first scene

Open the [RTX 4090 deploy page](https://app.cloudj.net/deploy/gpu?model=rtx-4090), choose a host that suits your upload size and see what is listed now. Compare live prices on [GPU cloud](https://cloudj.net/gpu-cloud).
