【问题标题】:Best Practices for creating a VM with GPU inside Azure DevOps Pipelines在 Azure DevOps Pipelines 中使用 GPU 创建 VM 的最佳实践
【发布时间】:2020-04-04 11:13:03
【问题描述】:

我目前正在构建一个 CI 管道来对新的机器学习模型进行基准测试。为此,我使用了 Azure DevOps Pipeline。

此管道在没有 GPU 的标准 Azure VM 上运行。尽管我需要一个 GPU,但要运行这些模型。我的想法是在 Azure 中创建(在构建过程中)一个带有 GPU 的 VM,并在那里运行模型和所有基准测试脚本,然后返回结果并销毁 GPU VM。

执行此操作的最佳实践是什么(例如 az cli 或 Terraform)?

您的帮助将不胜感激。

【问题讨论】:

    标签: azure build azure-devops continuous-integration virtual-machine


    【解决方案1】:

    您可以使用 az cli 来执行此操作。在管道中使用 Azure Cli 任务之前。您的 Azure 订阅必须在项目设置页面的 Service connections 中配置为您的 Azure devops。

    然后,您只需在构建管道中添加一个 Azure Cli 任务并运行以下 az image create 命令来创建 VM。

    az vm create \
     --name ${AZ_VM_NAME} \
     --resource-group ${AZ_RESOURCE_GROUP} \
     --image ${AZ_IMAGE} \ --location ${AZ_LOCATION} \
     --size ${AZ_SIZE} \ --ssh-key-value ${AZ_SSH_KEY} \
     --admin-username ${AZ_USER} \
     --nsg ${AZ_NSG}
    

    您需要prepare your VM variables 并选择GPU image

    当您想要销毁 GPU VM 时,可以在管道末尾添加另一个 Azure Cli 任务以运行 az image delete

    az vm delete -g $AZ_RESOURCE_GROUP -n $AZ_VM_NAME
    

    还有delete other associated resouces 例如。操作系统磁盘、网络接口、IP地址

    az network nic delete -g $AZ_RESOURCE_GROUP -n MyNic
    
    az disk delete -g $AZ_RESOURCE_GROUP -n MyDisk 
    
    az network public-ip delete -g $AZ_RESOURCE_GROUP -n MyIp
    

    如果您想使用 Azure Powershell 任务来执行上述任务,您可以查看this examples. Azure powershell 可能会更容易获取关联资源并在删除 VM 时将其删除。可以参考this example

    要使用 ARM 模板部署 VM,请查看this detailed tutorial。它向您展示了如何创建 ARM 模板以及如何部署它。

    注意:

    如果您在运行上述脚本时遇到未经授权的错误。

    请为代理作业勾选允许脚本访问令牌

    希望以上有帮助!

    【讨论】:

    • 非常感谢您的回答。我仍然需要将我的存储库复制到这个新创建的 GPU VM 并在那里构建和运行 Docker 容器。在管道内执行此操作的最佳方法是什么? (例如,我需要保存 VM IP 地址才能以某种方式从管道访问它)
    • 如果您想在那里构建和运行 docker 容器,您可以创建一个托管在此 VM 上的 self hosted agent,这样您就可以分配代理以在 azure devops 管道中运行您的管道,并且然后托管在 VM 上的代理将构建并运行容器。
    • 嗨@Sharif Elfouly 您是否尝试过创建自己的自托管代理?进展如何?
    猜你喜欢
    • 1970-01-01
    • 2021-06-02
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-19
    • 2013-08-20
    • 2011-12-07
    相关资源
    最近更新 更多