客户介绍
客户是一家专门从事AI硬件的下一代计算公司。他们的使命是提供针对人工智能工作负载优化的高性价比、可扩展计算系统。他们的硬件生态系统原生支持 PyTorch 和 ONNX,能够使研究人员和开发者以最小的阻力部署 AI 模型。
面临的挑战
随着 PyTorch 2.0 的发布,客户希望在其定制的人工智能加速器上实现人工智能模型的无缝执行,同时保持与标准 PyTorch 工作流程的兼容性。具体挑战包括:
1 . 缺乏对定制硬件的原生支持:
- PyTorch 2.0 引入了 torch.compile,这需要一个能够将计算高效映射到硬件的后端。
- 客户的 AI 加速器没有专用的 PyTorch 后端,导致模型执行效率低下甚至不可行。
2 . 桥接 PyTorch 的计算图与定制硬件:
- PyTorch 2.0 模型在降低到硬件特定执行之前依赖于 Aten IR。
- 客户需要实现 Aten IR 转换,以将 PyTorch 操作映射到其硬件的操作。
3 . 最小化开发者的代码更改:
- AI 研究人员和开发者更倾向于与 PyTorch 兼容并开箱即用。
- 目标是在不显著重写或重构模型的情况下,让模型能够在 AI 加速器上执行。
解决方案
为了实现 PyTorch 2.0 模型在客户 AI 加速器上的无缝执行,设计并实现了一个定制的 PyTorch 后端。这确保了模型能够在硬件上高效运行,同时保持 PyTorch 的易用性,并且几乎不需要代码修改。解决方案包括以下关键组成部分:
1 . 自定义后端
开发了一个专用的 PyTorch 后端,以便与 torch.compile 无缝集成,并将 PyTorch 操作转换为硬件特定的操作符。该后端可利用加速器的计算能力高效执行模型,同时与 PyTorch 的标准工作流程保持兼容。
2 . Aten IR 转换通道
对各种 torch aten 操作进行处理,并将其降级为客户操作库中的操作。转换通道支持各种类别中缺失的操作,包括一元、二元和还原操作。例如 LayerNorm、AvgPool、Softmax、expand、squeeze、slice 等 Aten 操作在转换通道中被降低。
3 . 数据移动相关通道
实施了多个优化过程,包括数据进出设备、常量折叠、内存使用分析和驱逐策略—每个通道都旨在提高目标硬件的执行效率和资源利用率。
4 . 验证与准确性测试
为确保正确性,我们根据 PyTorch 的参考实现对转换操作进行了严格验证。使用 PCC 指标来衡量数值的准确性,
确保与预期结果的偏差最小。
5 . 使用真实世界模型进行运行时测试
为了评估真实世界的性能,我们使用以下工具对后端进行了测试:
- Torchvision 模型,如 ResNet、MobileNet 和 YOLO 等,用于基于视觉的推理。
- 大型语言模型,以评估 NLP 任务的执行效率,包括 GPT、Bloom 等。
- 端到端推理基准测试,以验证性能和正确性。
这种全面的测试方法确保了后台的稳健性、性能和生产就绪性,以便在人工智能应用中进行部署。
技术栈
支持 50 多个 PyTorch 核心 Aten IR 操作系统
实现了以下 50 多个常用的 PyTorch 操作的转换和执行逻辑,确保了广泛的模型兼容性,且干预最少。
- 数学和激活函数(ReLU、Softmax、Log、Exp)
- 归一化和池化(LayerNorm、BatchNorm、AvgPool)
- 张量操作和归约操作(Reshape、Transpose、Sum、Mean)
与 torch.compile API 和模型基准无缝集成
使开发人员能够使用 PyTorch 的 torch.compile() API 进行轻松部署。
o 无需手动修改,即可自动优化人工智能加速器模型。
o 使用各类模型(包括 ResNet、MobileNet、VGG、YOLO、Faster R-CNN、BERT、GPT、Falcon 等)验证了各种实现的性能和正确性、
o 对每个模型的准确性、延迟和稳定性进行测试,确保可靠执行。
商业影响
- 更快的 AI 模型部署– 实现了 PyTorch 模型在客户 AI 加速器上的无缝执行,显著缩短了 AI 应用的上市时间。
- 开发者采用率提高– 消除了复杂的集成工作,使 AI 开发者更容易利用硬件,推动生态系统的发展。
- 更强的竞争定位– 提升了 AI 加速器的价值主张,提供了轻松的 PyTorch 支持,并使其成为现有 AI 计算平台的有力替代品。
结论
通过将定制 PyTorch 2.0 后端与其人工智能加速器集成,客户显著提高了硬件的可访问性和可用性。这一努力不仅提高了执行效率,还使其人工智能生态系统成为对寻求可扩展、高性能人工智能计算解决方案的人工智能研究人员、企业和开发人员极具吸引力的解决方案。无缝的入门体验确保更多的人工智能从业人员可以利用客户的硬件,而无需修改他们现有的 PyTorch 工作流程,最终推动更多的采用和生态系统的扩展。
MulticoreWare展示了在Com-pilers、Python、PyTorch和人工智能加速器方面的专业知识,我们的综合方法确保了性能均等和稳定性。欲了解更多有关我们的专业知识,或了解我们如何帮助贵组织实现创新和高性能成果,请联系 info@multicorewareinc.com。