你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍如何创建使用无服务器 GPU 为 AI 应用程序提供支持的容器应用。
使用无服务器 GPU 时,可以直接访问 GPU 计算资源,而无需执行手动基础结构配置,例如安装驱动程序。 只需部署 AI 模型的映像。
本教程介绍以下内容:
- 创建新的容器应用和环境
- 将环境配置为使用无服务器 GPU
- 将应用部署到 Azure 容器应用
- 使用新的无服务器 GPU 启用应用程序
- 启用项目流式处理以减少 GPU 冷启动
Prerequisites
| 资源 | 说明 |
|---|---|
| Azure 帐户 | 需要一个具有活动订阅的 Azure 帐户。 如果还没有,则可以免费创建一个。 |
| 访问无服务器 GPU | 只有在请求 GPU 配额后,才能访问 GPU。 可以通过客户支持案例提交 GPU 配额请求。 |
| 资源 | 说明 |
|---|---|
| Azure 帐户 | 需要一个具有活动订阅的 Azure 帐户。 如果还没有,则可以免费创建一个。 |
| 访问无服务器 GPU | 只有在请求 GPU 配额后,才能访问 GPU。 可以通过客户支持案例提交 GPU 配额请求。 |
| Azure CLI | 安装 Azure CLI 或升级到最新版本。 |
创建容器应用
转到 Azure 门户,搜索并选择“容器应用”。
选择“创建”,然后选择“容器应用”。
在“基本信息”窗口中,在每个部分中输入以下值。
在“项目详细信息”下输入以下值:
设置 值 订阅 选择 Azure 订阅。 资源组 选择“新建”并输入“my-gpu-demo-group”。 容器应用名称 输入“my-gpu-demo-app”。 部署源 选择“容器映像”。 在“容器应用环境”下输入以下值:
设置 值 区域 选择 瑞典中部。
有关更多受支持的区域,请参阅在 Azure 中使用无服务器 GPU。容器应用环境 选择“新建”。 在“创建容器应用环境”窗口中,输入以下值:
设置 值 环境名称 输入“my-gpu-demo-env”。 选择“创建”。
选择“下一步: 容器 >”。
在“容器”窗口中,输入以下值:
设置 值 名称 输入“my-gpu-demo-container”。 映像源 选择“Docker Hub 或其他注册表”。 映像类型 选择“公共”。 注册表登录服务器 输入“mcr.microsoft.com”。 映像和标记 输入“k8se/gpu-quickstart:latest”。 工作负载配置文件 选择 消耗 - 最多 4 个 vCPU、8 Gib 内存。 GPU 选中复选框。 GPU 类型 选择“Consumption-GPU-NC8as-T4 - 最多 8 个 vCPU,56 GiB 内存”,然后选择用于将配置文件添加到环境的链接。 选择“下一步: 流入量 >”。
在“流入量”窗口中,输入以下值:
设置 值 流入量 选中“已启用”复选框。 入口流量 选择“接受来自任何位置的流量”单选按钮。 目标端口 输入 80。 选择“查看 + 创建”。
选择“创建”。
等待部署完成,然后选择“转到资源”。
此过程可能需要五分钟才能完成。
使用 GPU 应用
在“概述”窗口中,选择“应用程序 URL”链接,在浏览器中打开 Web 应用前端并使用 GPU 应用程序。
注意
- 若要实现 GPU 应用的最佳性能,请按照以下步骤改进无服务器 GPU 的冷启动。
- 当应用程序中有多个容器时,第一个容器可以访问 GPU。
创建环境变量
定义以下环境变量。 在运行此命令之前,请将 <PLACEHOLDERS> 替换为您的值。
RESOURCE_GROUP="<RESOURCE_GROUP>"
ENVIRONMENT_NAME="<ENVIRONMENT_NAME>"
LOCATION="swedencentral"
CONTAINER_APP_NAME="<CONTAINER_APP_NAME>"
CONTAINER_IMAGE="mcr.microsoft.com/k8se/gpu-quickstart:latest"
WORKLOAD_PROFILE_NAME="NC8as-T4"
WORKLOAD_PROFILE_TYPE="Consumption-GPU-NC8as-T4"
创建容器应用
创建资源组以包含在本教程中创建的资源。 此命令应输出
Succeeded。az group create \ --name $RESOURCE_GROUP \ --location $LOCATION \ --query "properties.provisioningState"创建容器应用环境来托管容器应用。 此命令应输出
Succeeded。az containerapp env create \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --location "$LOCATION" \ --query "properties.provisioningState"将工作负荷配置文件添加到环境。
az containerapp env workload-profile add \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --workload-profile-name $WORKLOAD_PROFILE_NAME \ --workload-profile-type $WORKLOAD_PROFILE_TYPE创建容器应用。
az containerapp create \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP \ --environment $ENVIRONMENT_NAME \ --image $CONTAINER_IMAGE \ --target-port 80 \ --ingress external \ --cpu 8.0 \ --memory 56.0Gi \ --workload-profile-name $WORKLOAD_PROFILE_NAME \ --query properties.configuration.ingress.fqdn此命令输出容器应用的应用程序 URL。
使用 GPU 应用
在浏览器中打开容器应用的应用程序 URL。 请注意,启动容器应用最多可能需要五分钟的时间。
Azure 容器应用使用无服务器 GPU 的应用程序允许您输入提示以生成图像。 还可以直接选择 Generate Image 使用默认提示。 在下一步中,你将查看 GPU 处理的结果。
注意
- 若要实现 GPU 应用的最佳性能,请按照以下步骤改进无服务器 GPU 的冷启动。
- 当应用程序中有多个容器时,第一个容器可以访问 GPU。
监视 GPU
生成映像后,使用以下步骤查看 GPU 处理的结果:
在 Azure 门户中打开容器应用。
从“监视”部分选择“控制台”。
选择副本。
选择你的容器。
选择 “重新连接”。
在“选择启动命令”窗口中选择“/bin/bash”,然后选择“连接”。
设置 shell 后,输入命令 nvidia-smi 以查看 GPU 的状态和输出。
清理资源
本教程中创建的资源会影响 Azure 帐单。
如果不打算长期使用这些服务,请按照步骤删除本教程中创建的所有内容。
在 Azure 门户中,搜索并选择“资源组”。
选择“my-gpu-demo-group”。
选择“删除资源组”。
在确认框中,输入“my-gpu-demo-group”。
选择“删除”。
运行以下命令。
az group delete --name $RESOURCE_GROUP