Overview

You can create node pools where the nodes are equipped with NVIDIA Tesla®
P100 and K80 GPUs. GPUs are useful
for accelerating specific workloads in your clusters, such as machine learning
and image processing. To learn more about use cases for GPUs, refer to Google
Cloud Platform's GPUS page.

GPU-enabled nodes are available in Kubernetes Engine clusters running
Kubernetes version 1.9.0 or later.

Requirements

You must have GPU quota before you can create node pools with GPUs. To ensure
that you have enough GPUs available in your project, refer to
Quotas in Google Cloud Platform Console.

If GPUs are not listed on the quotas page, or if you require additional GPU
quota, you must request additional quota. If you have an established billing
account, your project should automatically receive quota after you submit the
quota request.

Note: By default, Free Trial accounts do not receive GPU quota.

During the beta period, you must manually install NVIDIA GPU device drivers on
your nodes. This page explains how to install the drivers.

Limitations

Support for NVIDIA GPUs on Kubernetes Engine has the following
limitations:

GPU nodes run the NVIDIA GPU device plugin system addon
and have the DevicePlugins Kubernetes alpha feature
enabled. Kubernetes Engine automatically manages this device plugin, but
Google does not provide support for any third-party device plugins.

Configuring Pods to consume GPUs

If you want to use multiple GPU accelerator types per cluster, you must create
multiple node pools, each with their own accelerator type.
Kubernetes Engine attaches a unique node selector to GPU nodes to help
place GPU workloads on nodes with specific GPU types:

Key:cloud.google.com/gke-accelerator

Value:nvidia-tesla-k80 or nvidia-tesla-p100

You can target particular GPU types by adding this node selector to your
workload's Pod specification. For example: