Compute · GPU

Vultr + SSH setup

A Vultr instance gives you a GPU host you keep for the session. Studio can log in over SSH, install Docker and the NVIDIA container toolkit, pull the image and run the combined Studio + Compute container. No terminal required.

NVIDIA A16 · 16 GB ports 5117 + 8080 hourly billing

Referral link: it supports the project and does not change the price.

Billing does not stop when the instance does. Vultr bills a powered-off instance until it is destroyed. Snapshot it first only if the host has data you cannot recreate.

Before you start

  • A Vultr account with billing enabled.
  • SharpMind Studio running on this PC, with the server image pushed to Docker Hub (or use integral2u/sharpmind-server:gpu).
  • A GPU plan and a region near you. The tested plan is vcg-a16-6c-60g-16vram.
  • An SSH key, or the instance root password. Studio can create a key for you.

Create the instance

  1. Deploy a Cloud GPU instance. Pick Ubuntu 24.04 and a GPU image that already includes the NVIDIA driver. A plain Ubuntu image works too, but you must install the driver and reboot before GPU jobs can use the card.
  2. Add the SSH key at creation. This is the easiest moment to attach it. If you do not have one yet, open Studio first and use Edit → Create key; the public key is shown there.
  3. Open the ports. Allow 22 for setup, 8080 for the Compute API and 5117 for the remote Studio UI. Restrict them to your IP where possible. A firewall that only allows 22 will make the host card time out even while the container is healthy.
  4. Keep the data folder. The image uses /data/SharpMind on the instance. If you create a separate block volume, mount it there; otherwise the instance disk is fine for a one-day run.
No SSH key at creation? You can add one once from the Vultr web console. The console is the bootstrap step; everything after it can be done from Studio:
mkdir -p /root/.ssh
echo 'ssh-ed25519 AAAA...your-public-key... sharpmind-studio' \
  >> /root/.ssh/authorized_keys
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys

Add an SSH key to Studio

In Settings → Providers → Compute → Edit on the Vultr host:

  • Create key generates ~/.ssh/sharpmind_ed25519 (ed25519, no passphrase) and shows the public key.
  • Copy public key puts it on the clipboard for the Vultr console or the instance creation form.
  • Browse selects an existing OpenSSH/PEM private key instead.
  • A root password also works; it is stored encrypted with the host token.

The private key never leaves this PC. The host key is trusted on first use; this is a convenience for a fresh cloud box, not a substitute for pinning if you need it.

Add the host in Studio

  1. Add host → Vultr cloud server. Base URL http://<public-ip>:8080; Studio URL http://<public-ip>:5117.
  2. Token. Press Generate. The same value is written into the container as SHARPMIND_TOKEN, so Studio and the host match.
  3. Server image. Use the full registry name, for example integral2u/sharpmind-server:gpu or your-name/sharpmind-server:gpu. A local tag such as sharpmind-server:gpu cannot be pulled; setup now refuses it before trying.
  4. SSH fields. Host (blank uses the Base URL host), port 22, user root, key or password, container name sharpmind.
  5. Tick GPU host. This adds --gpus all and installs the NVIDIA container toolkit when it is missing.
  6. Save host.

Set up & deploy

On the host card press Test SSH first. You should see the OS, Docker version, GPU name and free disk. Then press Set up & deploy. The helper streams each stage:

[connect] Connected to root@203.0.113.10:22.
[probe]   Ubuntu 24.04 LTS · x86_64 · Docker 29.9.2 · NVIDIA A16 · 288G free
[pull]    Pulling integral2u/sharpmind-server:gpu…
[run]     Up 2 seconds | 0.0.0.0:5117->5117/tcp, 0.0.0.0:8080->8080/tcp
[ready]   Container sharpmind: Up 2 seconds | integral2u/sharpmind-server:gpu

Setup replaces an existing container with the same name, so it is safe to run again after changing the image or token. The data folder is preserved.

Verify

  • Press Test on the card: the dot turns on and the model list loads.
  • Open http://<public-ip>:8080/health in a browser; it is unauthenticated.
  • The health payload should list ilgpu with a backend such as CUDA · cuBLAS.
  • If the API answers but the Studio URL does not, port 5117 is still blocked.
{
  "status": "ok",
  "dataRoot": "/data/SharpMind",
  "accelerators": [{
    "name": "ilgpu",
    "inference": true,
    "backend": "CUDA · cuBLAS"
  }]
}

Upload and train

  1. Chat model. Upload a packaged .smm from the card, or leave the host without a model: a fine-tune uploads its base with the job.
  2. Fine-tune. Training → Improve → base .smm, corpus, SFT if the data is chat JSONL, Run on = Vultr. The export downloads back to this PC.
  3. Watch the engine line. GPU success looks like Engine: [Cuda] NVIDIA A16, 14962 MB, cuBLAS 12.6. If you see Retrying on the CPU, the base did not satisfy the GPU engine; see Training.
Validated on this setup: GPU inference on ilgpu, a 10-step LoRA fine-tune on an A16 with Engine: [Cuda], and the CPU fallback for a pretrain — all through the same container and token.

Cost and cleanup

  • The A16 plan is roughly $0.47/hour; a day is about $11.
  • Stopping is not enough. Destroy the instance to stop billing.
  • Download any exported model first. The host's /data/SharpMind is deleted with the instance unless it is a separate block volume.
  • A snapshot costs a small monthly storage fee and is only worth it for data you cannot recreate.
  • Rotate the host token if you shared it, and remove the instance's firewall rules with the instance.

Custom Linux host

Any Linux machine with Docker can be a compute host. The fields are the same as Vultr: Base URL, token, and optionally SSH. Use this for a workstation, a lab server, or another cloud.

  1. Install Docker (the SSH helper can do this) and make sure the service starts at boot.
  2. Open the ports 5117 and 8080, and SSH 22 if you want Studio to manage it.
  3. Add host → Custom remote server, enter the URL and token, and press Test.
  4. For GPU, install the NVIDIA driver and container toolkit; tick GPU host and let setup add --gpus all.

If the machine already runs the image, skip SSH entirely: Base URL, token, Test. The host only needs to be reachable from this PC.

Common problems

MessageMeaning / fix
pull access denied for sharpmind-server The image has no registry prefix. Enter user/repo:tag in Edit; setup now refuses local-only names before pulling.
Could not reach host:22 The instance is down, the IP changed, or the provider firewall blocks SSH.
SSH login failed Wrong user, wrong key, or the public key was never added to the host. The console step is the bootstrap.
No NVIDIA driver found nvidia-smi is missing. Use a GPU image or install the driver and reboot; the helper does not install drivers.
Port 8080 or 5117 is already used Another container owns the port. Remove it, or change the container name/ports.
API times out but SSH works Provider firewall. Allow TCP 8080 and 5117, not just 22.
401 after rotating a token Restart Studio so it reloads the encrypted token, then Test. The old token is invalid by design.