Google Cloud Platform (GCP) 上的 L4 GPU#

L4 GPU 相比 T4 GPU,是一种更节能、计算效率更高的选择。L4 GPU 已在 GCP 上普遍可用,可用于运行 RAPIDS 工作流程。

Compute Engine 实例#

创建虚拟机#

创建带有 L4 GPU 的 VM 实例以运行 RAPIDS

  1. 打开 Compute Engine

  2. 选择 创建实例

  3. 机器配置 部分,选择 GPU,然后在 GPU 类型 下拉菜单中选择 NVIDIA L4

  4. 启动磁盘 部分,点击 更改,并在 操作系统 下拉菜单中选择 Deep Learning on Linux

  5. 还建议将默认启动磁盘大小增加到例如 100GB

  6. 自定义实例的其他属性后,点击 创建

允许网络访问#

为了访问 Jupyter 和 Dask,我们需要设置一些防火墙规则来打开一些端口。

创建防火墙规则#

  1. 打开 VPC 网络

  2. 选择 防火墙创建防火墙规则

  3. 为规则指定一个名称,例如 rapids,并确保网络与您为 VM 选择的网络匹配。

  4. 添加一个标签,例如 rapids,我们将使用此标签将规则分配给我们的 VM。

  5. 设置您的源 IP 范围。我们建议您将其限制为自己的 IP 地址或公司网络,而不是 0.0.0.0/0,因为后者会允许任何人访问您的 VM。

  6. 协议和端口 下,允许端口 22,8786,8787,8888 上的 TCP 连接。

将其分配给 VM#

  1. 打开 Compute Engine

  2. 选择您的 VM 并按 编辑

  3. 向下滚动到 网络,并添加您为防火墙规则指定的 rapids 网络标签。

  4. 选择 保存

连接到 VM#

接下来我们需要连接到 VM。

  1. 打开 Compute Engine

  2. 找到您的 VM 并点击 SSH 按钮,这将在新的浏览器标签页中打开一个终端。

安装 CUDA 和 NVIDIA Container Toolkit#

由于 GCP 建议在 L4 VM 上使用 CUDA 12,我们将升级 CUDA。

  1. 在您的 VM 中安装 CUDA Toolkit 12,并使用以下命令接受默认提示。

$ wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.run
$ sudo sh cuda_12.1.1_530.30.02_linux.run
  1. 使用以下命令安装 NVIDIA Container Toolkit

$ sudo apt-get update
$ sudo apt-get install -y nvidia-container-toolkit
$ sudo nvidia-ctk runtime configure --runtime=docker
$ sudo systemctl restart docker

安装 RAPIDS#

有多种方法可以安装 RAPIDS,您可以通过 RAPIDS 发行版本选择器 查看。

对于本例,我们将运行 RAPIDS Docker 容器,因此我们需要知道最新容器的名称。在发行版本选择器上,在 方法 列中选择 Docker

然后复制显示的命令

docker pull nvcr.io/nvidia/rapidsai/notebooks:25.04-cuda12.8-py3.12
docker run --gpus all --rm -it \
    --shm-size=1g --ulimit memlock=-1 \
    -p 8888:8888 -p 8787:8787 -p 8786:8786 \
    nvcr.io/nvidia/rapidsai/notebooks:25.04-cuda12.8-py3.12

注意

如果在运行这些命令时看到“docker socket permission denied”错误,请尝试关闭并重新连接您的 SSH 窗口。这是因为您的用户在登录后才被添加到 docker 组。

测试 RAPIDS#

要访问 Jupyter,请在浏览器中导航到 <VM ip>:8888

在 Python notebook 中,检查是否可以导入和使用像 cudf 这样的 RAPIDS 库。

In [1]: import cudf
In [2]: df = cudf.datasets.timeseries()
In [3]: df.head()
Out[3]:
                       id     name         x         y
timestamp
2000-01-01 00:00:00  1020    Kevin  0.091536  0.664482
2000-01-01 00:00:01   974    Frank  0.683788 -0.467281
2000-01-01 00:00:02  1000  Charlie  0.419740 -0.796866
2000-01-01 00:00:03  1019    Edith  0.488411  0.731661
2000-01-01 00:00:04   998    Quinn  0.651381 -0.525398

打开 cudf/10min.ipynb 并执行单元格以进一步了解 cudf 的工作原理。

运行 Dask 集群时,您还可以访问 <VM ip>:8787 来监控 Dask 集群状态。

清理#

完成后,返回部署页面并删除您创建的实例。