This tutorial shows how to create a virtual Windows workstation running Windows Server 2016 with an attached display-capable GPU. (To create a Linux workstation, see the tutorial for Creating a virtual GPU-accelerated Linux workstation.) Google Cloud Platform (GCP) offers three display-capable GPUs: NVIDIA T4, NVIDIA Tesla P4, and NVIDIA Tesla P100.
After you create the virtual workstation, you learn how to remotely access it using Teradici PC-over-IP (PCoIP), a remote desktop protocol widely used in the media and entertainment industry. PCoIP offers features essential to workloads media production such as color accuracy and support for lossless display.
A virtual workstation (VWS) is a cloud-based workstation that can be accessed from anywhere using an internet connection. The concept of remote computing dates back to the 1960s with so-called dumb terminals, but a virtual workstation built using modern cloud infrastructure is a powerful, economical alternative to an expensive workstation at your desk.
With virtual workstations, there is no capital expense. You can customize the size and power of the VWS to the exact specifications required for a particular task. You pay only for the resources used, when they're used, and you're billed by the second.
You don't pay for electricity to power the workstation or for the HVAC to keep it cool. You also don't have to pay a staff of IT professionals to build physical workstations, upgrade motherboards, add RAM, or replace outdated GPUs; all of this is managed on GCP.
- Create a Compute Engine instance with a GPU. This instance serves as the foundation for a virtual workstation.
- Install NVIDIA drivers on the virtual workstation.
- Install Teradici PCoIP Cloud Access Software on the virtual workstation.
- Connect to the virtual workstation using a PCoIP software client or Zero Client, a type of hardware endpoint.
This tutorial uses the following billable components of GCP:
You can use the pricing calculator to generate a cost estimate based on your projected usage. As of the time of this writing, the approximate cost for a typical media workstation configuration illustrated in this tutorial is US$3.25 per hour.
The resources that make up the virtual workstation and the factors that affect cost in this tutorial are:
- 24 vCPU, 32 GB RAM custom machine type.
- Windows licensing.
- 100 GB SSD persistent boot disk.
- NVIDIA Tesla P4 Virtual Workstation GPU.
- Internet egress.
Internet egress represents data that streams from your virtual workstation to your local display client and is billed at internet egress rates. Variables that affect data egress during a PCoIP session are bandwidth, screen resolution, number of display monitors, applications used, and the type of activity on each monitor. The cost in the example is based on an average usage of 10 Mbps. Teradici's Workflow Planning Guide can help you understand different workload requirements.
Before you begin
This tutorial uses
gsutil commands, which you can run from a
instance launched from the
If you want to use
gsutil on your local workstation, install the
The tutorial shows you how to run commands in Cloud Shell; if you
use the Cloud SDK on your workstation, adjust the instructions
Sign in to your Google Account.
If you don't already have one, sign up for a new account.
Select or create a GCP project.
Make sure that billing is enabled for your Google Cloud Platform project. Learn how to enable billing.
- Enable the Compute Engine API.
In addition, make sure you have the following:
- A GCP project with quota for
Virtual Workstation GPUs
in your selected
You can get a list of GPU availability using the
gcloud compute accelerator-types listcommand.
- A Google Chrome browser to access the GCP Console.
- The Chrome RDP for GCP Chrome extension for initial access to your VWS.
- A Teradici Zero Client or the latest Teradici software client for Windows, Mac, or Linux to access the virtual workstation.
- A CAS license of Teradici PCoIP. You can sign up for a trial license, or contact your Teradici representative. You will be provided with a 60-day trial registration code to use for this virtual workstation.
Understanding the architecture
The following diagram shows the components that are used in this tutorial to deploy a single virtual workstation. Optional components shown in the diagram include different ways to connect to your VWS, object and shared storage, and an additional instance for serving third-party licenses.
Choosing an accelerator
An important factor when you deploy a virtual workstation is the latency between your location and the instance you create. The lower the latency, the better the experience. Therefore, you want to work in a zone that's geographically closest to you. To learn more about regions and zones, see the Cloud Locations documentation.
Open Cloud Shell. (If you're using the Cloud SDK, open a terminal window on your computer.)
Get a list of the zones in which GPUs are available:
gcloud compute accelerator-types list
Take note of the zone that's physically closest to you.
Set the zone that you want to work with. For
[ZONE], substitute the name of the zone you're using, such as
gcloud config set compute/zone [ZONE]
This is the zone that's used to create your VWS later in this guide.
Choosing a machine type
You can attach P4 GPUs to any machine type, but each GPU that's added to a virtual workstation must be coupled with a minimum number of vCPUs. This prevents oversubscription of any one resource. For the NVIDIA Tesla P4, you can attach up to 24 vCPUs to one GPU. To add more than 24 vCPUs to your virtual workstation, you must add an additional P4 GPU for every additional 24 vCPUs. For example, a 48 vCPU virtual workstation requires you to attach two P4 GPUs.
The example in this tutorial consists of a 24 vCPU virtual workstation, which is the maximum number of vCPUs allowed per NVIDIA Tesla P4 GPU.
Creating the virtual workstation
The Teradici Graphics Agent (which you install on your virtual workstation later in this tutorial) requires you to enable IP forwarding and to allow HTTPS server traffic during virtual workstation creation.
In Cloud Shell, create the Compute Engine virtual workstation instance. You must provide values for the placeholders in brackets, such as
gcloud compute instances create [NAME] \ --machine-type [MACHINE-TYPE] \ --accelerator type=[ACCELERATOR],count=[NUM-GPUS] \ --can-ip-forward \ --maintenance-policy "TERMINATE" \ --tags "https-server" \ --image-project windows-cloud \ --image-family windows-2016 \ --boot-disk-size [SIZE]
gcloud compute instances create test-vws \ --machine-type custom-24-32768 \ --accelerator type=nvidia-tesla-p4-vws,count=1 \ --can-ip-forward \ --maintenance-policy "TERMINATE" \ --tags "https-server" \ --image-project windows-cloud \ --image-family windows-2016 \ --boot-disk-size 100
After the virtual workstation is created, the machine status is displayed. It looks similar to the following:
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS test-vws us-west2-b custom (24 vCPU, 32.00 GiB) 10.168.0.3 XX.XXX.XX.XXX RUNNING
The virtual workstation is created in your project's default VPC Service Controls network. If you want to create your virtual workstation in a different VPC Service Controls network, add the following flag to the command, where
[NETWORK]is the name of the network to use:
Make a note of the virtual workstation's external IP address in the listing. You will use it later in the tutorial.
You can retrieve the external IP address of your virtual workstation at any time from the GCP Console.
Creating a Windows password
You use Remote Desktop Protocol (RDP) to access the Windows virtual workstation in order to install NVIDIA graphics drivers. To sign in with RDP, you need to create a Windows password for your user.
Go to the Compute Engine section of the GCP Console:
Under the Connect column of your virtual workstation instance, select Set Windows password in the drop-down list:
You are prompted to verify your username, and you see a warning about loss of access to encrypted data by resetting your password. You can ignore this warning, because this is a new disk and because there is no user data on your virtual workstation.
When your Windows password is displayed, copy the password and then click Close.
Make a note of this password, because you'll use it in the next step to sign in to your virtual workstation using the RDP client. Keep this password in a secure location.
Signing in to your virtual workstation
After you create the virtual workstation, sign in to the machine so that you can configure it.
In the Compute Engine section of the GCP Console, click the RDP button next to your virtual workstation instance.
If you haven't installed the Chrome RDP for GCP extension, you're prompted to do so. Install the extension and click the RDP button again.
When you're prompted to enter your credentials, leave the Domain field blank and enter the password you generated earlier:
If you see the following certificate warning, ignore it and click Continue:
The virtual workstation desktop appears. Wait for Windows Server Manager to finish launching before you continue to the next step. When Server Manager is ready, you see a display like the following:
Configuring IE Enhanced Security
The default Windows Server 2016 image has default security settings that prevent you from downloading files from the internet. To download the NVIDIA driver, you need to disable these security features.
- In the left-hand side of Server Manager, click Local Server.
- Next to IE Enhanced Security Configuration, click On.
In the dialog, turn off Enhanced Security for both Administrators and Users:
Close both the IE Enhanced Security Configuration and Server Manager windows.
Installing the NVIDIA driver
NVIDIA T4, NVIDIA Tesla P4, and NVIDIA Tesla P100 GPUs work on GCP only with qualified NVIDIA Quadro Virtual Data Center Workstation (vWS) drivers for both compute and display workloads. You can download these drivers from a public storage bucket.
On the Windows desktop of your Virtual Workstation, open the Google Cloud SDK Shell by double-clicking its icon.
Get a listing of the latest drivers:
gsutil ls gs://nvidia-drivers-us-public/GRID
For this tutorial, you use the latest graphics drivers that are available at the time of writing:
GRID8.0 Windows driver (425.31_grid_win10_server2016_64bit_international.exe)
You can always find the latest qualified driver under the
GRIDdirectory that has the highest version number; if you find a newer driver, use that one.
In the Google Cloud SDK Shell, download and install the driver. If you're using a version of the driver that's more recent than 425.31, change the command accordingly.
gsutil -m cp gs://nvidia-drivers-us-public/GRID/GRID8.0/425.31_grid_win10_server2016_64bit_international.exe %USERPROFILE%/Downloads
Open Windows File Explorer and go to the
Downloadsdirectory for your user.
In the directory, right-click the NVIDIA driver in the directory and then select Run as administrator.
Follow the prompts to install the driver in the default location:
- If you accept the terms of the NVIDIA license, click Agree and Continue.
- Select Express (Recommended) as the installation type.
- When the installation is finished, close the NVIDIA installer.
Verify that the driver is working. In the Google Cloud SDK Shell, run this command (including the double quotation marks):
"C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe"
You see results like the following:
+-----------------------------------------------------------------------------+ | NVIDIA-SMI 425.31 Driver Version: 425.31 CUDA Version: 10.1 | |-------------------------------+----------------------+----------------------+ | GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Tesla P4 WDDM | 00000000:00:04.0 Off | 0 | | N/A 31C P8 8W / 75W | 236MiB / 7680MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | 0 176 C+G Insufficient Permissions N/A | | 0 2640 C+G Insufficient Permissions N/A | | 0 3876 C+G Insufficient Permissions N/A | +-----------------------------------------------------------------------------+
If you don't see output like what's in this listing, refer to the Troubleshooting section later in this tutorial.
Installing the Teradici Cloud Access Software
Teradici Cloud Access Software (CAS) provides a graphics agent that runs on your virtual workstation, delivering the desktop to your hardware or software client.
- On the Windows instance, open Internet Explorer and go to the PCoIP Hosts section on the Teradici support page.
- Download the Graphics Agent for Windows software.
- Complete the agent installation process and choose the option to run the downloaded graphics agent executable. Follow the prompts to install the graphics agent in the default location.
Registering your Teradici agent
When the installation process is complete, you're prompted for a registration code.
Enter the registration code you got earlier:
After you've entered the registration code, reboot the Windows instance.
Creating a firewall rule
The PCoIP client communicates with your virtual workstation using several ports. You must set firewall rules that allow traffic to and from your virtual workstation.
In Cloud Shell on your local computer (not on the virtual workstation), create a firewall rule that opens the required ports:
gcloud compute firewall-rules create allow-teradici \ --allow tcp:443,tcp:4172,udp:4172,tcp:60443
Signing in to your virtual workstation using PCoIP
On your local computer, go to the PCoIP Clients section on the Teradici support page, and then download, install, and launch the PCoIP Client application for your operating system.
Select New Connection.
In the Host Address field, enter the external IP address of your virtual workstation. If you want, you can enter a name for the connection.
When you are connected, authenticate by entering the username and password that you created earlier for the virtual workstation:
Select the desktop to run and then click Connect:
In a few seconds, you see your Windows desktop:
Testing your virtual workstation
After you've deployed your virtual workstation, you can test performance and interactivity using a number of tools:
- Use one of the NVIDIA GPU demos to test graphics performance on a Windows workstation.
- Install Blender, an open source 3D software package.
- Run render benchmarking tools for popular renderers such as V-Ray, Octane, or Maxon.
- Install Google Chrome to browse your favorite sites or play YouTube videos.
This section lists issues you might encounter when you set up or connect to the workstation.
Audio does not work
Issue: You do not hear any sound from your Windows VWS.
Solution: Because of how the Teradici Agent works, you might need to manually enable the Windows Audio Service on your instance.
Sign in to the Windows instance, and then click Start > Control Panel > Hardware > Sound to open the Sound Control Panel.
Click Yes. Windows verifies that the audio driver is working:
If sound is working, you hear sound from your Windows VWS.
NVIDIA-SMI has failed
Issue: NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver.
Solution: Reinstall the driver and try running
Unable to connect to the virtual workstation
Issue: You are using a PCoIP Zero Client, and you're unable to connect to your virtual workstation.
Solution: Ensure that your Zero Client has firmware version 6.1 or later installed before you connect to the virtual workstation. For more information, contact your Teradici representative.
To avoid incurring charges to your Google Cloud Platform account for the resources used in this tutorial:
After you've finished the tutorial, clean up the resources you created on GCP so you won't be billed for them in the future.
Stopping your virtual workstation
Stopped virtual workstations incur costs for persistent disk usage, but they can be restarted at any time. To stop your virtual workstation, run the following command in Cloud Shell:
gcloud compute instances stop test-vws
Delete the project
- In the GCP Console, go to the Manage resources page.
- In the project list, select the project you want to delete and click Delete delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Delete all the components
- Learn how to create a virtual GPU-accelerated Linux workstation.
- Learn more about NVIDIA GRID GPUs for graphics workloads.
- Learn more about NVIDIA Quadro Virtual Data Center Workstation software.
- Learn more about Teradici Cloud Access Software.
- Learn more about how Teradici PCoIP differs from other remote desktop protocol.
- Try out Teradici's preconfigured virtual workstations for Windows and Linux in the Google GCP Marketplace.
- Try out other GCP features for yourself. Have a look at our tutorials.