DigitalOcean Droplets for GPU-Accelerated AI Workloads.
PythonTo set up a DigitalOcean Droplet configured for GPU-accelerated AI workloads, you need to choose the right size and image for your Droplet. DigitalOcean does not have specialized GPU-based instances like some other cloud providers, but you can choose compute-optimized Droplets which provide high CPU resources that are suitable for certain types of AI workloads that don't specifically require a GPU.
Here's a step-by-step guide to creating a Droplet suitable for high-performance computing tasks:
-
Choose the Droplet Size: For AI tasks, it's ideal to select a compute-optimized Droplet size. These Droplet sizes offer a variety of CPU and memory combinations and are suitable for computationally intensive tasks. You can check the latest sizes directly on DigitalOcean's pricing page or API.
-
Select the Right Image: Commonly, you'll want an Ubuntu image because it's widely supported and has many AI and machine learning libraries available.
-
SSH Key: For secure access to your Droplet, you should add an SSH key. You'll need to generate one if you don't have it yet.
-
Create the Droplet: With the size, image, and SSH Key, you can now create the Droplet.
-
Customize It: After the Droplet is running, you can ssh into it and set up your AI environment, which might include installing CUDA and cuDNN if you're using NVIDIA GPUs through marketplace offerings or by manually setting them up.
The following Python Pulumi program automates the creation of a DigitalOcean Droplet:
import pulumi import pulumi_digitalocean as digitalocean # Replace these variables with your desired Droplet configurations droplet_name = "ai-gpu-droplet" droplet_region = "nyc3" # New York 3 region droplet_size = "s-4vcpu-8gb" # This is an example size that you need to replace with a CPU-optimized size droplet_image = "ubuntu-20-04-x64" # Example image, replace with your preferred image # Replace this with your own SSH Key fingerprint or public key content ssh_key_fingerprint = "b1:2d:32:11:00:c1:5f:2b:28:6d:fd:a8:35:1b:6f:c1" # Create an SSH key resource for the Droplet to use, if you haven't already added the key to your DigitalOcean account ssh_key = digitalocean.SshKey("my-ssh-key", public_key="ssh-rsa AAAAB3NzaC1y... / your public key data ...") # Create the Droplet droplet = digitalocean.Droplet(droplet_name, image=droplet_image, region=droplet_region, size=droplet_size, ssh_keys=[ssh_key.id] ) # Export the IP address of the Droplet pulumi.export('ip', droplet.ipv4_address)
Here's a breakdown of what this Pulumi program is doing:
-
Imports: The
pulumi
andpulumi_digitalocean
packages are imported to use DigitalOcean resources within the Pulumi program. -
SSH Key: The program creates an SSH Key resource (
digitalocean.SshKey
) using a public key string you provide. Replace this with your actual public SSH key. This is for secure access to the Droplet. -
Droplet Configuration: Before running this program, replace the placeholder values with actual configurations for your AI workload.
-
Creating the Droplet: A
digitalocean.Droplet
resource is created with the specified image, region, and size. -
Exporting IP Address: Finally, the external IP address of the Droplet is exported. This IP address can be used to access the Droplet via SSH.
Remember to configure your Pulumi with the necessary DigitalOcean access token before running this program by running
pulumi config set digitalocean:token YOUR_TOKEN_HERE
in your terminal. Also, ensure you have Pulumi installed and set up for use.-