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

本教程介绍如何创建具备以下特点的 Linux 虚拟工作站:运行 Ubuntu 22.04,且挂接了具备显示能力的 GPU。Google Cloud 提供了四种具备显示能力的 GPU:NVIDIA L4、NVIDIA T4、NVIDIA P4 和 NVIDIA P100。

如需创建 Windows 工作站,请参阅有关创建 GPU 加速的 Windows 虚拟工作站的教程。

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

本教程假定您熟悉 Linux 命令行。

架构

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

虚拟工作站架构。

选择一个区域。

部署虚拟工作站时需要考虑的一项重要因素是您的位置与您创建的实例之间的延迟时间。延迟时间越短,体验越好。因此,您最好选择与您的地理位置最近的可用区。如需详细了解不同 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,远远低于单个 NVIDIA L4 GPU 可以有 32 个 vCPU 的限制。

创建虚拟工作站

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

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

    替换以下内容:

    • VM_NAME 是工作站的名称。
    • ZONE 是要在其中创建虚拟机的可用区。
    • MACHINE_TYPE 是预定义或自定义机器配置。
    • ACCELERATOR 是您要挂接的 GPU 的类型,例如 nvidia-l4-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=ubuntu-os-cloud \
        --image-family=ubuntu-2204-lts \
        --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 地址。

登录虚拟工作站

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

  1. 在 Cloud Shell 中,连接到新建的虚拟工作站:

    gcloud compute ssh VM_NAME
  2. 设置账号密码。使用 PCoIP 软件客户端登录虚拟工作站需要用户密码。

    sudo passwd `whoami`

    出现提示时,输入一个密码。在本教程的后面部分,当您通过 HP Anyware PCoIP 客户端登录您的虚拟工作站,将会用到这个密码。

安装基础库

默认的 Google Cloud Ubuntu 22.04 映像是 Ubuntu 的极简安装。接下来,安装运行虚拟工作站(用作图形工作站)所必需的库。

  1. 更新软件代码库:

    sudo apt update
  2. 安装基本组件:

    sudo apt install -y build-essential
    sudo apt install -y libvulkan1
    
  3. 更新 NVIDIA 驱动程序的 gcc 版本:

    sudo apt install -y gcc-12
    sudo apt install -y linux-headers-$(uname -r)
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 12
    sudo update-alternatives --config gcc
    

安装 NVIDIA 驱动程序

对于可视化工作负载, Google Cloud上的 NVIDIA L4、NVIDIA T4、NVIDIA P4 和 NVIDIA P100 GPU 仅当搭配符合条件的 NVIDIA RTX 虚拟工作站驱动程序时才能正常运行。您可以从一个公共 Google Cloud 存储桶下载这些驱动程序。

  1. 如需安装最新的 NVIDIA RTX 虚拟工作站驱动程序,请按照说明(仅限第 3 步和第 4 步)操作。

  2. 重启工作站:

    sudo reboot

安装桌面环境

如需将虚拟工作站作为图形工作站运行,必须使用桌面环境。在本教程中,您将安装 KDE Plasma 桌面。

  1. 安装桌面环境:

    sudo apt update
    sudo apt -y install kubuntu-desktop
    sudo apt -y install dialog
    
  2. 重启工作站:

    sudo reboot

安装 HP Anyware 软件

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

  1. 重启虚拟工作站后,在 Cloud Shell 中重新连接到该虚拟工作站:

    gcloud compute ssh VM_NAME
  2. 添加 Teradici 软件代码库:

    curl -1sLf \
        https://dl.anyware.hp.com/TOKEN/pcoip-agent/cfg/setup/bash.deb.sh \
        | sudo -E distro=ubuntu codename=jammy bash
    

    替换以下内容:

  3. 更新软件代码库:

    sudo apt update
  4. 可选:如果您需要支持除键盘、鼠标和指控设备以外的 USB 设备,请安装 USB 依赖项。

    sudo apt -y install usb-vhci-dkms
  5. 安装 HP Anyware 软件:

    sudo apt -y install pcoip-agent-graphics

注册 Anyware Graphics Agent

如需使用 Anyware Graphics Agent,您必须拥有 HP Anyware 许可。

  1. 在 Cloud Shell 中,激活您的 HP Anyware 软件许可:

    pcoip-register-host --registration-code=REGISTRATION-CODE

    REGISTRATION-CODE 替换为 HP Teradici 以 ABCDEFGHIJKL@0123-4567-89AB-CDEF 的形式提供给您的代码。

  2. 重启虚拟工作站:

    sudo reboot

创建防火墙规则

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. 连接后,输入之前为虚拟工作站创建的用户名和密码,以进行身份验证。

    几秒钟后,将显示 Linux 桌面。

测试虚拟工作站

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

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