POPLAR计算图框架软件

与IPU一同为机器智能从零设计

POPLAR计算图框架软件

与IPU一同为机器智能从零设计
Poplar

关于Poplar ®

Poplar SDK是一个与IPU一同从零设计的完整软件栈。通过Poplar SDK,您可以在灵活易用的软件开发环境中使用我们的计算图工具链。

在较高的层次上,Poplar与标准的机器学习框架完全集成,因此开发人员可以轻松移植现有模型,并在熟悉的环境中立即启动和运行新的应用程序。

这些框架之下便是Poplar。对于希望获得完全控制以发挥IPU最大性能的开发人员,Poplar支持使用Python和C ++直接进行IPU编程。

Poplar

标准框架支持

Poplar与标准机器智能框架无缝集成:

  • 支持TensorFlow 1和TensorFlow 2,并与TensorFlow XLA后端全面集成
  • 支持PyTorch,以使用PyTorch ATEN后端定位IPU
  • PopART™ (Poplar Advanced Runtime)可被用于训练和推理;支持Python / C ++模型构建以及ONNX模型输入
  • 即将推出对PaddlePaddle和其他框架的全面支持

PopLibs™ 计算图库

PopLibs是一套完整的库并已开源,支持常见的机器学习原语和构建块:

  • 超过50种针对常见机器学习模型的优化功能
  • 750多个高性能计算元素
  • 简单的C++ graph构建API
  • 实施任何应用程序
  • 全面的控制流程支持

计算图编译器

我们先进的编译器通过处理大型并行程序(包括存储控制)的调度和工作分区,简化了IPU编程:

  • 优化整个应用程序模型的执行,以在IPU平台上高效运行
  • 减轻开发人员管理数据或模型并行性的负担
  • 使用标准LLVM生成代码

计算图引擎

高性能Graph Runtime,用于执行模型,并通过IPU上运行的模型实现数据流式传输:

  • 高度优化的IPU数据移动
  • 主机存储系统的接口
  • 设备管理:配置IPU-Link网络,在设备上加载应用程序并执行设置
  • 调试和分析功能

多IPU扩展和通信

在模型尺寸不断扩大、复杂性日益增加的世界中,Poplar承担了繁重的工作,使您免于辛劳:

  • 完全自动化并由Poplar管理的高带宽IPU-Link™通信将多个IPU视作一个单一的IPU计算资源
  • 计算图编译域(GCD)允许针对多个IPU处理器对单个应用程序进行编程,从而实现数据并行操作和模型并行操作
  • 模型切分允许在多个设备上轻松拆分应用程序
  • 切分和复制相结合,使您能够以最小的努力并行获取代码数据
  • 高级模型流水线使用户能够提取最大化的系统性能,快速、高效地运行大型模型

开源

在Graphcore,我们将权力交给AI开发人员,使他们能够进行创新。PopLibs计算图库(Poplar Graph Libraries)是完全开源的,可在GitHub上获取。开源使得整个开发人员社区都能够为这些强大的工具做出贡献和改进。

PopVision™ 分析工具

PopVision™系列分析工具帮助开发人员深入了解应用程序是如何执行和利用IPU的。通过用户友好的图形界面深入了解代码的内部工作原理。

直接部署

带有Poplar SDK、工具和框架图像的预构建Docker容器,可快速启动并运行。

标准的生态系统支持

借助微软Azure部署、Kubernetes编排以及Hyper-V虚拟化和安全性,Poplar已经生产就绪。

更多资源

Poplar分析报告

来自Moor Insights & Strategy的有关Poplar软件栈详细技术内容的白皮书。

Poplar SDK 1.2

增加用于IPU的PyTorch、Keras支持、Exchange Memory管理等更多功能。

Exchange Memory

无论模型有多大,无论数据存储在哪里,IPU独特的Exchange Memory都支持用户快速执行机器学习模型。

开源

我们已实现PopLibs库、用于IPU的TensorFlow和PopART™代码的完全开源。

获取最新的GRAPHCORE资讯

在下方注册以获取最新的资讯和更新: