Tensorflow 如何在Graphcore IPU上实现模型并行性?

Tensorflow 如何在Graphcore IPU上实现模型并行性?,tensorflow,ipu,Tensorflow,Ipu,我已经成功地将TensorFlow模型的一个版本移植到Graphcore IPU,并以数据并行方式运行。然而,全尺寸模型不适合单个IPU,我正在寻找实现模型并行性的策略 到目前为止,除了在TensorFlow指南中介绍了分片的概念之外,我还没有太多关于模型并行方法的信息 分片是在多个IPU之间分割模型的推荐方法吗?我可以参考更多的资源吗?切分包括在多个IPU之间划分模型,以便每个IPU设备计算图形的一部分。然而,这种方法通常推荐用于涉及单个图中多个模型的利基用例,例如集合 跨多个IPU实现模型并

我已经成功地将TensorFlow模型的一个版本移植到Graphcore IPU,并以数据并行方式运行。然而,全尺寸模型不适合单个IPU,我正在寻找实现模型并行性的策略

到目前为止,除了在TensorFlow指南中介绍了分片的概念之外,我还没有太多关于模型并行方法的信息


分片是在多个IPU之间分割模型的推荐方法吗?我可以参考更多的资源吗?

切分包括在多个IPU之间划分模型,以便每个IPU设备计算图形的一部分。然而,这种方法通常推荐用于涉及单个图中多个模型的利基用例,例如集合

跨多个IPU实现模型并行的另一种方法是管道化。该模型仍然在多个IPU上分为多个计算阶段;这些阶段并行执行,一个阶段的输出是下一个阶段的输入。流水线可确保在执行过程中提高硬件的利用率,与分片相比,在吞吐量和延迟方面可提高效率和性能

因此,建议使用流水线方法跨多个IPU并行化模型

您可以在TensorFlow指南中的针对IPU的部分中找到有关流水线培训的更多详细信息

中提供了对这两种模型并行方法的更全面的回顾


您也可以考虑使用<代码> IpPultEngultPristor <代码>:它是 IpUpAuthor <代码>的变体,它自动处理在IPU上运行(流水线)程序的大部分方面。在这里,您可以找到一个演示如何使用

IPUPipelineEstimator
在CIFAR-10数据集上训练一个简单的CNN。

谢谢Jason,这非常有用。