创建 GPU 加速的 Windows 虚拟工作站


本教程介绍如何创建一个运行 Windows Server 2019 并挂接一个具备显示能力的 GPU 的虚拟 Windows 工作站。Google Cloud 提供四种具备显示能力的 GPU:NVIDIA L4、NVIDIA T4、NVIDIA P4 和 NVIDIA P100。

要创建 Linux 工作站,请参阅创建 GPU 加速的虚拟 Linux 工作站教程。

创建虚拟工作站后,您将学习如何使用 HP Anywhere(以前称为 Teradici CAS)和 PC-over-IP (PCoIP®) 技术远程访问该工作站。PCoIP 是广泛应用于媒体娱乐、游戏开发、架构和工程行业的远程桌面协议。PCoIP 提供了对这些类型的工作负载至关重要的功能,例如色彩精确度、对多个显示器的支持、无损显示以及平板电脑压力灵敏度。

本教程假定您熟悉 Microsoft Windows 和 PowerShell 命令行。

目标

  • 创建带有 GPU 的 Compute Engine 实例。此实例是虚拟工作站的基础。
  • 在虚拟工作站上安装 NVIDIA 驱动程序。
  • 在虚拟工作站上安装 HP Anyware 软件。
  • 使用 PCoIP 软件客户端连接到虚拟工作站。

费用

本教程使用 Google Cloud 的以下收费组件:

您可以使用价格计算器根据您的预计使用情况来估算费用。截至 2023 年 10 月,本教程中显示的工作站配置的费用大约为每小时 US$1.08。

虚拟工作站的构成资源以及影响本教程中所述费用的因素包括:

互联网数据传输表示从虚拟工作站流向本地显示客户端的数据,按互联网出站数据传输费用计费。影响 PCoIP 会话期间数据传输的变量包括带宽、屏幕分辨率、显示器数量、使用的应用以及每个显示器上的活动类型。如需了解不同的工作负载要求,请参阅 HP Anyware 会话规划指南

准备工作

Google Cloud 控制台启动的 Cloud Shell 实例运行它。如果您要在本地工作站上使用 gcloud CLI,请安装 Google Cloud CLI。本教程将向您介绍如何在 Cloud Shell 中运行命令;如果您在工作站上使用 gcloud CLI,请相应地调整指令。

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Compute Engine API.

    Enable the API

此外,请确保满足以下条件:

  • 一个 Google Cloud 项目,该项目在您所选可用区中拥有 NVIDIA L4 虚拟工作站 GPU 配额。您可以使用 gcloud compute accelerator-types list 命令得到 GPU 可用性的列表。
  • Google Chrome 浏览器(用于访问 Google Cloud 控制台)。
  • 用于初始连接到 Windows 实例的 RDP 客户端。
  • Windows、Mac 或 Linux 版最新 PCoIP 客户端软件(用于访问虚拟工作站)。
  • help.teradici.com 上的账号(用于下载 HP Anyware 软件)。注册账号是免费的。
  • HP Anyware 软件许可。您可以申请试用许可,或联系您的 Teradici 代表索取此虚拟工作站的试用注册代码。

架构

下图显示了本教程中用于部署单个虚拟工作站的组件。图中显示的可选组件包括用于连接到虚拟工作站、对象和共享存储空间的几种不同方式,用于提供第三方许可的另外一个实例,以及代表渲染或计算场的其他基础架构。

虚拟工作站架构。

选择一个区域。

部署虚拟工作站时需要���虑的一项重要因素是您的位置与您创建的实例之间的延迟时间。延迟时间越短,体验越好。因此,您最好选择与您的地理位置最近的可用区。如需详细了解不同 GPU 的可用位置,请参阅 GPU 区域和可用区可用性

  1. 打开 Cloud Shell。(如果您使用的是 gcloud CLI,请在您的计算机上打开终端窗口。)

    转到 Cloud Shell

  2. 获取可使用 GPU 的可用区的列表:

    gcloud compute accelerator-types list

    记下距您的地理位置最近的区域和可用区。

  3. 设置您要使用的可用区:

    gcloud config set compute/zone ZONE

    ZONE 替换为您所使用的可用区的名称,例如 us-west1-b

选择机器类型

NVIDIA L4 GPU 会挂接到 G2 机器类型。如果虚拟机挂接了一个或多个 GPU,那么您添加到实例的每个 GPU 都可以配备最多数量的 vCPU。例如,每个 NVIDIA L4 GPU 可让您为实例机器类型配备最多 32 个 vCPU 和高达 128 GB 的内存。要查看不同 GPU 配置的可用 vCPU 和内存范围,请参阅 GPU 列表

在本教程的示例中,G2 虚拟工作站拥有 8 个 vCPU,远远低于单个 L4 GPU 可以有 32 个 vCPU 的限制。

