从农业时代的锄头镰刀,到工业时代蒸汽机发电机,每个时代都有每个时代的象征符。在迈向工业 4.0 智能化时代的现在,转战 GPU、使能并行计算、扩展云上算力...... 数字世界的每一个关键词无一不是围绕着效率和能力展开,计算能力和计算效率是这个时代留给我们的深刻烙印。这样的背景下,追逐计算能力和计算效率的脚步一刻也不曾停歇,而随着云端数据中心 GPU 部署比例的提升,如何提高 GPU 利用率、充分释放 GPU 计算能力成为眼下备受瞩目的话题之一。
在之前的探索过程中,GPU 也借鉴了 CPU 发展的思路,尝试过采用虚拟化的方式。早先的 GPU 虚拟化把同一个 GPU 资源分给不同的程序同时使用,但是因为内存访问模型不够成熟和完善,在多用户的情况下,很难实现多个用户同时共享一块 GPU,通常就只能将一块 GPU 分配给一个用户,计算资源的浪费的情况仍然很严重。
而随着 GPU 的应用越来越广泛,应用场景愈发多元,对 GPU 的利用率的要求也不断提升,传统虚拟化方法之下,GPU 计算资源的浪费对计算效率造成的的影响日渐凸显,提升算力以外,破解资源浪费难题也已迫在眉睫。
MIG(multi-Instance GPU)就这样应运而生了。
2020 年 5 月 14 日,NVIDIA 发布了最新的 GPU 架构 -- 安培。全新的安培架构提供了一系列新性能,而其中最值得一提的无疑是 MIG(多实例 GPU)。MIG 打破了 GPU 虚拟化中资源分配的瓶颈,能够将基于安培架构的 GPU 服务器 A100 切分成 7 个 GPU 实例,并且可以使每一个 GPU 实例都能够拥有各自的 SMs 和内存系统,让每个实例之间的内存空间访问互不干扰,保障每一个使用者的工作时延和吞吐量都是可预期的。
一个 NVIDIA A100 GPU 能够划分成不同大小的 GPU 实例,例如可以创建两个各有 20 千兆字节 (GB) 内存的实例、三个各有 10 GB 内存的实例、七个各有 5 GB 内存的实例或者其他多个组合。管理员可以根据不同类型的工作负载,动态地配置 GPU 实例,灵活地分配 GPU 资源,从而实现资源利用最大化。
在实际的使用中,一个 GPU 实例还可以再切分成多个计算实例。同一个 GPU 实例中的计算实例是共享内存的,但每个计算实例还拥有独立的流处理器,因此如果使用者有多项互相关联的工作,并且使用共享内存较为便利的话,可以选择在一个 GPU 实例当中使用多个计算实例来处理。通过这样的设计,使用者能够更加灵活地调度 GPU 的资源。
除了在 GPU 资源调度和利用方面的提升,多实例 GPU 还为分布式计算提供着强有力的支持。虚拟化的访问模型能够为分布式计算的软件栈提供一个干净的接口,将 GPU 底层的实现细节封入“黑箱”,让开发者能够利用虚拟化概念轻松构建多用户使用模型和界面,全面赋能高效计算。
这样的 MIG,你心动了吗?
想玩转 MIG,你一定不能错过这场公开课!
7 月 21 日晚 20:00,NVIDIA 将联合 InfoQ 举办线上公开课,全方位解读和 MIG 有关的那些事。届时,NVIDIA GPU 计算专家薛博阳,将为大家倾情讲解「如何玩转安培架构的 MIG (多实例 GPU) 及其应用案例分享」,助力广大开发者破解云时代 GPU 资源利用难题,加高计算竞争壁垒。
通过这次在线培训,你将收获以下内容:
MIG 如何运作;
为什么我们需要 MIG;
如何使用 MIG;
案例分析: 在 MIG 上使用 Fastertransformer。