为什么贪婪的 GPU需要快速的对象存储?

2024-02-01 23:04

本文主要是介绍为什么贪婪的 GPU需要快速的对象存储?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一个链条的力量取决于其最薄弱的环节 - 同样,您的AI/ML基础设施的速度也只有您的最慢组件那么快。如果您使用GPU训练机器学习模型,那么您的薄弱环节可能是您的存储解决方案。结果就是我所说的“饥饿GPU问题”。

饥饿GPU问题发生在您的网络或存储解决方案无法快速向您的训练逻辑提供训练数据,以至于无法充分利用您的GPU时。症状相当明显。如果您在监控您的GPU,那么您会注意到它们从未接近充分利用。如果您已经对您的训练代码进行了 instrumentation,那么您会注意到总的训练时间主要由I/O主导。
不幸的是,对于那些正在处理这个问题的人来说,有一个坏消息。让我们来看看在使用GPU方面的一些进展,以了解这个问题在未来几年将如何变得更糟。

GPUs正在变得更快

GPU正在变得更快。不仅原始性能在提高,内存和带宽也在增加。让我们来看看NVIDIA最新GPU的三个特点:A100、H100和H200。

GPU性能内存内存带宽
A100624 TFLOPS40GB1,555GB/s
H1001,979 TFLOPS80GB3.35TB/s
H2001,979 TFLOPS141GB4.8TB/s

(注:上述表格使用与A100的PCIe(外围组件互连 Express)插槽解决方案和H100和H200的SXM(服务器PCI Express模块)插槽解决方案相对应的统计数据。SXM的统计数据对于A100不存在。关于性能,比较时使用了浮点16张量核心的统计数据。)

上述统计数据中的一些观察值得关注。首先,H100和H200的性能(1,979 TFLOPS)相同,是A100的3.17倍。H100的内存是A100的两倍,内存带宽增加了同样多 - 这是有意义的,否则GPU会饿死自己。H200可以处理高达141GB的内存,它的内存带宽也随着内存的增加而成比例地增加。
让我们更详细地探讨这些统计数据,并讨论它们对机器学习意味着什么。

  • 性能 - 一个teraflop(TFLOPS)是一万亿(10^12)浮点运算每秒。这是一个后面跟着12个零的1(1,000,000,000,000)。在模型训练期间发生的浮点运算包括简单的张量数学以及损失函数(即梯度)的一阶导数。然而,由于统计数据中的TFLOPs与I/O需求之间的相对比较,可以进行一些估计。从上面的统计数据来看,我们可以看到,H100和H200,这两者都表现出1,979 TFLOPS的性能,速度快了3倍 - 如果其他一切都能跟上,理论上数据处理速度可以提高3倍。

  • GPU内存 - 也称为视频内存或图形内存。GPU内存与系统的 main memory(RAM)是分开的,专门用于处理图形卡执行的密集图形处理任务。GPU内存决定了训练模型时的批量大小。在过去,当将训练逻辑从CPU迁移到GPU时,批量大小会减小。然而,随着GPU内存与CPU内存容量相当,GPU训练的批量大小将会增加。当性能和内存容量同时增加时,结果是更大的请求,每个吉字节的数据处理速度更快。

  • 内存带宽 - 将GPU内存和计算核心连接的“高速公路”。它决定了每单位时间内可以转移多少数据。正如更宽的高速公路可以让更多的汽车在给定的时间内通过一样,更高的内存带宽可以让更多的数据在内存和GPU之间移动。正如你所看到的,这些GPU的设计者增加了每个新版本内存带宽与内存的比例,因此芯片内部的数据显示不会成为瓶颈。

未来展望

2023年8月,NVIDIA宣布了其下一个用于加速计算和生成AI的GPU平台 - Grace Hopper超级芯片平台。这个新的平台使用了Grace Hopper超级芯片,通过NVIDIA NVLink可以连接额外的超级芯片,使它们在模型训练和推理时共同工作。
虽然所有关于Grace Hopper超级芯片的规格都代表了比之前芯片的改进,但对于AI/ML工程师来说,最重要的创新是其统一的内存。Grace Hopper让GPU完全访问CPU的内存。这对于过去希望使用GPU进行训练的工程师来说很重要。因为过去,工程师如果希望使用GPU进行训练,首先必须将数据拉入系统内存,然后从那里将数据移动到GPU内存。Grace Hopper消除了使用CPU内存作为数据到达GPU的回弹缓冲区的需要。
对于负责升级GPU并确保其他一切能够跟上进度的任何人来说,将几项关键的GPU统计数据以及Grace Hopper的能力进行简单比较,可能有点令人不安。一个存储解决方案绝对需要以更快的速度服务数据,以跟上这些GPU的改进。让我们来看一个常见的老虎GPU问题的解决方案。

一个常见的解决方案

这个问题有一个常见且明显的解决方案,不需要组织替换或升级现有的存储解决方案。您可以保持现有的存储解决方案不变,以便您可以利用贵组织所需的所有企业功能。这个存储解决方案很可能是包含贵组织所有非结构化数据的数据湖——因此,它可能相当大,总体拥有成本是一个考虑因素。它还具有许多为冗余、可靠性和安全性启用的特性,所有这些都会影响性能。
然而,可以做的就是在一个与计算基础设施相同的数据中心设置一个存储解决方案——理想情况下,这个解决方案应该与计算集群相同。确保您拥有高速网络和最佳的存储设备。从那里,只复制用于ML训练的数据。
亚马逊最近宣布的亚马逊S3 Express One Zone体现了这种方法。它是一种优化高吞吐量和小延迟的桶类型,仅限于单个可用区(没有复制)。亚马逊的意图是让客户用它来持有需要高速访问的数据的副本。因此,它是为模型训练而专门设计的。根据亚马逊的说法,它提供的是S3标准数据的10倍访问速度,成本是S3标准8倍。有关我们对亚马逊S3 Express One Zone的评估,请内容。

