OpenOx GPU usage guide
From your first instance to a working GPU task: connection commands, file transfers, billing and data retention.
Note
1. Create an instance
- Open GPU compute in the dashboard and use the customer support button to confirm trial access and capacity for your workload.
- Choose a GPU product and review its memory, region, image and hourly price. Top up the separate USD compute wallet with Stripe after confirming access with support.
- Set a maximum budget and request a quote. Both your available balance and budget must cover the initial two-hour reserve. Quotes are valid for five minutes; review the quoted rate and reserve before creating.
- Create once, then follow the status in My instances. Wait for Running before opening connection details. If the result is uncertain, refresh the existing instance and contact support before submitting another order.
2. Connect over SSH
Open the running instance's connection details and copy its SSH command and password. Run the command in your computer's terminal. In the examples below, replace SSH_HOST, SSH_PORT and SSH_USER with the host, port and username from that command; these are placeholders.
ssh -p SSH_PORT SSH_USER@SSH_HOSTTip
3. Run your first GPU task
After connecting, check the GPU and Python environment. The example uses Python 3 and a CUDA-enabled PyTorch installation.
nvidia-smi
python3 --version
python3 -c "import torch; print(torch.__version__); print(torch.version.cuda)"If importing torch fails or CUDA is unavailable, use a compatible environment in the selected image or install the version specified by your project using the official PyTorch instructions. The driver CUDA version is a compatibility ceiling, not proof that the matching Python packages are installed. Do not replace the system GPU driver.
mkdir -p ~/gpu-work
cd ~/gpu-work
python3 - <<'PY'
from pathlib import Path
import torch
assert torch.cuda.is_available(), "CUDA is unavailable"
x = torch.randn((1024, 1024), device="cuda")
y = x @ x
torch.cuda.synchronize()
result = f"GPU: {torch.cuda.get_device_name(0)}\nShape: {tuple(y.shape)}\nMean: {y.mean().item():.6f}\n"
Path("gpu-check.txt").write_text(result, encoding="utf-8")
print(result)
PYThe task should print the GPU name and a (1024, 1024) result shape, then save gpu-check.txt in ~/gpu-work. Replace this check with your project's command when ready. Completing a task or closing SSH does not stop the instance or its charges.
4. Upload and download files
Run SCP on your own computer using the same SSH connection details. SSH uses lowercase -p for the port; SCP uses uppercase -P. Create ~/gpu-work in the instance first. Replace ./project and results with your actual local folder and remote output folder.
scp -P SSH_PORT -r ./project SSH_USER@SSH_HOST:~/gpu-work/scp -P SSH_PORT SSH_USER@SSH_HOST:~/gpu-work/gpu-check.txt ./
scp -P SSH_PORT -r SSH_USER@SSH_HOST:~/gpu-work/results ./Note
5. Optional: Jupyter over SSH
Use this only if your environment has JupyterLab installed and SSH forwarding is available. Start Jupyter inside the instance, bound to 127.0.0.1. Then open a separate local terminal for the tunnel; a ready-to-use public notebook URL is not guaranteed.
cd ~/gpu-work
python3 -m jupyter lab --ip=127.0.0.1 --port=8888 --ServerApp.port_retries=0 --no-browserIf the image logs you in as root and Jupyter refuses to start, append --allow-root. Keep authentication enabled; do not bind the notebook to a public interface.
ssh -N -L 127.0.0.1:8888:127.0.0.1:8888 -p SSH_PORT SSH_USER@SSH_HOSTKeep both terminals open. In your local browser, open http://127.0.0.1:8888 and enter the token printed by Jupyter. If local port 8888 is occupied, change only the first 8888 in the tunnel command to 8889 and browse to that port. Stop Jupyter with Ctrl+C when done, then stop the instance from the dashboard.
6. Understand charges and budget
- GPU charges use a separate USD compute wallet. Model subscriptions, API credits and promotional model balances cannot pay for GPU usage. The product list is indicative; the valid quote records the hourly sale price.
- Creation initially reserves two hours of fees; this is a hold, not a two-hour minimum charge. While running, more funds may be reserved within the remaining budget. The system begins stopping before funds or budget run out. Save work regularly and do not rely on automatic stopping as your normal shutdown method.
- Charges may continue until the stop is confirmed. Displayed usage and settlement can lag behind runtime. After the final bill is reconciled, unused reserved funds return to your available compute balance. Closing the browser, ending a script or disconnecting SSH does not end billing.
- Increase the total budget beside your instance. Topping up only adds wallet funds; it does not increase the instance budget or start it.
- After paying, return to the compute page to check the order. Credit is confirmed only when shown as credited. Do not pay again while confirmation is pending.
7. Stop, restart or release
- Stop: save checkpoints and copy important outputs first, then stop from My instances. Wait until the instance shows Stopped; a submitted stop request alone does not confirm shutdown.
- Restart: the instance must be stopped and its previous bill fully settled, with no reserve pending. You also need enough available funds and remaining budget for the new hold. Capacity may be unavailable when restarting.
- Release: available after stopping and final settlement. Releasing permanently deletes the instance and its disk data. Download and verify everything you need before confirming.
Note
8. Troubleshooting
- No stock or expired quote: refresh products and request a new quote. Stock can change between quoting and creation; a displayed product does not guarantee immediate capacity.
- SSH times out or rejects the password: check that the instance is running, refresh its connection details, and verify the host, port and username. Password input does not display characters. If it still fails, record the error without exposing credentials.
- CUDA or memory errors: run nvidia-smi and check the PyTorch CUDA result. For out-of-memory errors, reduce batch size or model size and close unused processes. Use package versions compatible with the image and driver.
- Starting, stopping or settlement remains pending: refresh the existing instance. Do not repeatedly create replacements. Restart and release remain unavailable until the required state and final settlement are confirmed.
For help, use the customer support button on the GPU page. Include your OpenOx instance number, time, visible status and a redacted error message. Never send SSH passwords, API keys or private datasets. GPU lifecycle actions are currently performed in the dashboard; model API keys are not GPU login credentials.
Back to GPU compute