';
富通云腾深度学习容器云帮你造出马良的神笔
来自Nvidia和MIT的研究团队,最近搞出了迄今最强的高清视频生成AI,其效果可以堪比神笔马良的神话效果,那就是画什么,就变成什么。通过简单的几笔勾勒,可以生成真实的头像及表情。让我们先来看看效果吧。
还可以变成不同的风格
还可以生成身体的动作
别惊讶!这些的确都是人工智能算法生成的,显然,人工智能将在未来改变艺术、设计等行业,让设计师专注在创造性和灵感上。仔细看看这个研究,在感受酷炫科技的同时,也不禁对这项研究使用的8块GPU集群嘘唏不已。那么,问题来了:
● 不会安装也不会配框架可以跑人工智能程序吗?
● 可以和别人共享显卡计算资源吗?
● 有哪些私有云平台可以提供深度学习的服务?
我们今天就来聊聊富通云腾深度学习容器云的一些技术知识,以及如何借助富通云腾深度学习容器云创建深度学习任务。
现如今,深度学习不断推动人工智能的发展,在图像、自然语言处理、 音频处理等领域获得巨大突破。深度学习框架是深度学习开发者的重要工具,它能快速构建各种结构的深度神经网络,通过给定网络的输入和标签数据,框架会自动进行正向传播计算和反向传播计算来完成神经网络的训练过程,获得最终模型。但是不同的深度学习框架基础结构与功能有所不同,这使得开发者需要根据所求解的网络结构类型进行选择,而框架本身又依赖于不同的基础库,配置这些框架以及基础库依赖是十分繁琐的。
随着 IT 产业的日益发展,云计算这一概念已经深入人心。云计算将数台计算机通过网络协同对用户提供服务,拥有高可用性、可扩展性和适用性。随着云计算技术的不断发展,云计算领域和GPU高性能计算领域之间相互借鉴,逐渐形成了相互独立又依存的软、硬件体系结构。利用云计算技术将深度学习框架与 GPU 计算环境结合,将拥有强大计算能力的GPU集群以云服务的形式对外提供给用户,将是十分便捷的。
传统GPU资源隔离通常有两种方式:一种是在Hypervisor 层加入 vGPU Manager,利用特定GPU的虚拟化硬件支持,通过固定的模式将GPU 映射到虚拟机中,每个虚拟机都具有独立的显存与核心,这种方式目前被 ESXi 所采用。这种方式最大的优点来源于GPU 硬件对虚拟化的支持,通过专用硬件可将一个性能强大的 GPU 资源拆分为多个性能较弱的 GPU 资源使用,通常被用于解决VDI环境。另一种是通过CUDA环境变量 CUDA_VISIBLE_DEVICES 指定当程序运行时所能获取的 GPU 编号实现隔离。CUDA_VISIBLE_DEVICES 的值是一个由 GPU minor number 组成的列表,当CUDA程序运行获取系统 GPU设备时,系统只会返回列表中编号对应的GPU,且会从 0 开始根据列表顺序重排 minor number,程序会继续从中选择合适的 GPU 设备运行核函数。程序无法获取列表之外的GPU资源,以此实现程序进程间的GPU资源隔离。
与vGPU Manager 不同,通过环境变量的方式是以单一GPU设备为基础单位进行隔离,与vGPU可以从一个GPU设备虚拟为多 个vGPU设备不同,前者可以将单一GPU设备映射到唯一的隔离环境中,后者可以将单一GPU设备映射到多个隔离环境中。HPC 资源调度器 slurm 采用环境变量的方式调度任务所使用的GPU 资源,通过记录 GPU 资源的使用情况,将任务对 GPU 的资源请求通过 CUDA_VISIBLE_DEVICES编号的形式进行调度,任务获取 GPU 编号即获取GPU 资源。但是每个 GPU 对应的 minor number 并非固定的,当系统重新加载 GPU 时,其值会发生改变。这造成程序无法根据 minor number 向 GPU 资源管理器直接获取满足需求的 GPU 资源,也限制了程序的迁移。
容器技术通过cgroup 实现容器间的资源隔离。以Docker容器为例,通过device参数将主机指定设备文件映射到容器中。NVIDIA 公司的开源项目Nvidia-docker 以Docker为基础,对使用 GPU 资源隔离的容器使用操作和运行环境进行封装。Nvidia-docker将主机端的GPU驱动与指定的GPU设备共同映射到容器内,确保容器与主机GPU 驱动一致,避免容器内重新安装驱动的问题。以容器方式对GPU资源隔离的基础单位与环境变量相同,属于一对一的方式进行隔离映射。在深度学习计算中更需要高效的计算能力。三种 GPU 隔离技术的对比如下表1所示