关于机器学习:千卡利用率超98详解JuiceFS在权威AI测试中的实现策略

5次阅读

共计 3737 个字符,预计需要花费 10 分钟才能阅读完成。

2023 年 9 月,AI 畛域的权威基准评测 MLPerf 推出了 Storage Benchmark。该基准测试通过模仿机器学习 I/O 负载的办法,在不须要 GPU 的状况下就能进行大规模的性能压测,用以评估存储系统的在 AI 模型训练场景的适用性。

目前反对两种模型训练:BERT(自然语言模型)和 Unet3D(3D 医学成像)。 尽管目前不反对大语言模型如 GPT、LLaMA,但 BERT 与大语言模型同为多层 transformer 构造,大语言模型的用户仍可从 BERT 训练后果取得肯定的参考。

高性能存储产品厂商 DDN、Nutanix、Weka 和 Argonne National Laboratory(简称 ANL)公布了 MLPerf 的测试后果作为行业参考,咱们也应用 JuiceFS 企业版进行了测试,让用户理解它在模型训练中的体现。

测试中最直观的指标是 GPU 利用率,大于 90% 为测试通过,示意存储系统可能满足训练业务的性能需求。JuiceFS 在 Unet3D 的 500 卡规模测试中,GPU 利用率放弃在 97% 以上;在 BERT 的 1000 卡规模测试中,GPU 利用率放弃在 98% 以上。

01 测试筹备

JuiceFS 企业版是基于对象存储的并行文件系统,相比社区版它提供了更强的元数据引擎和缓存治理能力,它的架构图如下:

咱们在华为云上搭建了一套企业版 JuiceFS 文件系统,应用华为云 OBS 作为数据长久层,部署了 3 节点的元数据集群和多节点的分布式缓存集群,硬件规格如下:

  • 元数据节点:m7.2xlarge.8 | 8vCPUs | 64GiB
  • 对象存储:OBS,带宽下限 300 Gb/s
  • 客户端节点:ir7.16xlarge.4 | 64vCPUs | 256GiB | Local SSD 2*1,600GiB | 网卡带宽 25 Gbps (以太网)

筹备好文件系统后,咱们应用 mlperf 的脚本生成后续模拟训练所须要的数据集,所有的测试中 batch size 和 steps 均采纳默认设置。目前仅反对模仿 NVIDIA v100 GPU,后文中提到的 GPU 均是模仿 v100。

02 BERT 模型

MLPerf 为 BERT 模型生成数据集时,会依照每个数据集文件蕴含 313,532 个样本的规定来生成,每个样本大小为 2.5 KB。训练过程中每个模仿 v100 GPU 每秒能解决 50 个样本,即每个 GPU 的 IO 吞吐需要为 125 KB/s,绝大部分存储系统都能轻松满足它的模型训练须要,JuiceFS 也是一样的,可能满足 1000 卡规模的模型训练须要。

咱们会集了 MLPerf 的次要公开后果,包含 ANL、DDN、Weka 的数据,并新增了本次测试中 JuiceFS 的后果。

  • JuiceFS 在 1000 GPU 规模下放弃 98% 以上 GPU 利用率
  • ANL 的后果仍然十分优良,思考到 ANL 测试的网络条件是高带宽低提早的 Slingshot 网络,能有这样的问题也是意料之中的。

03 Unet3D 模型

Unet3D 模型的训练对带宽的需要高于 BERT 模型。咱们首先在没有任何缓存(包含分布式缓存和单机缓存)的条件下测试了训练 Unet3D 模型的状况。在这种设置下,JuiceFS 客户端将间接从对象存储中读取数据。

无缓存测试

如下图所示,随着节点数的减少,GPU 利用率(图中的绿色线条)会迟缓降落。当 GPU 增至 98 卡时,它呈现了一个显著的拐点,随后 GPU 利用率随节点数的减少而急剧升高。

下图是依据 OBS 监控数据和 MLPerf 的后果绘制进去的曲线图,能够看到 OBS 带宽在 98 卡及更大规模的训练中曾经不再减少,成为性能瓶颈。

因而,在没有缓存的状况下,OBS 提供的 300Gb/s 带宽在 98 卡同时训练时就曾经满载。依据 MLPerf 90% 的测试通过规范来看,能够满足最多 110 卡同时训练 Unet3D 模型。

在对大型数据集进行多机多卡训练时,单机缓存因为其空间限度仅能缓存数据集的一小部分;同时,因为训练过程中数据拜访的随机性,缓存命中率较低。因而,这种状况下,单机缓存对于晋升整体 I/O 性能的奉献无限(如上图绿线,能看到单机的内核缓存对读带宽有晋升作用,尽管内核缓存空间多达 200GB,但成果无限),因而咱们没有进行单机缓存的针对性测试。

开启分布式缓存

相比本地缓存,分布式缓存能够提供更大的缓存容量以撑持更大的训练集和更高的缓存命中率,从而晋升整个 JuiceFS 集群的读带宽。

