---
title: Provisioning
url: https://docs.vultr.com/products/compute/instances/cloud-gpu/provisioning
description: A guide explaining how to set up and deploy GPU-powered virtual machines on Vultr's cloud platform.
publish_date: 2024-09-23T20:20:04.513221Z
last_updated: 2026-05-26T18:47:00.023077Z
---

# How to Provision Vultr Cloud GPU Instances

Vultr Cloud GPU instances are virtual machines that run with dedicated NVIDIA GPUs designed for AI applications, machine learning, HPC, visual computing, and VDI. Cloud GPU instances include a dedicated GPU device capable of running multiple applications depending on your resource requirements.

Follow this guide to provision Vultr Cloud GPU instances using the Vultr Console, API, CLI, or Terraform.

=== "Vultr Console"

    1. Navigate to **Products** and select **Compute** on the list of product options.
    1. Click **Deploy** to access the **Deploy New Instance** page.
    1. Select **Cloud GPU**.
    1. Choose your desired Vultr location to deploy the instance.
    1. Select a GPU type from the sidebar based on your workload requirements.
    1. Select a plan from the available options based on your GPU, vCPU, memory, storage, and bandwidth requirements.
    1. Click **Configure Software**.
    1. Select a cloud image to install on your instance based on the following options:

        * **Marketplace Apps**: Install a prebuilt software stack or application and the recommended operating system image on the instance.
        * **Operating System**: Install a fresh operating system image on the instance. GPU enabled versions include pre-installed drivers.
        * **Upload ISO**: Install a specific ISO available in your Vultr account or upload a new ISO image from your workstation to install on the instance.
        * **ISO Library**: Install a specific ISO image from the Vultr ISOs library.
        * **Backup**: Recover a specific backup available in your Vultr account to the instance.
        * **Snapshot**: Install a specific snapshot available in your Vultr account to the instance.

    1. Select optional **Server Settings** to apply on the instance.

        * **SSH Keys**: Installs a specific SSH key on the instance.
        * **Startup Script**: Enables a startup script to execute at deployment or a PXE script to automate the operating system installation.
        * **Firewall Group**: Activates a Vultr Firewall group to filter incoming network traffic on the instance.

    1. Enter a new hostname in the **Server Hostname** field and a descriptive label in the **Server Label** field to identify the instance.

    1. Configure **Additional Features** for the instance.

        * **Instance Connectivity**: Select how the instance connects to the internet.
            - **Instance(s) with Public IP**: Assigns public IP addresses directly to the instance. Under **Instance Address**, **Public IPv4** is enabled by default. Select **Public IPv6** to enable IPv6 addressing. After selecting IPv6, you can optionally deselect **Public IPv4** to create an IPv6-only instance.
            - **Private Instance(s) behind NAT Gateway**: Routes internet traffic through a NAT Gateway in a Virtual Private Cloud (VPC) Network. Select an existing VPC Network with a NAT Gateway or click **Add VPC Network** to create a new one.
        * **VPC Network**: Connects the instance to a VPC Network in the current location.
        * **Automatic Backups**: Automatically creates backups for data recovery in case of instance failures.
        * **DDoS Protection**: Prevents potential Distributed Denial of Service (DDoS) attacks on the instance.
        * **Limited User Login**: Creates a `linuxuser` non-root user with sudo privileges as the default user account instead of `root`.
        * **Cloud-Init User Data**: Enables Cloud-Init user data to initialize and customize the instance at boot.

    1. Click **Deploy** to provision the instance.

=== "Vultr API"

    1. Send a `POST` request to the [**Create Instance** endpoint](https://www.vultr.com/api/#tag/instances/operation/create-instance) to create a new Vultr Cloud GPU instance. Replace `VULTR_LOCATION`, `INSTANCE_PLAN`, `OS_ID`, `INSTANCE_LABEL`, and `HOSTNAME` with your target values.

        ```console
        $ curl "https://api.vultr.com/v2/instances" \
          -X POST \
          -H "Authorization: Bearer ${VULTR_API_KEY}" \
          -H "Content-Type: application/json" \
          --data '{
            "region" : "VULTR_LOCATION",
            "plan" : "INSTANCE_PLAN",
            "os_id" : OS_ID,
            "label" : "INSTANCE_LABEL",
            "hostname": "HOSTNAME"
          }'
        ```

        Visit the [**Create Instance** API page](https://www.vultr.com/api/#tag/instances/operation/create-instance) to view additional attributes you can apply on the Vultr Cloud GPU instance.

=== "Vultr CLI"

    1. Create a new Vultr Cloud GPU instance. Replace `VULTR_LOCATION`, `INSTANCE_PLAN`, `OS_ID`, `INSTANCE_LABEL`, and `HOSTNAME` with your target values.

        ```console
        $ vultr-cli instance create --region VULTR_LOCATION --plan INSTANCE_PLAN --os OS_ID --label INSTANCE_LABEL --host HOSTNAME
        ```

        Run `vultr-cli instance create --help` to view additional options you can apply on the Vultr Cloud GPU instance.

=== "Terraform"

    1. Ensure the [Vultr Terraform provider](https://registry.terraform.io/providers/vultr/vultr/latest/docs) is configured in your Terraform project.

    1. Add the Cloud GPU instance resource to your Terraform configuration.

        ```terraform
        terraform {
            required_providers {
                vultr = {
                    source  = "vultr/vultr"
                    version = "~> 2.26"
                }
            }
        }

        provider "vultr" {}

        resource "vultr_instance" "gpu" {
            region      = "del"              # Target deployment region
            plan        = "vcg-a100-12c-120g-80vram" # Cloud GPU plan ID (A100/A40/A16)
            os_id       = 2284               # Ubuntu 24.04 LTS x64
            label       = "gpu-instance-1"
            hostname    = "gpu-instance-1"
            enable_ipv6 = true
        }

        output "public_ip" {
            value = vultr_instance.gpu.main_ip
        }
        ```

    1. Apply the configuration and observe the following output:

        ```
        Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
        ```