Specify a minimum CPU platform for VM instances

Linux Windows

This page explains how to create or update a virtual machine (VM) instance touse a minimum CPU platform instead of the default platform.

Google data centers offer different generations ofCPU processors. Each CPU platform supportsincremental features likeAdvanced Vector Extensions—forexample, AVX2 and AVX-512. Also, some fundamental systems-related featureslike clock speed and memory access seek time can vary among CPU platforms.

Each machine series is associated with one or more CPU platforms. Forexample, N2 VMs can run on either the Ice Lake or Cascade Lake CPUs. Ifthere are multiple CPU platforms available for a machine series, then youcan select a minimum CPU platform when creating a VM using a machine type fromthat machine series. The availability of the machine family, series, region,and zones determine what you can choose for the minimum CPU platform.

Specifying a minimum CPU platform is useful if your workload requires theperformance gains offered by the generation of a specific processor.However, specifying a minimum CPU platform might limit the zones where you cancreate your VMs.

Before you begin

Required roles and permissions

To get the permissions that you need to change the minimum CPU platform, ask your administrator to grant you the following IAM roles on the project:

  • Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1)
  • To connect to a VM that can run as a service account: Service Account User (v1) (roles/iam.serviceAccountUser role)

For more information about granting roles, seeManage access to projects, folders, and organizations.

You might also be able to get the required permissions throughcustom roles or otherpredefined roles.

When to select a minimum CPU platform

More than likely, you don't need to select a minimum CPU platform. EachCompute Engine zone has a default CPU platform for each machine series. Googleoccasionally changes a zone's default CPU when new servers are added. If youdon't specify a minimum CPU platform for a VM, then the VM gets the default CPUplatform associated with its machine type and zone.

Google recommends that you only select a minimum CPU platform in the followingcases:

  • When the minimum CPU platform offers significant performance gains for yourworkload, or if it provides capabilities such as AVX2 or AVX-512 that yourcode uses.
  • When creating VMs that consumereservations, you mustspecify the same CPU platform as the reservation.

Selecting aminimum CPU platform for your VM introduces constraints that affect your abilityto start VMs in zones where some CPU platforms are in limited supply.

How selecting a minimum CPU platform works

Compute Engine always uses the minimum CPU platform where available.If Googlechanges a CPU platform in a zone, your VM cancontinue to run on a more recent CPU platform that's available in that zone ifyou stop and restart the VM.

After you select a minimum CPU platform for a VM, your VM uses this CPU platformunless you stop the VM and change the CPU platform. During a live migration,your VM retains the selected CPU platform.

Limitations

  • Eachregion and zone supports multipleCPU platforms, but a region or zone might not offer all CPU platforms.
  • You cannot specify a minimum CPU platform for VMs that use sole-tenant nodes.
  • You cannot select a minimum CPU platform for predefined or custom E2 VMs.
  • You cannot select a minimum CPU platform for the followingshared-core, general-purpose VMs:
    • e2-micro
    • e2-small
    • e2-medium
    • f1-micro
    • g1-small

Availability of CPU platforms

The availability of CPU platforms varies across zones and is based on thehardware and machine series that is available in each zone. The following listshows the supported minimum CPU platforms and the valid syntax for each platform:

  • 5th Generation: Intel Xeon (Emerald Rapids) processors:"Intel Emerald Rapids"
  • 4th Generation: Intel Xeon (Sapphire Rapids) processors:"Intel Sapphire Rapids"
  • 3rd Generation: Intel Xeon (Ice Lake) processors:"Intel Ice Lake"
  • 2nd Generation: Intel Xeon (Cascade Lake) processors:"Intel Cascade Lake"
  • 1st Generation: Intel Xeon (Skylake) processors:"Intel Skylake"
  • Intel Xeon E5 v4 (Broadwell) processors:"Intel Broadwell"
  • Intel Xeon E5 v3 (Haswell) processors:"Intel Haswell"
  • Intel Xeon E5 v2 (Ivy Bridge) processors:"Intel Ivy Bridge"
  • Intel Xeon E5 (Sandy Bridge) processors:"Intel Sandy Bridge"
  • 5th Generation: AMD EPYC Turin processors:"AMD Turin"
  • 4th Generation: AMD EPYC Genoa processors:"AMD Genoa"
  • 3rd Generation: AMD EPYC Milan processors:"AMD Milan"
  • 2nd Generation: AMD EPYC Rome processors:"AMD Rome"

View available CPU platforms by zone

Only certain regions and zones contain multiple CPU platforms for the samemachine series and are available for minimum CPU platform selection. You canview a list of supported platforms for a specific zone by using thegcloud CLI or REST.

If you're using sole-tenant nodes, each node uses the CPU platform correspondingto thenode type that you defined inthe node template.

