Py学习  »  机器学习算法

全美TOP 5机器学习博士:痛心,实验室H100数量为0!同实验室博士用GPU得靠抢

新智元 • 2 天前 • 141 次点击  



  新智元报道  

编辑:编辑部
【新智元导读】全美TOP 5的机器学习博士痛心发帖自曝,自己实验室里H100数目是0!这也引起了ML社区的全球网友大讨论。显然,相比普林斯顿、哈佛这样动辄三四百块H100的GPU大户,更常见的是GPU短缺的「穷人」。同一个实验室的博士,甚至时常会出现需要争抢GPU的情况。

全美TOP 5高校的机器学习博士,实验室却连一块H100都没有?
最近,这位网友在reddit上发的这个帖子,立刻引发了社区大讨论——
大家发现,普林斯顿、哈佛这样的「GPU豪门」,手上的H100至少以三四百块打底,然而绝大多数ML博士,却连一块H100都用不上……
不同学校、机构之间的GPU「贫富差距」,竟然已经到了如此悬殊的地步?

大部分实验室,比斯坦福还差多了


两个月前,AI教母李飞飞曾在采访中表示,斯坦福的自然语言处理(NLP)小组只有64块A100 GPU。
面对学术界如此匮乏的AI资源,李飞飞可谓是痛心疾首。
而这位发帖的网友也表示,自己在攻读博士学位期间(全美排名前五的学校),计算资源是一个主要的瓶颈。
如果能有更多高性能的GPU,计算时间会显著缩短,研究进度也会快很多。
所以,他的实验室里到底有多少H100呢?答案是——0。
他向网友们发出提问:你们实验室里都有多少GPU?能从亚马逊、英伟达那里拿到额外的算力赞助吗?
年轻的研究者们纷纷自曝自己所在学校或公司的GPU情况,暴露出的事实,让所有人大为惊讶。

1张2080Ti+1张3090,已是全部

一位似乎是亚洲的网友表示,虽然自己的研究方向是计算机视觉(CV)并不是机器学习,但在2019年刚开始时,只能够使用一块2080 Ti显卡。
2021年,有机会使用一台配备V100和RTX 8000显卡的服务器。
2022年,获得了使用一块3090显卡的权限。
2023年,能够使用另一个实验室的一组服务器,这些服务器包括12块2080 Ti、5块3090和8块A100显卡。同年,还获得了一项计算资助,可以使用A100显卡三个月。
2024年,学校购买了一台配有8块H100显卡的服务器,并允许试用一个月。
此外,在2021年到2023年期间,也可以从一个本地学术提供商那里按小时租用GPU。
除了2080 Ti和3090这两张显卡外,大多数这些资源都是共享的。
题主问:这里的「a」就是字面意义上的「一个」么?
网友表示,是的,就是这么艰苦……
有人现身表示,自己可太惨了:没有显卡,没有credits。因为所在大学无法提供帮助,只能让实习公司帮自己获得一些。
一位2022年底毕业的博士也自曝称,实验室专用的服务器共搭载了差不多30块GPU,其中每台服务器配有4张显卡。(由于购买时间不同,性能也参差不齐)
不过,同一实验室里抢GPU的事情还是时有发生。
对此,有网友总结道,0 GPU很常见。
理由也非常简单:我们并不需要开着法拉利来学车。而且在开始,机器学习的基础是线代、统计和编程,之后才是硬件流程的优化。
而GPU严重匮乏的问题,在我国高校的实验室内也很普遍。
甚至,有博主发帖称,某大学的课程竟要求学生自备算力设备。
五人一组的学生,至少拥有2块3090/4090,或者是1块40G A100,才能完成课程要求的LLM训练任务。
那么问题来了,为何高校自己不能多采购一些GPU呢?
知友「网瘾大爷」表示,高校直接购买GPU非常不划算。LLM训练参数规模增大,需要的是多机多卡,以及让卡之间串联的网络。
不仅有学习成本、还有维护成本,这对于高校来说投入之大。所以比较常见的方式是,去租用服务器。
清华计算机系在读博士孙恒提出了同样的问题,卡可以买,但问题是,放在哪?
当然,有人在负重前行,自然也有人岁月静好。
比如下面这些学校,相比起来就要「富裕」得多了。

「H100,我们也就几百块吧」


有网友透露,普林斯顿语言与智能研究所(PLI)和哈佛Kempner研究所拥有最大的计算集群,分别配备了300块和400块H100 GPU。
而这个信息,也得到了一位普林斯顿研究者的佐证——
在普林斯顿,可以使用的集群有三种。

- 小组集群有所不同,但对于10个人来说,32块GPU的分配很合理

- 部门集群的资源更多,不过也需要看具体的部门

