LabsThis feature is in Labs. Contact your account team to enable this feature.
What’s included
GPU support in Labs includes:- NVIDIA GPUs in dedicated clusters on AWS: Astronomer adds GPU node pools to your dedicated cluster.
- Execution with the KPO: Any containerized GPU workload runs as a Kubernetes Pod that Astro schedules onto a GPU node.
- Whole GPUs: Tasks run on dedicated, whole GPU instances. Tasks don’t share GPUs or use fractions of a GPU.
- A choice of GPU instance types: You choose from the NVIDIA instance types available in your cluster’s AWS region, such as A100-class and H100-class instances. Astronomer confirms the instance types with you during onboarding.
Limitations
Labs is the earliest stage of the Astronomer feature lifecycle. GPU support in Labs has the following limitations:- Experimental behavior: Capabilities can change, and breaking changes can occur as Astronomer incorporates feedback.
- Limited support: Support is best effort through your Astronomer account team, with no uptime service level agreement and no guarantee of continued development.
- Astronomer-managed provisioning: Astronomer adds and changes the GPU node pools in your cluster. You can’t manage GPU node pools yourself.
- Long-running tasks: Routine cluster maintenance and upgrades can interrupt very long tasks, such as large training runs. Share your expected task runtimes with Astronomer during onboarding. A maximum task duration might apply.
- KPO only: GPU support doesn’t extend to tasks that run on Astro executor, Celery executor, or Kubernetes executor workers.
- Dedicated clusters on AWS only: GPU support isn’t available in standard clusters or in clusters on other cloud providers.
Billing
GPU support doesn’t add an Astronomer software charge during Labs. You pay for the GPU compute that your cluster uses, and Astronomer confirms the rates for your selected instance types during onboarding.Request access
To join the GPU support Labs program:- Contact your Astronomer account team to confirm your interest and describe your target use case.
- Work with Astronomer to choose GPU instance types, an AWS region, and your expected workloads. Astronomer then adds GPU node pools to your dedicated cluster.
- Run GPU workloads with the KPO and share feedback with your account team.
Run a GPU workload
After Astronomer adds GPU node pools to your cluster, request GPUs in a KPO task by setting thenvidia.com/gpu resource in the task’s container resources. Astro detects the GPU request and schedules the task’s Pod onto a GPU node, so you don’t need to configure tolerations for GPU nodes.
The following example runs nvidia-smi in an NVIDIA CUDA container to confirm that the task can access a GPU. The task logs show the GPU model, driver version, and CUDA version.
nvidia.com/gpu to the number of whole GPUs that the task needs. To also set CPU and memory for the task, add them to the same V1ResourceRequirements object. See Configure task-level Pod resources.
A task that requests GPUs fails in the following cases:
- Your cluster has no GPU node pools. The task fails with the error
Pod requests nvidia.com/gpu but the cluster has no GPU node pools. - The task requests more CPU, memory, or GPUs than your GPU node pools support. The error names the maximum for each resource that the task exceeds.