MinIO解决方案

我上面概述的常见解决方案要求亚马逊定制其S3存储解决方案,通过提供增加成本的专业桶。另外,一些组织(不是MinIO客户)正在购买专业的存储解决方案,以实现我上述描述的简单事情。不幸的是,这给现有的基础设施增加了复杂性,因为需要新产品来解决一个相对简单的问题。

所有这些讽刺的是,MinIO客户一直都有这种选择。您可以通过在高速网络上安装MinIO的新实例并使用NVMe驱动器来实现我描述的所有内容。MinIO是一个软件定义的存储解决方案-相同的产品可以在裸机或您选择的集群上运行,使用各种存储设备。如果您的企业数据湖在裸机上使用MinIO并通过HDD工作,且对所有非ML数据都很好,那么没有理由替换它。但是,如果用于ML的数据集需要更快的I/O,因为您使用GPU,那么请考虑我在本帖中概述的方法。确保制作一份您的ML数据副本,用于MinIO的高速实例-始终在MinIO的坚不可摧的安装中存在金副本。这将允许您在MinIO的高速实例中关闭诸如复制和加密之类的特性,进一步提高性能。使用MinIO的镜像功能复制数据非常简单。

MinIO具有满足饥饿的GPU所需性能的能力-最近的一项基准测试在GETs上实现了325 GiB/s,在PUTs上实现了165 GiB/s,仅用32个节点的标准NVMe SSD。

今天就下载MinIO,了解如何轻松构建数据湖屋。如果您有任何问题,一定要联系我们!

这篇关于为什么贪婪的 GPU需要快速的对象存储?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/668755

相关文章

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

HDFS—存储优化(纠删码)

纠删码原理 HDFS 默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。 Hadoop3.x 引入了纠删码,采用计算的方式,可以节省约50%左右的存储空间。 此种方式节约了空间,但是会增加 cpu 的计算。 纠删码策略是给具体一个路径设置。所有往此路径下存储的文件,都会执行此策略。 默认只开启对 RS-6-3-1024k

电脑桌面文件删除了怎么找回来?别急,快速恢复攻略在此

在日常使用电脑的过程中,我们经常会遇到这样的情况:一不小心,桌面上的某个重要文件被删除了。这时,大多数人可能会感到惊慌失措,不知所措。 其实,不必过于担心,因为有很多方法可以帮助我们找回被删除的桌面文件。下面,就让我们一起来了解一下这些恢复桌面文件的方法吧。 一、使用撤销操作 如果我们刚刚删除了桌面上的文件,并且还没有进行其他操作,那么可以尝试使用撤销操作来恢复文件。在键盘上同时按下“C

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

AI Toolkit + H100 GPU,一小时内微调最新热门文生图模型 FLUX

上个月,FLUX 席卷了互联网,这并非没有原因。他们声称优于 DALLE 3、Ideogram 和 Stable Diffusion 3 等模型,而这一点已被证明是有依据的。随着越来越多的流行图像生成工具(如 Stable Diffusion Web UI Forge 和 ComyUI)开始支持这些模型,FLUX 在 Stable Diffusion 领域的扩展将会持续下去。 自 FLU

hdu 4565 推倒公式+矩阵快速幂

题意 求下式的值: Sn=⌈ (a+b√)n⌉%m S_n = \lceil\ (a + \sqrt{b}) ^ n \rceil\% m 其中: 0<a,m<215 0< a, m < 2^{15} 0<b,n<231 0 < b, n < 2^{31} (a−1)2<b<a2 (a-1)^2< b < a^2 解析 令: An=(a+b√)n A_n = (a +

如何用GPU算力卡P100玩黑神话悟空?

精力有限,只记录关键信息,希望未来能够有助于其他人。 文章目录 综述背景评估游戏性能需求显卡需求CPU和内存系统需求主机需求显式需求 实操硬件安装安装操作系统Win11安装驱动修改注册表选择程序使用什么GPU 安装黑神话悟空其他 综述 用P100 + PCIe Gen3.0 + Dell720服务器(32C64G),运行黑神话悟空画质中等流畅运行。 背景 假设有一张P100-

v0.dev快速开发

探索v0.dev:次世代开发者之利器 今之技艺日新月异,开发者之工具亦随之进步不辍。v0.dev者,新兴之开发者利器也,迅速引起众多开发者之瞩目。本文将引汝探究v0.dev之基本功能与优势,助汝速速上手,提升开发之效率。 何谓v0.dev? v0.dev者,现代化之开发者工具也,旨在简化并加速软件开发之过程。其集多种功能于一体,助开发者高效编写、测试及部署代码。无论汝为前端开发者、后端开发者

Java第二阶段---09类和对象---第三节 构造方法

第三节 构造方法 1.概念 构造方法是一种特殊的方法,主要用于创建对象以及完成对象的属性初始化操作。构造方法不能被对象调用。 2.语法 //[]中内容可有可无 访问修饰符 类名([参数列表]){ } 3.示例 public class Car {     //车特征(属性)     public String name;//车名   可以直接拿来用 说明它有初始值     pu