- 大学集群Della则拥有(128x2)+(48x4)个A100和(96x8)个H100
总之,普林斯顿和哈佛都可以说是显卡大户。
此外,也有网友爆料说,UT Austin拥有600块H100。
蒙特利尔大学的博士生表示,自己的实验室大约有500块GPU,主要是A100 40GB和80GB。
德国亚琛工业大学的网友表示,学提供了一个包含52块GPU节点的计算集群,每个节点配备4块H100 GPU。
这些资源当然是所有院系共享的,其他一些机构也能使用。
不过,即使是学生,每个月也会分配到一定的集群使用时间。如果你需要更多的计算时间,可以申请不同规模的专用计算项目。
「我非常喜欢这个系统,能够使用它,对我来说是一次改变研究进程的机会。」
对如此充沛的算力,题主表示非常羡慕。
另一位欧洲的网友也表示,自己的实验室有大约16块实验室专用的A100 GPU,并且还能通过几个不同的额外集群访问更多的GPU。
由于这些集群有很多用户,所以具体规模很难估计,但每个集群大约每年提供12万GPU小时的计算时间。
不过,超过80GB的GPU内存需求是一个瓶颈。目前来说,总共能用的约为5块H100。
类似的,这位网友所在的实验室,也相当富裕:
「我们实验室有8块H100和8块L40S,专供5名博士生和3名博士后免费使用。」
最后,截取一些「凡尔赛」网友的发言。
比如,这位在云计算供应商工作的网友就表示,这个帖子很有趣,因为自己竟不知道H100是这么稀有。
或者,从单位分不到显卡,那就干脆自己买一块。😂

紧俏的H100,为何如此重要

最近,英伟达的市值一度突破3.3万亿美元,登顶全球第一。
这背后最耀眼的明星,莫过于它的H100 GPU了。

跟普通芯片不同的是,H100内的800亿个晶体管排列在内核中,这些内核被调整为高速处理数据,而非生成图形。
成立于1993年的英伟达,押注并行工作的能力有一天将使自己的芯片在游戏之外发挥价值,他们赌对了。
在训练LLM时,H100比前代A100快四倍,在回复用户提示时快30倍。对于急于训练LLM执行新任务的公司来说,性能优势至关重要。
也正是因此,全世界生成式AI的浪潮,正在转化为英伟达的实际收入。而H100的需求如此之大,以至于许多客户不得不等待六个月才能收货。
Nebius AI的IaaS技术产品经理Igor,探讨了H100、L4、L40、A100、V100这些最流行的芯片之间的差异,并确定了每种GPU模型表现最佳的工作负载。
谈到芯片之间的差异之前,重要的是强调Transformer神经网络和数值精度的一些相关属性。

数值精度的作用

如果没有对FP8精度的硬件支持,英伟达的H100、L4和L40不可能取得巨大的成功,这对于Transformer模型尤其重要。
但是,是什么让对FP8的支持如此重要呢?让我们深入了解一下。
FP是「浮点」的缩写,它是关于模型存储在RAM中,并在其操作中使用的数字的精度。
最重要的是,这些数字决定了模型输出的质量。
以下是一些关键的数字格式——
FP64,即双精度浮点格式,是一种每个数字占用64位内存的格式。
虽然这种格式未在机器学习中使用,但它在科学领域占有一席之地。
FP32和FP16:长期以来,FP32是所有深度学习计算的事实标准。
然而,数据科学家后来发现,将模型参数转换为FP16格式,可以减少内存消耗并加快计算速度,而且似乎不会影响质量。
结果,FP16就成为了新的黄金标准。
TF32,也是另一种至关重要的格式。
在进入张量内核上处理FP32值的计算之前,这些值可以在驱动程序级别自动转换为TF32格式,而无需更改代码。
显然,TF32虽然略有不同,但能提供更快的计算速度。也就是说,可以通过模型在张量内核上解释FP32的方式进行编码。
INT8:这是一种整数格式,不涉及浮点数。
训练后,模型参数可以转换为其他占用内存较少的类型,例如INT8。这种技术称为训练后量化,可以减少内存需求并加快推理速度。它为许多模型架构创造了奇迹,不过Transformer 是一个例外。
Transformer无法在训练后进行转换,以降低推理的硬件要求。量化感知训练等创新技术确实在训练过程中提供了一种解决方法,但重新训练现有模型有可能成本高昂,而且极具挑战性。
FP8:此格式解决了上述问题,尤其是Transformer模型。
可以采用预训练的Transformer模型,将其参数转换为FP8格式,然后从A100切换到H100。
甚至我们可以在不进行转换的情况下做到这一点,并仍然获得性能,只是因为H100速度更快。
借助FP8,只需大约四分之一的显卡即可推断出具有相同性能和负载的相同模型。
另外,使用FP8进行混合精度训练也很不错——这个过程会完成得更快,需要更少的RAM,并且在稍后的推理阶段不再需要转换,因为模型的参数可能已经是FP8的参数。

ML、HPC和图形的关键GPU规格及性能基准