JuiceFS 的分布式缓存架构如下图所示,机器学习训练集群和 JuiceFS 的缓存集群能够是两批独立的机器组成的集群,它们通过高速网络连接。这两个集群都挂载了 JuiceFS 客户端。训练任务通过 JuiceFS 在本地的挂载点拜访数据。当本地挂载点须要数据时,它会首先从缓存集群申请数据;如果缓存集群中缺失所需数据,零碎则会从对象存储中获取数据并更新到缓存中。如果训练集群中的 GPU 节点本身也配置了短缺的 SSD 存储,那么它们能够间接用作 JuiceFS 的缓存盘并组成缓存集群,无需部署独立的缓存集群。这种配置实际上是将训练集群和缓存集群的性能合并在一起。在本次测试中,咱们采纳了这种混合部署形式。

分布式缓存及其容量对 GPU 利用率的影响

之前的测试表明,未开启缓存时,110 卡时的 GPU 利用率有余 90%。 为了直观展现分布式缓存对性能的影响,咱们对 JuiceFS 进行了进一步的测试 。咱们抉择 180 卡 GPU 规模的集群作为测试对象进行新一轮的测试,以评估 JuiceFS 的缓存命中率时跟 GPU 利用率关系。

下图中,横坐标示意缓存空间与数据集大小的比例,纵坐标示意缓存命中率和 GPU 使用率。当齐全没有缓存时,GPU 的使用率只有 49%。随着缓存空间比例的减少,缓存命中率(蓝色线条)逐步进步,进而带动 GPU 利用率(绿色线条)回升,当缓存命中率到 85% 时,GPU 利用率到了 93.1%, 曾经可能满足 180 卡的训练应用。当缓存命中率达到 100% 时,GPU 利用率达到最高的 98.8%,简直满载运行。

为了验证 JuiceFS 的缓存零碎的扩大能力,咱们依照数据集的大小调整了缓存集群的容量,确保了缓存命中率达到 100%。这样,所有训练所需数据均可间接从缓存中读取,而不用从速度较慢的对象存储中读取。 在这种配置下,咱们测试了最多约 500 卡规模的训练任务,随着测试规模的增大,GPU 利用率的变动如下图所示

从图中红色线条能够看到,开启分布式缓存的 JuiceFS 冲破了带宽瓶颈的限度,GPU 利用率会随着集群规模变大仅迟缓线性降落。依照上图的变化趋势预计,在当期的网络配置 (25Gbps) 下,JuiceFS 能够撑持约 1500 卡训练 Unet3D 时放弃 GPU 利用率在 90% 以上。

比照 Unet3D 的测试后果:JuiceFS/ANL/DDN/Weka

DDN、Weka 颁布的数据中最大规模的模仿 GPU 总数低于 200。

ANL 在 512 卡的规模下仍然没有显著衰减,GPU 利用率可能达到 99.5%。ANL 的读写带宽为 650 GBps,实践上最多能撑持 1500 卡训练 Unet3D,它的杰出体现与短缺的硬件配置密切相关,具体内容能够返回 ANL 的文章理解。

JuiceFS 的 GPU 利用率随着集群规模变大,迟缓线性降落,在 500 卡规模时放弃 97% 以上 。JuiceFS 遇到的性能瓶颈次要来自于缓存节点的网络带宽。因为缓存节点的机型数量和网络带宽无限,本次测试达到的最大规模为 483 卡。在这种规模下,JuiceFS 集群的聚合带宽为 1.7 Tb,而 ANL 集群的带宽是 5.2 Tb。

04 小结

  • 在 BERT 测试中,JuiceFS 在 1000 GPU 规模的训练中能放弃 98% 以上 GPU 利用率;
  • 在 Unet3D 测试中,随着集群规模变大,JuiceFS 在靠近 500 GPU 训练中放弃 97% 以上 GPU 利用率。若云服务商能够提供更高的网络带宽或更多的机器,这一规模还可进一步提高;
  • 分布式缓存的劣势在于极强的扩展性,能够利用更多节点上的 SSD 存储聚合更大的缓存空间,进步整个存储系统的读带宽;当然它也会带来一些 CPU 开销,但在 AI 训练场景中,应用闲置的 CPU 资源晋升零碎带宽是值得,甚至必要的。
  • 在云上进行机器学习训练时,高性能 GPU 机型通常都具备高性能的 SSD 和高带宽的网卡,这些设施还能够作为分布式缓存节点。因而,相比于专有的高性能存储产品,应用 JuiceFS,更具性价比,更易扩大。

大规模的 AI 训练场景中,通常都须要专有高性能存储,或是基于全闪架构和内核态的并行文件系统能力满足性能需求。但随着计算负载减少、集群增大,全闪的昂扬老本和内核客户端的运维复杂度会成为用户面临的一大挑战。而 JuiceFS,作为一款全用户态的的云原生分布式文件系统,借助分布式缓存来大幅晋升零碎的 IO 吞吐量,应用便宜的对象存储实现数据存储,更适宜大规模 AI 业务的整体须要。

对于 MLPerf 

MLPerf 是一套基准测试套件,它次要用于评估机器学习在本地和云平台上的训练及推理性能,为软件框架、硬件平台和机器学习的云平台提供了一个独立且主观的性能评估规范。该套件的测试包含测量机器学习模型训练到指标准确度所需的工夫以及训练实现的神经网络在新数据上执行推理工作的速度。这个套件是由 30 多个与 AI 相干的组织独特创立的。点击此处理解详情。

心愿这篇内容可能对你有一些帮忙,如果有其余疑难欢送退出 JuiceFS 社区与大家独特交换。

正文完
 0