创建虚拟工作站

  1. 在 Cloud Shell 中,创建 Compute Engine 虚拟工作站实例:

    gcloud compute instances create NAME \
        --zone=ZONE \
        --machine-type=MACHINE_TYPE \
        --accelerator=type=ACCELERATOR,count=NUM-GPUS \
        --maintenance-policy="TERMINATE" \
        --image-project=windows-cloud \
        --image-family=windows-2022 \
        --boot-disk-size=SIZE \
        --boot-disk-type=TYPE \
        --network=NETWORK
    

    替换以下内容:

    • NAME 是工作站的名称。
    • ZONE 是要在其中创建虚拟机的可用区。
    • MACHINE_TYPE 是预定义或自定义机器配置。
    • ACCELERATOR 是您要挂接的 GPU 的类型,例如 nvidia-tesla-t4-vws
    • NUM-GPUS 是要挂接到虚拟机的 GPU 数量。
    • SIZE 是启动磁盘的大小(以 GB 为单位)。
    • TYPE 是启动磁盘的类型。如需获取可用磁盘类型的列表,请运行 gcloud compute disk-types list
    • NETWORK 是要在其中创建虚拟机的网络。

    例如:

    gcloud compute instances create test-workstation \
        --zone=us-west1-b \
        --machine-type=g2-standard-8 \
        --accelerator=type=nvidia-l4-vws,count=1 \
        --maintenance-policy="TERMINATE" \
        --image-project=windows-cloud \
        --image-family=windows-2022 \
        --boot-disk-size=100 \
        --boot-disk-type=pd-ssd \
        --network=default
    

    创建虚拟工作站后,系统将显示机器状态。输出类似于以下内容:

    NAME: test-workstation
    ZONE: us-west1-b
    MACHINE_TYPE: g2-standard-8
    PREEMPTIBLE:
    INTERNAL_IP: 10.138.XX.XXX
    EXTERNAL_IP: XX.XXX.XXX.XXX
    STATUS: RUNNING
    

    记下虚拟工作站的外部 IP 地址。在本教程的后面部分,您将用到该地址。

    您随时可以使用 Google Cloud 控制台来检索虚拟工作站的外部 IP 地址。

创建 Windows 密码

