亚马逊AWS官方博客

适用于 Lustre 的 Amazon FSx 可将 GPU 实例的吞吐量提升高达 15 倍

现在,我们宣布在 适用于 Lustre 的 Amazon FSx 上支持 Elastic Fabric Adapter (EFA) NVIDIA GPUDirect Storage (GDS)。EFA 是 Amazon EC2 实例的网络接口,它使得大规模运行需要高级别节点间通信的应用程序成为可能。GDS 是一种技术,能够在本地或远程存储与 GPU 内存之间建立直接的数据传输路径。借助这些增强功能,与之前适用于 Lustre 的 FSx 版本相比,适用于 Lustre 的 Amazon FSx 支持 EFA/GDS,使每个客户端吞吐量最高可提升 15 倍(高达 1500 Gbps)。

您可以使用适用于 Lustre 的 FSx 来构建和运行性能要求极高的应用程序,比如深度学习训练、药物研发、金融建模和自动驾驶汽车开发。随着数据集的增长和新技术的出现,您可以采用越来越强大的 GPU 和 HPC 实例,比如 Amazon EC2 P5Trn1Hpc7a。到目前为止,在访问适用于 Lustre 的 FSx 文件系统时,使用传统的 TCP 网络,单个客户端实例的吞吐量被限制在 100 Gbps 以内。这种采用推动了对适用于 Lustre 的 FSx 文件系统的需求,以便在访问大型数据集时提供必要的性能,优化利用这些尖端 EC2 实例不断提升的网络带宽。

借助适用于 Lustre 的 FSx 对 EFA 和 GDS 支持,现在在应用程序中使用 P5 GPU 实例和 NVIDIA CUDA 时,每个客户端实例的吞吐量最高可达 1500 Gbps(吞吐量是以前的十五倍)。

有了这项新功能,您现在可以充分发挥最强大计算实例的网络带宽优势,加速机器学习 (ML)HPC 工作负载的运行。EFA 通过绕过操作系统并使用 AWS Scalable Reliable Datagram (SRD) 协议来优化数据传输,从而提升性能。GDS 通过实现文件系统与 GPU 内存间的直接数据传输,绕过 CPU 并消除冗余的内存副本,从而进一步提升性能。

我们来看看该功能的实际应用。

创建支持 EFA 的适用于 Lustre 的 Amazon FSx 文件系统

首先,在 Amazon FSx 控制台中,我选择创建文件系统,然后选择适用于 Lustre 的 Amazon FSx

我输入文件系统的名称。在部署和存储类型部分中,我选择持久、SSD 和新的支持 EFA 选项。在单位存储吞吐量部分,我选择 1000 MB/s/TiB。通过这些设置,我输入 4.8 TiB 作为存储容量,这是这些设置所支持的最小容量。

控制台屏幕截图。

对于网络,我使用默认的虚拟私有云 (VPC)支持 EFA 的安全组。我将所有其他选项保留为默认值。

控制台屏幕截图。

我查看了所有选项,然后继续创建文件系统。几分钟后,文件系统就可以使用了。

从 Amazon EC2 实例安装支持 EFA 的适用于 Lustre 的 Amazon FSx 文件系统

Amazon EC2 控制台中,我选择启动实例,输入实例的名称,然后选择 Ubuntu 亚马逊机器映像 (AMI)。对于实例类型,我选择 trn1.32xlarge

控制台屏幕截图。

网络设置中,我编辑默认设置并选择与 FSx Lustre 文件系统相同的子网。在防火墙(安全组)中,我选择三个现有的安全组:适用于 Lustre 的 FSx 文件系统所使用的支持 EFA 的安全组、默认安全组和提供 Secure Shell (SSH) 访问的安全组。

控制台屏幕截图。

高级网络配置中,我选择 ENA 和 EFA 作为接口类型。如果没有此设置,实例将使用传统的 TCP 网络,与适用于 Lustre 的 FSx 文件系统的连接的吞吐量仍将限制在 100 Gbps 以内。

控制台屏幕截图。

为了获得更高的吞吐量,我可以根据实例类型添加更多的 EFA 网络接口。

我启动实例,当实例准备就绪时,我使用 EC2 实例连接进行连接,并按照 适用于 Lustre 的 FSx 用户指南中的说明安装 Lustre 客户端和配置 EFA 客户端。

然后,我按照说明从 EC2 实例挂载适用于 Lustre 的 FSx 文件系统

我创建了一个用作挂载点的文件夹:

sudo mkdir -p /fsx

我在 FSx 控制台中选择文件系统,然后查找 DNS 名称挂载名称。我通过这些值挂载了文件系统:

sudo mount -t lustre -o relatime,flock file_system_dns_name@tcp:/mountname /fsx

当您从支持 EFA 且使用 Lustre 2.15 或更高版本的客户端实例访问支持 EFA 的文件系统时,EFA 会被自动使用。

注意事项

在所有提供持久性 2 的 AWS 区域中,新的适用于 Lustre 的 Amazon FSx 文件系统现已支持 EFA 和 GDS,无需支付额外费用。当客户从支持 EFA 的客户端实例访问支持 EFA 的文件系统时,适用于 Lustre 的 FSx 会自动使用 EFA,无需任何额外配置。有关支持 EFA 的 EC2 客户端实例列表,请参阅 Amazon EC2 用户指南中支持的实例类型。此网络规范表描述了加速计算类别中实例类型的网络带宽和 EFA 支持。

要在适用于 Lustre 的 FSx 文件系统中使用支持 EFA 的实例,您必须在内核版本 6.8 或更高版本的 Ubuntu 22.04 上使用 Lustre 2.15 客户端。

请注意,客户端实例和文件系统必须位于 Amazon Virtual Private Cloud (Amazon VPC) 连接内的同一个子网中。

那些支持 EFA 的文件系统自动支持 GDS。要在适用于 Lustre 的 FSx 文件系统上支持 GDS,您需要在客户端实例上安装 NVIDIA Compute Unified Device Architecture (CUDA) 软件包开源 NVIDIA 驱动程序NVIDIA GPUDirect Storage Driver。这些软件包预装在 AWS Deep Learning AMI 上。然后,您可以利用支持 CUDA 的应用程序,通过 GPUDirect 存储在文件系统和 GPU 之间直接传输数据。

在规划部署时,请注意,支持 EFA 的文件系统比不支持 EFA 的文件系统有更大的最小存储容量增量要求。例如,如果您选择 1,000 MB/s/TiB 吞吐量级,则支持 EFA 的文件系统的最小存储容量将从 4.8 TiB 开始,而对于不支持 EFA 的适用于 Lustre 的 FSx 文件系统,最小存储容量为 1.2TB。如果您想迁移现有工作负载,可以使用 AWS DataSync 将数据从现有文件系统迁移到支持 EFA 和 GDS 的新文件系统。

为了实现最大的灵活性,适用于 Lustre 的 FSx 保持了与 EFA 和非 EFA 工作负载的兼容性。访问支持 EFA 的文件系统时,来自非 EFA 客户端实例的流量会自动通过弹性网络适配器 (ENA) 由传统 TCP/IP 网络传输,无需任何额外配置,即可无缝访问所有工作负载。

要了解有关在适用于 Lustre 的 FSx 上支持 EFA 和 GDS 的更多信息,包括详细的设置说明和最佳实践,请查阅适用于 Lustre 的 Amazon FSx 文档。立即开始使用,体验云中 GPU 实例所提供的最快速存储性能。

Danilo


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您了解行业前沿技术和发展海外业务选择推介该服务。