下面让我们来讨论一下,GPU规格的演变及其突出功能。
请特别注意上图中的前两行:RAM数量及其带宽。
ML模型必须紧密适合运行时环境可访问的GPU。否则,我们将需要多个GPU进行训练。在推理过程中,通常可以将所有内容都安装在单个芯片上。
注意SXM和PCIe接口之间的区别。英伟达的工作人员只是根据我们自己或我们的云提供商已有的服务器来区分它们。
如果设置包括带有PCI插槽的标准服务器,并且不想为GPU直接连接到主板的专用机器(SXM)花钱,那么H100 PCIe就是我们的最佳选择。
当然,它的规格可能比SXM版本要弱,但它与标准紧凑型服务器完全兼容。
但是,如果我们想从头开始构建顶级集群,并且也能负担得起,那么H100 SXM5显然是更好的选择。
各种 GPU 在训练和推理中的性能指标,则可以依据下图——

图表源自Tim Dettmers的这篇著名文章《深度学习应该使用哪些GPU:我在深度学习中使用GPU的经验和建议》
H100 SXM指标用作100%基准,所有其他指标均相对于此进行标准化。
该图表显示,H100 GPU上的8位推理,比相同GPU模型上的16位推理快37%。这是由于硬件支持FP8精度计算。
所谓「硬件支持」,是指将数据从RAM移动到张量核心进行计算的整个低级管线。在此过程中,各种缓存开始发挥作用。
而在A100中,由于硬件级别不支持FP8,此类GPU上的 8 位推理速度并不会更快。来自RAM 的缓存仅以与FP16格式相同的速度处理数字。
更详细的图表如下——
你肯定注意到了,某些RTX显卡在AI任务中的结果也不错。通常,它们的内存比起数据中心专用卡要少,并且不支持集群,但它们的价格显然便宜很多。
所以,如果计划用于内部实验的本地基础设施,也可以考虑这类RTX显卡。
然而,GeForce驱动程序EULA直接禁止在数据中心使用此类卡,所以任何云提供商都无权在服务中使用它们。
现在,我们再比较一下图形和视频处理相关任务中的GPU。以下是与此类用例相关的关键规范:
我们需要再次关注RAM大小和带宽。另外,还要注意RT核心的独特性能指标,以及解码器和编码器计数,这些专用芯片负责压缩和解压缩视频源。
「图形模式」行会指示GPU是否可以切换到面向图形的模式 (WDDM)。
H100完全没有这个功能;A100有此功能,但也会受限,因此不一定实用。
形成鲜明对比的是,L4和L40配备了这种模式,因此它们被定位为适用于各种任务(包括图形和训练)的多功能卡。
英伟达在有些材料中甚至首先将它们作为面向图形的卡进行营销。然而,它们也非常适合机器学习和神经网络训练和推理,至少没有任何硬性技术障碍。
而用户来说,这些数字意味着H100变体以及A100都不适合以图形为中心的任务。
V100有可能充当处理图形工作负载虚拟工作站的GPU。
L40是资源最密集的4K游戏体验无可争议的冠军,而L4支持1080p游戏。这两种卡还能以各自的分辨率渲染视频。

总结

我们可以得出下表,根据不同显卡的设计目的,展示了不同显卡的特性。
该表中有两个主要用例类别:纯粹专注于计算的任务(「计算」)和包含可视化的任务(「图形」)。
我们已经知道,A100和H100完全不适合图形,而L4和L40则是为此量身定制的。
乍一看,你可能会觉得A100或L40的推理能力同样出色。然而,有一些细微差别需要考虑。
在「HPC」一列中,显示了是否可以将多个主机合并到单个集群中。
在推理中,很少需要集群——但这取决于模型的大小。关键是确保模型适合主机上所有GPU的内存。
如果模型超出了此边界,或者主机无法为其组合RAM容纳足够的GPU,那么就需要GPU集群。
L40和L4的可扩展性受到单个主机功能的限制, H100和A100则没有这个限制。
我们应该在ML工作负载中选择哪种GPU呢?推荐如下——

L4:经济实惠的通用GPU,适用于各种用例。它是一款入门级模型,是通往GPU加速计算世界的门户。

L40:针对生成式AI推理和视觉计算工作负载进行了优化。

A100:为传统CNN网络的单节点训练提供了卓越的性价比。

H100:BigNLP、LLMs和Transformer的最佳选择。它还非常适合分布式训练场景以及推理。

图形场景可分为三组:流式传输、虚拟桌面和渲染农场。如果没有视频输入模型,那么它就不是图形场景。这就是推理,而此类任务最好被描述为人工智能视频。
卡可以处理加密的视频源,并且A100配备了硬件视频解码器来完成此类任务。这些解码器将馈送转换为数字格式,使用神经网络对其进行增强,然后将其传回。
在整个过程中,显示器上不会出现任何视觉内容,因此虽然H100和A100可以熟练地训练与视频或图像相关的模型,但它们实际上并不产生任何视频。
这就是另一个故事了。
参考资料:
https://www.reddit.com/r/MachineLearning/comments/1dlsogx/d_academic_ml_labs_how_many_gpus/
https://medium.com/nebius/nvidia-h100-and-other-gpus-which-are-relevant-for-your-ml-workload-15af0b26b919




Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/171758
 
141 次点击