当前位置: 首页 > 科技观察

5分钟搭建强大易用的深度学习环境

时间:2023-03-12 05:12:52 科技观察

为深度学习项目搭建良好的环境并不是一件容易的事。因为要处理的事情太多了:库要匹配特定版本,整个环境需要可复制到其他机器,一切都需要能够与机器中的所有驱动程序通信。这意味着您需要为您的NVIDIAGPU安装特定的驱动程序,并且CUDA库必须与您的驱动程序和您要使用的框架兼容。随着容器彻底改变了软件开发领域,现在它们还可以帮助数据科学家构建更强大的环境。有一件事是肯定的:数据科学可以从软件开发领域学到一些东西。NVIDIANGC是一个软件中心,可提供GPU优化框架、预训练模型和工具包,以在生产中训练和部署AI。它是一个容器注册表,包含训练模型所需的所有工具:无论您使用的是caffee2、Pytorch、Tensorflow、Keras、Julia还是其他工具都没有关系。NGC目录中有大量容器可以生产,您只需要选择您想要使用的容器即可。NvidiaNGC不仅仅是一个容器注册表,它还有许多内置功能可以帮助您的组织将模型投入生产。FromScratch让我们从配备GPU的Linux机器开始(GPU不是强制性的,但如果你想训练模型,强烈推荐)。我在Ubuntu20.04LTS和18.04LTS上测试了这个特性,但它可以很容易地适应其他Linux发行版。我们需要做什么?步骤很简单,我们只需要安装NVIDIA驱动程序和Docker。然后我们下载我们想要的docker镜像并开始工作!第1步:在Ubuntu20.04上安装NVIDIA驱动程序注意:如果您使用的是其他Ubuntu版本,请确保相应地修改脚本。此外,如果启用了安全启动,则此方法不起作用。sudoaptinstalllinux-headers-$(uname-r)curl-Ohttps://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pinsudomvcuda-ubuntu2004.pin/etc/apt/优先。d/cuda-repository-pin-600sudoapt-keyadv-fetch-keyshttps://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pubsudoadd-apt-repository"debhttps://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64//"sudoaptupdatesudoapt-yinstallcuda使用nvidia-smi命令验证安装。你应该看到这样的东西。第二步:在Ubuntu20.04#!/bin/sh#Setuptherepositorysudoapt-getupdatesudoapt-getinstall-y\apt-transport-https\ca-certificates\curl\gnupg-agent\software-properties-common#AddDocker'sofficialGPGkey:curl安装Docker-fsSLhttps://download.docker.com/linux/ubuntu/gpg|sudoapt-keyadd-#setupthestablerepositorysudoadd-apt-repository\"deb[arch=amd64]https://download.docker.com/linux/ubuntu\$(lsb_release-cs)\stable"sudoapt-getupdatesudoapt-getinstall-ydocker-cedocker-ce-clicontainerd.io#Substituteubuntuwithyourusernamesudousermod-aGdockerubuntu注意:您需要注销并登录才能使用没有sudo权限的docker命令。第三步:让Docker与NVIDIA驱动通信curl-s-Lhttps://nvidia.github.io/nvidia-docker/gpgkey|\sudoapt-keyadd-curl-s-Lhttps://nvidia.github.io/nvidia-docker/ubuntu16.04/amd64/nvidia-docker.list|\sudotee/etc/apt/sources.list.d/nvidia-docker.listsudoaptupdatesudoapt-getinstall-ydockernvidia-container-toolkit我们现在要测试Docker是否可以与NVIDIA驱动程序通信。为此,只需运行以下命令,您应该会看到与步骤1类似的结果。sudodockerrun--rm--gpusallnvidia/cuda:11.0-basenvidia-smi注意:我尝试过不同的云托管提供商,根据操作系统、VM类型和GPU,此时可能需要重新启动。因此,如果出现错误,请尝试sudoreboot并再次执行上述命令。如果正常,您应该会看到nvidia-smi结果。第4步:让我们抓取图像并运行它!#DownloadNGCTensorflow2Imagedockerpullnvcr.io/nvidia/tensorflow:20.12-tf2-py3#createlocal_dirfoldermountedat/container_dirinthecontainermkdir/home/ubuntu/local_dirdockerrun--gpusall--shm-size=1g--ulimitmemlock=-1--ulimitstack=67108864-it--rm-v/home/ubuntu/local_dir:/container_dirnvcr.io/nvidia/tensorflow:20.10-tf2-py3注意:flags-shm-size=1g-ulimitmemlock=-1-ulimitstack=67108864是必须的,为了避免操作系统限制对Docker容器的资源分配。我们现在在容器内,让我们看看是否一切正常。从图中可以看出,GPU可用,tensorflow可以使用。最后:访问docker环境当您断开与机器的连接时,您会注意到您不再位于容器内。再次连接需要使用dockerps找到运行容器的container_id,然后:dockerexec-it/bin/bash最后在本教程中,我们发现使用NVIDIANGC的镜像来创建一个包含所有库和工具的生产就绪环境是多么容易。我们看到配置Docker以与NVIDIA驱动程序和所需框架通信是多么容易。我们在5分钟内完成了所有这些