Azure 虚拟机#
创建虚拟机#
创建具有 GPU、NVIDIA 驱动程序和NVIDIA Container Runtime 的新 Azure 虚拟机。
NVIDIA 维护一个预装 NVIDIA 驱动程序和容器运行时的虚拟机镜像 (VMI),我们建议使用此镜像作为起点。
选择一个资源组,如果需要,请创建一个新资源组。
从下拉列表中选择最新的 NVIDIA GPU-Optimized VMI 版本,然后选择 立即获取(如果存在多个
Gen
版本,请选择最新版本)。如果已登录 Azure,请选择继续点击 创建。
在创建虚拟机界面中,填写 VM 所需的信息。
选择支持 GPU 的 VM 大小(参见推荐的 VM 类型)。
在“配置安全功能”中选择 Standard。
确保创建 SSH 密钥并下载它们。
请注意,并非所有区域都支持带有 GPU VM 的可用区。
当 GPU VM 大小不可选并显示通知:“该大小在区域 x 中不可用。不支持任何区域。”时,这意味着该 GPU VM 不支持可用区。请尝试其他可用性选项。
点击查看+创建以启动虚拟机。
准备以下环境变量。
名称 |
描述 |
示例 |
---|---|---|
|
VM 名称 |
|
|
VM 的资源组 |
|
|
VM 区域 |
|
|
镜像的 URN |
|
|
VM 大小 |
|
|
VM 用户名 |
|
|
公共 SSH 密钥 |
|
az vm create \
--name ${AZ_VMNAME} \
--resource-group ${AZ_RESOURCEGROUP} \
--image ${AZ_IMAGE} \
--location ${AZ_LOCATION} \
--size ${AZ_SIZE} \
--admin-username ${AZ_USERNAME} \
--ssh-key-value ${AZ_SSH_KEY}
注意
使用 az vm image list --publisher Nvidia --all --output table
查看 Azure 上官方 NVIDIA 镜像的 URN。
注意
请参阅此链接了解 Azure 支持的 SSH 密钥。
创建网络安全组#
接下来我们需要允许网络流量到 VM,以便我们可以访问 Jupyter 和 Dask。
创建 VM 后,选择转到资源以访问 VM。
在左侧面板中选择网络 -> 网络设置。
选择+创建端口规则 -> 添加入站端口规则。
将目标端口范围设置为
8888,8787
。修改“名称”以避免使用
,
或任何其他符号。
查看端口设置示例。
其余保持不变。选择添加。
名称 |
描述 |
示例 |
---|---|---|
|
VM 的 NSG 名称 |
|
|
NSG 规则名称 |
|
az network nsg rule create \
-g ${AZ_RESOURCEGROUP} \
--nsg-name ${AZ_NSGNAME} \
-n ${AZ_NSGRULENAME} \
--priority 1050 \
--destination-port-ranges 8888 8787
安装 RAPIDS#
接下来,我们可以通过 SSH 连接到 VM 以安装 RAPIDS。可以在左侧面板中选择连接找到 SSH 说明。
提示
通过 SSH 连接时,执行
ssh -i <path-to-your-ssh-key-dir>/your-key-file.pem azureuser@<vm-ip-address>
您可能会收到 WARNING: UNPROTECTED PRIVATE KEY FILE!
的警告,并因此收到“Permission denied”的结果。
通过执行 chmod 600 your_key_file.pem
,更改密钥文件的权限使其限制更少,这样就可以正常使用了。
有多种方法可以用来安装 RAPIDS,您可以通过RAPIDS 发布版本选择器查看。
在本示例中,我们将运行 RAPIDS Docker 容器,因此我们需要知道最新容器的名称。在发布版本选择器中,在 Method 列中选择 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 中,检查是否可以导入和使用 RAPIDS 库,例如 cudf
。
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 集群状态。