使用 RDP 访问 Windows 虚拟工作站以安装 NVIDIA 图形驱动程序。如需使用 RDP 登录,您需要为用户创建 Windows 密码。

  1. 在 Cloud Shell 中,运行以下命令:

    gcloud compute reset-windows-password VM_NAME

    VM_NAME 替换为要更改其密码的虚拟机的名称。

  2. 查看确认提示中的信息:

    This command creates an account and sets an initial password for the
    user [username] if the account does not already exist.
    If the account already exists, resetting the password can cause the
    LOSS OF ENCRYPTED DATA secured with the current password, including
    files and stored passwords.
    
    For more information, see:
    https://cloud.google.com/compute/docs/operating-systems/windows#reset
    
    Would you like to set or reset the password for [username] (Y/n)?
    
  3. 确认上一个提示后,请查看新凭据的确认信息,如下所示:

    Resetting and retrieving password for [username] on [instance-name]
    Updated [https://www.googleapis.com/compute/v1/projects/project-name/zones/zone/instances/instance-name].
    ip_address: ip-address
    password:   password
    username:   username
    
  4. 您现在可以使用新凭据连接到虚拟机实例

登录虚拟工作站

创建虚拟工作站后,请登录机器来配置该工作站。

  1. 在本地工作站上,使用原生 RDP 客户端通过虚拟工作站的外部 IP 地址连接到该虚拟工作站。
  2. ��系统提示您输入凭据时,请输入您之前生成的用户名和密码。
  3. 如果您看到证书警告,请忽略并点击继续

此时将显示虚拟工作站桌面。启动 Windows Server Manager 后将其关闭。

安装 Google Chrome

下一步是在虚拟机实例上安装 Chrome。

  1. 在 RDP 会话中,点击 Windows 任务栏上的开始按钮,输入 Windows PowerShell
  2. 右键点击 Windows PowerShell 并选择以管理员身份运行
  3. 在 PowerShell 提示符中,启用 HTTPS 请求:

    [Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls"
    
  4. 下载并运行 Chrome 安装程序:

    $installer = "$env:TEMP\chrome_installer.exe";
    Write-Host 'Downloading Chrome.'
    Invoke-WebRequest `
    'https://dl.google.com/chrome/install/latest/chrome_installer.exe' `
      -OutFile $installer
    Write-Host 'Installing Chrome.'
    & $installer /silent /install | Out-Default
    Remove-Item $installer
    
  5. 命令完成后,关闭 PowerShell。

安装 NVIDIA 驱动程序

对于计算和显示工作负载,Google Cloud 上的 NVIDIA L4、NVIDIA T4、NVIDIA P4 和 NVIDIA P100 GPU 仅当搭配符合条件的 NVIDIA RTX 虚拟工作站 (vWS) 驱动程序时才能正常运行。

您可以从公共 Google Cloud 存储桶下载这些驱动程序。

  1. 在虚拟工作站的 Windows 桌面上,打开 PowerShell。
  2. 获取最新驱动程序列表:

    gcloud storage ls gs://nvidia-drivers-us-public/GRID
  3. 使用自 2023 年 4 月开始提供的最新图形驱动程序:

    vGPU 16.1 Windows driver (537.13_grid_win10_win11_server2019_server2022_dch_64bit_international.exe)

    您随时可以在 GRID 目录下查找最新的符合条件的驱动程序(即具有最高的版本号);如果您发现版本更高的驱动程序,请使用更高的版本。

  4. 在 PowerShell 中,下载并安装该驱动程序。如果您要使用高于 527.41 版本的驱动程序,请相应地更改以下命令。

    gcloud storage cp `
    gs://nvidia-drivers-us-public/GRID/vGPU16.1/537.13_grid_win10_win11_server2019_server2022_dch_64bit_international.exe `
    $HOME/Downloads
    
  5. 打开 Windows File Explorer 并转到用户的 Downloads 目录。

  6. 在该目录中,双击 NVIDIA 驱动程序以运行安装程序。

    按照提示在默认位置安装该驱动程序:

    1. 如果您接受 NVIDIA 许可条款,请点击同意并继续
    2. 选择快速(推荐)作为安装类型。
    3. 安装完成后,关闭 NVIDIA 安装程序。
  7. 验证驱动程序是否可以正常运行。在 PowerShell 中,运行以下命令:

    nvidia-smi
    

    输出类似于以下内容:

    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 537.13       Driver Version: 537.13       CUDA Version: 12.2     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name           TCC/WDDM  | Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp Perf  Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
    |                               |                      |               MIG M. |
    |===============================+======================+======================|
    |   0  NVIDIA L4          WDDM  | 00000000:00:03.0 Off |                    0 |
    | N/A   44C    P8    13W /  72W |     94MiB / 23034MiB |      5%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI       PID   Type   Process name                   GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |    0   N/A  N/A     6696   C+G   ...CBS_cyewy\TextInputHost.exe    N/A      |
    +-----------------------------------------------------------------------------+
    

安装 HP Anyware 软件

HP Anyware 软件提供了一个在虚拟工作站上运行的图形代理,可将桌面传输到硬件或软件客户端。

  1. 在 Windows 实例上,打开 Google Chrome,然后前往 Teradici 支持页面上的 PCoIP 主机部分
  2. 下载 Graphics Agent for Windows
  3. 如果您尚未登录,请点击登录下载
  4. 点击下载和脚本
  5. 完成代理安装过程,并选择运行已下载的图形代理可执行文件。按照提示将图形代理安装到默认位置。

注册 PCoIP 图形代理

安装过程完成后,系统会提示您输入注册代码。

  1. License Registration 窗口中,输入您在试用注册过程中收到的注册代码。

  2. 输入注册代码后,重新启动 Windows 实例。

创建防火墙规则

PCoIP 客户端会使用多个端口与虚拟工作站通信。 您必须设置允许流量进入您的虚拟工作站的防火墙规则。

  • 在本地计算机(而非虚拟工作站)上的 Cloud Shell 中,创建用于打开所需端口的防火墙规则:

    gcloud compute firewall-rules create allow-pcoip \
        --action=ALLOW \
        --rules=tcp:443,tcp:4172,udp:4172 \
        --source-ranges=0.0.0.0/0
    

使用 PCoIP 客户端登录您的虚拟工作站

  1. 在本地计算机上,前往 HP Anyware 支持页面上的 PCoIP 客户端部分,然后下载、安装并启动适用于您的操作系统的 PCoIP 软件客户端应用。

  2. Host Address 或 Registration Code 字段中,输入虚拟工作站的外部 IP 地址。如果需要,可以输入连接名称。

  3. 连接后,输入之前为虚拟工作站创建的用户名和密码,以进行身份验证。

    几秒钟后,系统会显示您的 Windows 桌面。

在虚拟工作站上激活音频

要在虚拟工作站上激活音频,请启用 Teradici 虚拟音频驱动程序作为默认播放设备。

  1. 在 Windows 虚拟机上,点击 Windows 任务栏上的“Start”按钮,然后输入 mmsys.cpl 以打开“Sound”控制台,并初始化 Teradici 虚拟音频驱动程序。

  2. 点击。Windows 将验证音频驱动程序是否有效。

测试虚拟工作站

部署完虚拟工作站后,您可以使用多种工具来测试其性能和交互性:

您还可以详细了解基于您的工作负载的 PCoIP 性能优化

清理

为避免因本教程中使用的资源导致您的 Google Cloud 账号产生费用,请删除包含这些资源的项目,或者保留项目但���除各个资源。

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. If the project that you plan to delete is attached to an organization, expand the Organization list in the Name column.
  3. In the project list, select the project that you want to delete, and then click Delete.
  4. In the dialog, type the project ID, and then click Shut down to delete the project.

删除所有组件

  1. 删除虚拟工作站
  2. 删除防火墙规则

后续步骤