gcloud

  • To view the CPU platforms that are available in your zone, use thegcloud compute zones describe command:

    gcloud compute zones describeZONE

    ReplaceZONE with the name of the zone to check foravailable CPU platforms—for example,europe-west10-a.

    The following output from this command lists CPU platforms fortheeurope-west10-a zone:

    gcloud compute zones describe europe-west10-aavailableCpuPlatforms:- Intel Broadwell- Intel Cascade Lake- Intel Ice Lake- AMD Milan- AMD Rome- Intel Skylake...

REST

  • Make aGET requestto the zone that you're considering:

    GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/ZONE

    ReplaceZONE with the name of the zone to check foravailable CPU platforms.

    The following output from this command lists supported CPU platformsfor a zone:

    {  "kind": "compute#zone",  "id": "2210",  "creationTimestamp": "1969-12-31T09:30:55.189-07:00",  "name": "europe-west10-a",  "description": "europe-west10-a",  "status": "UP",  "region": "https://www.googleapis.com/compute/v1/projects/myproject/regions/europe-west10-a",  "selfLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/europe-west10-a",  "availableCpuPlatforms": [   "Intel Broadwell",   "Intel Cascade Lake",   "Intel Ice Lake",   "AMD Milan",   "AMD Rome",   "Intel Skylake"  ],  "supportsPzs": true }

Default changes to a CPU platform

Occasionally, Google changes a CPU platform or updates the default CPU platform.As a zone grows in capacity—Google proactively switches to a newer CPUplatform as the platform becomes available. It updates the default CPU platform tothe next newest one that's available in that zone.

When a default CPU platform for a zone changes, Google notifies affectedcustomers with a detailed timeline and specific instructions to transition tothe newer platform.

VMs never use a platform that's older than the minimum CPU platform that youspecify. If Compute Engine transitions your VM to a more recentplatform, the cost of the VM doesn't change.

Select a minimum CPU platform for a new VM

When you create a VM, you choose a machine series and machine type. The machineseries might be offered on more than one CPU platform. In this case, you canspecify the minimumCPU platform that you wantthe VM to use.

Console

  1. In the Google Cloud console, go to theCreate an instance page.

    Go to Create an instance

  2. In theMachine configuration section, expand theAdvanced configurations section.

  3. In theCPU Platform list, select a platform for the VM's CPU.

  4. Continue with the rest of the VM creation process.

gcloud

  • To create a new VM that uses a minimum CPU platform, use thegcloud compute instances create commandand provide the--min-cpu-platform flag:

    gcloud compute instances createINSTANCE \    --zone=ZONE \    --min-cpu-platform="PLATFORM"

    Replace the following:

    • INSTANCE: the name of the instancethat you want to create
    • ZONE: the name of the zone where youwant to create your instance—for example,europe-west1-b
    • PLATFORM: the friendly name of theminimum CPU platform that you want the instance touse—for example,Intel Sandy Bridge

      If you want to clear the minimum CPU platform specification, replacePLATFORM withAUTOMATIC.

      To check which CPU platforms are available in a zone, seeView available CPU platforms by zone.

REST

  • Use theinstances.insert methodand include theminCpuPlatform property as part of the request body.

    For example, a request body might look like this:

    "name": "INSTANCE","machineType": "zones/ZONE/machineTypes/MACHINE_TYPE","minCpuPlatform": "PLATFORM","networkInterfaces": [{  "accessConfigs": [{    "type": "ONE_TO_ONE_NAT",    "name": "External NAT"   }],  "network": "global/networks/default"}],"disks": [{   "autoDelete": "true",   "boot": "true",   "type": "PERSISTENT",   "initializeParams": {      "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"   } }]

    Replace the following:

    • INSTANCE: the name of the new VM
    • ZONE: the name of the zone where youwant to create your VM—for example,europe-west1-b
    • MACHINE_TYPE: the machine type of the new VM
    • PLATFORM: the friendly name of theminimum CPU platform that you want the VM touse—for example,Intel Ivy Bridge

      To clear the minimum CPU platform specification, replacePLATFORM withAUTOMATIC.

      To check which CPU platforms are available in a zone, seeView available CPU platforms by zone.

    • IMAGE_PROJECT: theimage projectof the image family

    • IMAGE_FAMILY: theimage familyof the image to use to create the VM

Set a minimum CPU platform for an existing VM

You can set a minimum CPU platform for an existing VM. You muststop the VM,before you set the minimum CPU platform.

Console

  1. Go to theVM instances page.

    Go to VM instances

  2. If prompted, select your project and clickContinue.

  3. Select the VM that you want to change.

  4. ClickStopto stop the VM. If there is noStop option, clickMore actions >Stop.

  5. ClickEdit.

  6. In theMachine configuration section, clickAdvanced configurations.

  7. From theCPU Platform drop-down menu, select an option.

  8. Save your changes.

  9. Select the VM that you changed.

  10. ClickStart/Resume.

gcloud

  1. To stop a VM, use thegcloud compute instances stop command:

    gcloud compute instances stopINSTANCE

    ReplaceINSTANCE with the name of the VMthat you want to specify a minimum CPU platform for.

  2. To specify a minimum CPU platform, use thegcloud compute instances update command,and provide the--min-cpu-platform flag:

    gcloud compute instances updateINSTANCE \    --min-cpu-platform="PLATFORM"

    ReplacePLATFORM with the friendly name of theminimum CPU platform that you want the VM touse—for example,Intel Cascade Lake.

  3. To start the updated VM, use thegcloud compute instances start command:

    gcloud compute instances startINSTANCE

REST

  1. To stop a VM, construct aPOST request using theinstances.stop method:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/stop

    Replace the following:

    • PROJECT_ID: the ID of the project
    • ZONE: the zone where your VM is located
    • INSTANCE: the name of the VM thatyou want to specify a minimum CPU platform for
  2. To set the minimum CPU platform, construct aPOST request to thesetMinCpuPlatform methodand set theminCpuPlatform property in the request body:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/setMinCpuPlatform{  "minCpuPlatform": "PLATFORM"}

    ReplacePLATFORM with the friendly name of theminimum CPU platform that you want the VM touse—for example,Intel Skylake.

  3. To restart the VM, construct aPOST request using theinstances.start method:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/start

Remove a minimum CPU platform setting

You can update a VM to use the default CPU platform instead of theminimum CPU platform. If the VM is running, you must stop it beforeyou make changes.

Console

  1. Go to theVM instances page.

    Go to VM instances

  2. If prompted, select your project and clickContinue.

  3. Select the VM that you want to change.

  4. ClickStop.

  5. To edit the VM, clickEdit.

  6. In theMachine configuration section, clickAdvanced configurations.

  7. Change theCPU Platform option toAutomatic.

  8. Select the VM that you changed.

  9. ClickStart/Resume.

gcloud

  1. To stop a VM, use thegcloud compute instances stop command:

    gcloud compute instances stopINSTANCE

    ReplaceINSTANCE with the name of the VMthat you want to change.

  2. To reset the minimum CPU platform, use thegcloud compute instances update commandand set the--min-cpu-platform flag toAUTOMATIC:

    gcloud compute instances updateINSTANCE \    --min-cpu-platform="AUTOMATIC"
  3. To start the updated VM, use thegcloud compute instances start command:

    gcloud compute instances startINSTANCE

REST

  1. To stop a VM, construct aPOST request using theinstances.stop method:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/stop

    Replace the following:

    • PROJECT_ID: the ID of the project
    • ZONE: the zone where your VM is located
    • INSTANCE: the name of the VM thatyou want to change
  2. To reset the minimum CPU platform, construct aPOST request tothesetMinCpuPlatformmethod. In the request body, set theminCpuPlatform property valuetoAUTOMATIC.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/setMinCpuPlatform{  "minCpuPlatform": "AUTOMATIC"}
  3. To restart the updated VM, construct aPOST request using theinstances.start method:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/start

Specify a minimum CPU platform in instance templates

If you usemanaged instance groups,you can specify a minimum CPU platform for VMs within a managed instance group.

To specify a minimum CPU platform,create aninstance templatethat includes theminCpuPlatform property.

Console

  1. Go to theInstance templates page.

    Go to Instance templates

  2. If prompted, select your project and clickContinue.

  3. ClickCreate instance template.

  4. In theMachine configuration section, clickAdvanced configurations.

  5. From theCPU Platform drop-down menu, select an option.

  6. Continue with the instance template creation process.

gcloud

  • When you create an instance template using thegcloud compute instance-templates create command, provide the--min-cpu-platform flag:

    gcloud compute instance-templates createTEMPLATE_NAME \    --min-cpu-platform="PLATFORM"

    Replace the following:

    • TEMPLATE_NAME: the name of the instance template
    • PLATFORM: the friendly name of theminimum CPU platform that you want the instance touse—for example,Intel Skylake

REST

  • Add theminCpuPlatform as part of your request to create anew instance template using theinstanceTemplates.insert method.

    For example, the following instance template contains the minimumrequired fields for creating a new template with the addition of theminCpuPlatform property:

    {"name": "example-template","properties": {  "machineType": "zones/us-central1-a/machineTypes/n2d-standard-2",  "minCpuPlatform": "AMD Milan",  "networkInterfaces": [    {      "network": "global/networks/default"    }  ],  "disks":  [    {      "type": "PERSISTENT",      "boot": true,      "mode": "READ_WRITE",      "initializeParams":      {        "sourceImage": "projects/debian-cloud/global/images/family/debian-11"      }    }  ]  }}

What's next

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-12-15 UTC.