此外,并非所有算子都可以融合 。通常花费大量时间来决定要融合哪些操作以及将哪些分配给芯片和集群级别的特定计算资源 。哪些算子在哪里融合的策略虽然大体相似,但根据架构的不同会有很大差异 。
英伟达为王
算子的增长和默认位置对 Nvidia 有所帮助,因为每个算子都针对其架构进行了快速优化,但并未针对任何其他硬件进行优化 。如果一家 AI 硬件初创公司想要全面实施 PyTorch,那就意味着以高性能原生支持不断增长的 2,000 个算子列表 。
由于提取最大性能所需的所有技巧,在 GPU 上训练具有高 FLOPS 利用率的大型模型所需的人才水平越来越高 。Eager mode 执行加上operator fusion 意味着开发的软件、技术和模型被推动以适应当前一代 GPU 具有的计算和内存比率 。
每个开发机器学习芯片的人都依赖于同一个内存墙 。ASIC 有责任支持最常用的框架 。
ASIC 受制于默认的开发方法,GPU 优化的 PyTorch 代码混合了 Nvidia 和外部库 。避开 GPU 的各种非计算包袱而支持更多 FLOPS 和更严格的编程模型的架构在这种情况下意义不大 。
但易用性为王 。
打破恶性循环的唯一方法是让在 Nvidia GPU 上运行模型的软件尽可能轻松地无缝转移到其他硬件 。
随着模型架构的稳定和来自 PyTorch 2.0、OpenAI Triton和 MLOps 公司(如 MosaicML)的抽象成为默认,芯片解决方案的架构和经济性开始成为购买的最大驱动力,而不是提供给它的易用性Nvidia 的高级软件 。
PyTorch 2.0
PyTorch基金会成立并于几个月前从 Meta 的羽翼下撤出 。除了对开放式开发和治理模型的更改外,2.0 还发布了早期测试,并于 3 月全面上市 。
PyTorch 2.0 带来了许多变化,但主要区别在于它添加了一个支持图形执行模型的编译解决方案 。这种转变将使正确利用各种硬件资源变得更加容易 。
PyTorch 2.0在 Nvidia A100 上的训练性能提升了 86%?,在 CPU 上的推理性能提升了 26%!
这大大减少了训练模型所需的计算时间和成本 。这些好处可以扩展到来自AMD?、英特尔、Tenstorrent、Luminous Computing、特斯拉、谷歌、亚马逊、微软、Marvell、Meta、Graphcore、Cerebras、SambaNova 等的其他 GPU 和加速器 。
对于当前未优化的硬件,PyTorch 2.0 的性能改进会更大 。
Meta 和其他公司对 PyTorch 的巨大贡献源于这样一个事实,即他们希望在他们价值数十亿美元的 GPU 训练集群上以更少的努力,更容易地实现更高的 FLOPS 利用率 。他们也有动力使他们的软件堆栈更易于移植到其他硬件,以将竞争引入机器学习领域 。
PyTorch 2.0 还通过更好的 API 支持数据并行、分片、管道并行和张量并行,为分布式训练带来了进步 。此外,它在整个堆栈中原生支持动态形状,在许多其他示例中,这使得 LLM 的不同序列长度更容易支持 。这是主要编译器首次支持从训练到推理的 Dynamic Shapes 。
文章图片
PrimTorch
为 PyTorch 编写一个完全支持所有 2,000 多个算子的高性能后端对于除 Nvidia GPU 之外的每个机器学习 ASIC 来说都是困难的 。PrimTorch 将算子的数量减少到约 250 个原始算子,同时还保持 PyTorch 最终用户的可用性不变 。
PrimTorch 使 PyTorch 的不同非 Nvidia 后端的实现变得更加简单和易于访问 。定制硬件和系统供应商可以更轻松地推出他们的软件堆栈 。
TorchDynamo
转向图形模式需要一个可靠的图形定义 。Meta 和 PyTorch 已经尝试了大约 5 年的时间来实现这一点,但是他们提出的每个解决方案都有明显的缺点 。
- CPU|独家:阿里巴巴低调广结硬寨,2023年酒店智能化新战事
- 太空行动|独家:阿里巴巴低调广结硬寨,2023年酒店智能化新战事
- 英伟达|NVIDIA新技术让你“暗送秋波” 画面以假乱真
- 小米科技|微软收购动视暴雪更难了!NVIDIA出手阻挠
- AMD|AMD、Intel已用上 NVIDIA这次落后了?
- NVIDIA|当RTX 4080变成白色:爱了
- NVIDIA|RTX 4080悄然“变心”了
- NVIDIA|英伟达展示RTX 4080移动显卡:能耗大幅降低 远超前代旗舰
- NVIDIA|英伟达RTX 4070已在路上:价格成为了最大关注点
- |6499元不亏 RTX 4070 Ti成为NVIDIA 40系性价比最高显卡