\

Graphcore发布Poplar应用分析工具重要更新

作者:

分享  

Share on weixin
Share on weibo
Share on linkedin

订阅

自六个月前启动Poplar®应用程序分析工具以来,我们一直在迅速扩展其功能。我们为2.0版本和2.1版本的PopVision™计算图分析工具添加了30多个新功能。此更新将帮助开发人员更深入地了解IPU如何处理他们的应用程序,从而帮助他们优化模型以实现最先进的性能。作为新的Poplar SDK 1.3版本的一部分,该工具正在进行更新。

Graphcore创建了PopVision™计算图分析工具,为开发人员提供有关其代码是如何运作的详细信息,并为他们提供工具,以构建更好的机器智能应用程序。这种透明性在开发人员进行IPU编程时非常有用,主要是因为IPU处理器具有与CPU和GPU完全不同的架构。PopVision工具包括有关存储消耗和程序执行的可视化报告,向开发人员展示他们的应用程序如何在IPU上运行,并提供可用于未来的模型开发和优化的基本信息。

四个主要报告是:

  • 摘要报告:查看基本程序信息
  • 存储报告:分析一个或多个IPU上的程序的存储消耗和布局
  • 活跃性报告:探索存储中的临时高峰及其影响
  • 执行追踪报告:查看程序执行

如果您还不熟悉PopVision™计算图分析工具,以下视频为您带来手把手指导:

PopVision 2.0和2.1

有什么新功能?

以下是PopVision™计算图分析工具最重要的新功能:

  • 新的报告对比预览(2.0)
  • 显示每个IPU上的存储用量(2.1)
  • 新的存储tile视图(2.1)
  • 查看每个IPU(2.0)和每个tile(2.1)的活跃度
  • 新的BSP(Bulk Synchronous Parallel)可视化(2.0)
  • 执行追踪中重叠IO的可视化(2.1)

对比报告

开发人员在优化机器学习模型时,通常会对他们的模型加以改动,并且希望可以了解这一改动会如何改变Poplar程序。为了帮助开发人员实现这一目的,我们添加了打开两个Poplar报告的功能,该工具突出显示两个报告之间的差异。

PopVision 1.0中的所有报告均已更新,以支持两个Poplar报告的对比。新的计算图已添加到存储报告中,以显示存储使用增量和差异。

在PopVision 2.0的内部测试期间,我们惊讶地发现Graphcore开发人员使用这一新的报告对比功能比打开单个报告更频繁。收到这些反馈后,我们更加关注对比用不同参数生成的两个报告的功能。这加快了使用该工具进行分析的模型的优化。

新的存储功能

在PopVision 1.0中,我们允许用户查看用于变量的存储是如何在单个tile上分配的。对于PopVision 2.0,我们添加了在所有tile上绘制变量布局的选项。现在,开发人员可以查看张量被分配给了哪些tile,以及使用了存储地址空间里的哪一部分。

在分析跨越多个IPU的大型模型时,PopVision用户告诉我们,他们希望查看每个IPU的存储使用情况,以帮助他们了解存储在IPU之间的分配。在PopVision 2.1中,我们添加了一个新的存储选项,可以按IPU绘制存储使用情况。

我们从使用报告对比功能的开发人员那里收到了一些早期反馈,这些开发人员要求在查看单个报告时能够对比多个tile或IPU的选项。在PopVision2.0中,用户可以按住Shift键选择多个tile或IPU,然后就可以对比它们的详细信息。上图显示了两个不同IPU上顶点存储量的可视化对比效果。

在PopVision 2.1中,我们添加了新的存储tile视图,以显示内存是如何分配给IPU上的物理tile。这有助于开发人员更多地了解IPU芯片上的tile位置,其中橙色表示最大存储量,蓝色表示最小存储量。tile具有不同的缩放选项,支持交错和非交错的细分,有无间隙均可。

与所有PopVision报告一样,存储tile支持MK1和MK2处理器。

新的活跃性功能

在“活跃性”报告中,我们添加了显示每个IPU处理器和每个tile的总计最大存储行的选项,帮助开发人员查看程序中的哪些步骤超出了可用的最大存储。

PopVision 2.1中,我们添加了显示每个IPU处理器和每个tile总计最大存储行的选项,帮助开发人员查看程序中的哪些步骤超出了可用的最大存储。 

新的执行追踪功能

我们做了大量的工作以改善执行追踪。这是该工具中最受欢迎的报告之一。

在PopVision 2.0中,我们添加了批量同步并行(BSP)执行的可视化。开发人员现在可以选择与平面/火焰计算图同时查看BSP执行情况。在BSP追踪中,y轴上有tile(顶部为0,底部为tile1216或1472),用户可以看到每个tile执行计算集或交换所花费的周期数。

PopVision用户可以在BSP或flame/flat graph中选择程序步骤,并查看该特定程序步骤上的详细信息,包括相同tile执行信息的计算图,现在在x轴上有tile。

对于我们的Poplar SDK 1.3版本,poplar :: Engine :: run API已更新为采用调试字符串。此调试字符串可用于显示引擎在执行追踪上运行,即“OptimizerFromHost”。这使用户可以在执行主循环之前查看框架调用了哪些初始化程序。

此外,在执行追踪摘要中,用户可以在执行追踪的当前可见视图中查看从主机流进IPU、从IPU流出以及IPU之间的数据量。

我们添加了支持,支持对被称为“重叠IO”的Poplar SDK 1.3新功能进行可视化。这项新功能允许IPU在程序里执行其他步骤的同时,在IPU(StreamCopy)上和从IPU进行数据的流传输。这意味着在执行其模型的迭代时,PopVision用户可以将下一次迭代的输入流式传输到IPU。火焰和平面执行计算图已经更新,可以显示并行执行。

附加功能

我们在PopVision 2.0中添加了上下文相关的“帮助”弹出按钮,当用户将鼠标悬停在按钮或某些文本上并提供“帮助”模块的相关部分时,将显示这些弹出窗口。重新加载报告的选项也被添加进新版本,当Poplar报告文件更改时,用户不必关闭和打开报告。

我们还改善了PopVision 2.1中与远程主机的SSH连接过程,该过程现在包括使用在 “.ssh_config”中被定义的别名作为远程主机的地址。

对IPU开发人员的支持

PopVision计算图分析工具是Graphcore客户可以用来了解有关IPU编程和增强其模型在IPU系统上性能的众多资源之一。我们的开发人员门户包含的内容非常广泛,供Poplar SDK和IPU技术的新手和有经验的用户使用,包括开发人员文档、教程、视频演示和应用程序示例,以及指向我们的支持平台和GitHub的链接。

了解更多关于Poplar SDK

More Posts

卢涛:后登纳德时代,IPU架构引领Transformer向高阶版演进

GACS 2023 | IPU:赋能生成式AI,不止生成式AI

Graphcore携手Pienso荣获CogX最佳创新类别的自然语言处理奖

Graphcore加入PyTorch基金会

促进低精度数字格式使用,Graphcore发布全新Unit Scaling库

情人节之“AI”跨山海——拟未“AI”的故事绘画连载(三)

获取最新的GRAPHCORE资讯

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




    获取最新的GRAPHCORE资讯

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