You can request a shared GPU device for an OpenStack instance by adding a GPU profile to your VMware Integrated OpenStack deployment and configuring a flavor extra spec to request the virtual GPU.


Verify that the appropriate driver for your GPU device is installed on the ESXi host.


  1. Using SSH, log in to the VMware Integrated OpenStack Management Server.
  2. Create the custom.yml file if it does not exist.
    sudo mkdir -p /opt/vmware/vio/custom
         sudo cp /var/lib/vio/ansible/custom/custom.yml.sample 
  3. Open the /opt/vmware/vio/custom/custom.yml file in a text editor.
  4. Specify the GPU profile and frame buffer size by editing the custom.yml file.
    1. Edit the nova_gpu_profile value to specify the GPU profile for all compute nodes, for example:
      nova_gpu_profile: grid_p100-4a
    2. Edit the nova_profile_fb_size_kb value to specify the GPU frame buffer size, for example:
      nova_profile_fb_size_kb: 4096
    3. Save the custom.yml file.
  5. Push the new configuration to your VMware Integrated OpenStack deployment.

    Refresh of the configuration briefly interrupts the OpenStack services.

    viocli deployment configure --tags nova_api_config
  6. Create a flavor extra spec that requests one virtual GPU.
    openstack flavor set vgpu_1 --property "vmware:vgpu=1"

    VMware Integrated OpenStack supports one GPU per VM.

  7. Create an OpenStack instance with the virtual GPU device.
    openstack server create --flavor vgpu_1 --image cirros-0.3.5-x86_64-uec --wait test-vgpu